diff --git a/resource/sqlupgrade/Oracle/sql202505120103SXFSD.sql b/resource/sqlupgrade/Oracle/sql202505120103SXFSD.sql
new file mode 100644
index 000000000..f80163e79
--- /dev/null
+++ b/resource/sqlupgrade/Oracle/sql202505120103SXFSD.sql
@@ -0,0 +1,4 @@
+ALTER TABLE hrsa_salary_sob_item ADD (
+ quote NUMBER
+)
+/
\ No newline at end of file
diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQuoteParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQuoteParam.java
new file mode 100644
index 000000000..8eef5dc6d
--- /dev/null
+++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctResultQuoteParam.java
@@ -0,0 +1,27 @@
+package com.engine.salary.entity.salaryacct.param;
+
+import com.engine.salary.util.valid.DataCheck;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 引用上月数据
+ *
Copyright: Copyright (c) 2024
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SalaryAcctResultQuoteParam {
+
+ //薪资核算记录的id
+ @DataCheck(require = true,message = "薪资核算记录id为空")
+ Long salaryAcctRecordId;
+
+}
diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java
index f0e9c4004..c70ee7d28 100644
--- a/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java
+++ b/src/com/engine/salary/entity/salarysob/param/SalarySobItemSaveParam.java
@@ -76,6 +76,9 @@ public class SalarySobItemSaveParam {
//该分类是否隐藏(0不隐藏,1隐藏)
private Long itemHide;
+ //是否引用上月数据
+ private Integer quote;
+
private Boolean canDelete;
// 默认值
diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java
index 011f992c4..e322806d1 100644
--- a/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java
+++ b/src/com/engine/salary/entity/salarysob/po/SalarySobItemPO.java
@@ -117,6 +117,8 @@ public class SalarySobItemPO {
@XStreamAsAttribute
private Long itemHide;
+ private Integer quote;
+
/**
* 默认值
*/
@@ -194,6 +196,7 @@ public class SalarySobItemPO {
", pattern=" + pattern +
", valueType=" + valueType +
", itemHide=" + itemHide +
+ ", quote=" + quote +
", defaultValue=" + defaultValue +
'}';
}
diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml
index 03b5a240f..bb66ff8b9 100644
--- a/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml
+++ b/src/com/engine/salary/mapper/salarysob/SalarySobItemMapper.xml
@@ -6,6 +6,7 @@
+
@@ -27,6 +28,7 @@
, t.creator
, t.delete_type
, t.description
+ , t.quote
, t.formula_id
, t.id
, t.salary_item_id
@@ -77,6 +79,9 @@
AND description = #{description}
+
+ AND quote = #{quote}
+
AND formula_id = #{formulaId}
@@ -159,6 +164,7 @@
creator=#{creator},
delete_type=#{deleteType},
description=#{description},
+ quote=#{quote},
formula_id=#{formulaId},
salary_item_id=#{salaryItemId},
salary_sob_id=#{salarySobId},
@@ -193,6 +199,9 @@
description=#{description},
+
+ quote=#{quote},
+
formula_id=#{formulaId},
@@ -278,7 +287,7 @@
INSERT INTO hrsa_salary_sob_item(salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
- sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,default_value)
+ sorted_index, description,quote, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,default_value)
VALUES
(
@@ -288,6 +297,7 @@
#{item.formulaId},
#{item.sortedIndex},
#{item.description},
+ #{item.quote},
#{item.createTime},
#{item.updateTime},
#{item.creator},
@@ -304,7 +314,7 @@
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
- sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,default_value)
+ sorted_index, description, quote,create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,default_value)
select
@@ -314,6 +324,7 @@
#{item.formulaId,jdbcType=DOUBLE},
#{item.sortedIndex,jdbcType=INTEGER},
#{item.description,jdbcType=VARCHAR},
+ #{item.quote,jdbcType=INTEGER},
#{item.createTime,jdbcType=DATE},
#{item.updateTime,jdbcType=DATE},
#{item.creator,jdbcType=DOUBLE},
@@ -331,7 +342,7 @@
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
- sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,default_value)
+ sorted_index, description, quote,create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,item_hide,default_value)
VALUES
(
#{item.salarySobId},
@@ -340,6 +351,7 @@
#{item.formulaId},
#{item.sortedIndex},
#{item.description},
+ #{item.quote},
#{item.createTime},
#{item.updateTime},
#{item.creator},
diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java
index ac7309950..caaae404e 100644
--- a/src/com/engine/salary/service/SalaryAcctResultService.java
+++ b/src/com/engine/salary/service/SalaryAcctResultService.java
@@ -231,4 +231,8 @@ public interface SalaryAcctResultService {
* @version 1.0
**/
List listBySobSalaryMonth(Date salaryMonth, Long salarySobId, List employeeIds);
+
+ List listBySobSalaryMonth(Date salaryMonth, Long salarySobId, List employeeIds, List salaryItemIds);
+
+ void quote(SalaryAcctResultQuoteParam salaryAcctResultQuoteParam);
}
diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
index 0c093a6d1..cd17d1c81 100644
--- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java
@@ -30,6 +30,7 @@ import com.engine.salary.entity.salarysob.dto.*;
import com.engine.salary.entity.salarysob.po.*;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.OperateTypeEnum;
+import com.engine.salary.enums.SalaryOnOffEnum;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.common.FilterEnum;
import com.engine.salary.enums.salaryaccounting.LockStatusEnum;
@@ -1271,7 +1272,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
SalaryAcctResultPO resultParam = SalaryAcctResultPO.builder().salaryAcctRecordIds(recordIds).build();
if (CollUtil.isNotEmpty(employeeIds)) {
List> partition = Lists.partition(employeeIds, 500);
- for (List ids : partition){
+ for (List ids : partition) {
resultParam.setEmployeeIds(ids);
List acctResultPOS = getSalaryAcctResultMapper().listSome(resultParam);
salaryAcctResultPOS.addAll(acctResultPOS);
@@ -1283,4 +1284,71 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class);
return salaryAcctResultPOS;
}
+
+ @Override
+ public List listBySobSalaryMonth(Date salaryMonth, Long salarySobId, List employeeIds, List salaryItemIds) {
+ List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(SalaryAcctRecordPO.builder().salarySobId(salarySobId).salaryMonth(salaryMonth).build());
+ List recordIds = SalaryEntityUtil.properties(salaryAcctRecordPOS, SalaryAcctRecordPO::getId, Collectors.toList());
+
+ if (CollUtil.isEmpty(recordIds)) {
+ return new ArrayList<>();
+ }
+ List salaryAcctResultPOS = new ArrayList<>();
+ SalaryAcctResultPO resultParam = SalaryAcctResultPO.builder().salaryAcctRecordIds(recordIds).salaryItemIds(salaryItemIds).build();
+ if (CollUtil.isNotEmpty(employeeIds)) {
+ List> partition = Lists.partition(employeeIds, 500);
+ for (List ids : partition) {
+ resultParam.setEmployeeIds(ids);
+ List acctResultPOS = getSalaryAcctResultMapper().listSome(resultParam);
+ salaryAcctResultPOS.addAll(acctResultPOS);
+ }
+ } else {
+ salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(resultParam);
+ }
+
+ encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class);
+ return salaryAcctResultPOS;
+ }
+
+ @Override
+ public void quote(SalaryAcctResultQuoteParam salaryAcctResultQuoteParam) {
+ Long salaryAcctRecordId = salaryAcctResultQuoteParam.getSalaryAcctRecordId();
+ SalaryAcctRecordPO recordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId);
+ if (recordPO == null) {
+ throw new SalaryRunTimeException("薪资核算记录不存在");
+ }
+
+ //查询账套配置哪些项目需要引用
+ SalaryAcctConfig salaryAcctConfig = getSalaryAcctSobConfigService(user).getSalaryAcctConfig(salaryAcctRecordId);
+ List salarySobItemPOS = salaryAcctConfig.getSalarySobItems().stream().filter(item -> SalaryOnOffEnum.ON.getValue().equals(item.getQuote())).collect(Collectors.toList());
+ List itemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId, Collectors.toList());
+
+ //查询本次核算人员
+ List employeePOS = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordId(salaryAcctRecordId);
+ List employeeIds = SalaryEntityUtil.properties(employeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList());
+ List acctEmpIds = SalaryEntityUtil.properties(employeePOS, SalaryAcctEmployeePO::getId, Collectors.toList());
+
+ //查询上个月数据
+ List lastMonthResultPOS = listBySobSalaryMonth(SalaryDateUtil.localDateToDate(SalaryDateUtil.dateToLocalDate(recordPO.getSalaryMonth()).minusMonths(1)), recordPO.getSalarySobId(), employeeIds, itemIds);
+ Map> itemValueMap = SalaryEntityUtil.group2Map(lastMonthResultPOS, SalaryAcctResultPO::getEmployeeId);
+
+ //删除本次引用的项目数据
+ deleteByAcctEmployeeIdsAndSalaryItemIds(acctEmpIds, itemIds);
+
+ //引用上月数据
+ for (int i = 0; i < employeePOS.size(); i++) {
+ SalaryAcctEmployeePO salaryAcctEmployeePO = employeePOS.get(i);
+ List lastResultPOS = itemValueMap.getOrDefault(salaryAcctEmployeePO.getEmployeeId(), new ArrayList<>());
+ List list = lastResultPOS.stream()
+ .peek(po -> {
+ po.setSalaryAcctRecordId(salaryAcctRecordId);
+ po.setSalaryAcctEmpId(salaryAcctEmployeePO.getId());
+ po.setCreator((long) user.getUID());
+ po.setCreateTime(new Date());
+ po.setUpdateTime(new Date());
+ })
+ .collect(Collectors.toList());
+ batchSave(list);
+ }
+ }
}
\ No newline at end of file
diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java
index 9f68de3ae..f06acf20c 100644
--- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java
+++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java
@@ -389,7 +389,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : itemGroupParam.getItems()) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
- SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(salarySobItemGroupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
+ SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().quote(itemParam.getQuote()).salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(salarySobItemGroupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
salarySobItems.add(salarySobItemPO);
}
}
@@ -413,13 +413,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
//新增
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
- SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).deleteType(NumberUtils.INTEGER_ZERO).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
+ SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().quote(itemParam.getQuote()).salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).deleteType(NumberUtils.INTEGER_ZERO).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
salarySobItems.add(salarySobItemPO);
}
//更新
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
- SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().id(itemParam.getId()).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
+ SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().quote(itemParam.getQuote()).id(itemParam.getId()).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(groupId).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
}
@@ -446,13 +446,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
- SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(NumberUtils.LONG_ZERO).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
+ SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().quote(itemParam.getQuote()).salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salarySobItemGroupId(NumberUtils.LONG_ZERO).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
salarySobItems.add(salarySobItemPO);
}
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
- SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().id(itemParam.getId()).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).updateTime(now).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
+ SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().quote(itemParam.getQuote()).id(itemParam.getId()).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).updateTime(now).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).defaultValue(itemParam.getDefaultValue()).build();
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
}
diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java
index a196d53ef..49d1f8cc2 100644
--- a/src/com/engine/salary/web/SalaryAcctController.java
+++ b/src/com/engine/salary/web/SalaryAcctController.java
@@ -498,6 +498,15 @@ public class SalaryAcctController {
return new ResponseResult(user).run(getSalaryAcctResultWrapper(user)::batchUpdate, param);
}
+
+ @POST
+ @Path("/acctresult/quote")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String quote(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQuoteParam param) {
+ User user = HrmUserVarify.getUser(request, response);
+ return new ResponseResult(user).run(getSalaryAcctResultWrapper(user)::quote, param);
+ }
+
//薪资核算
@POST
@Path("/acctresult/accounting")
diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java
index 097092b2e..6519a0aab 100644
--- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java
+++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java
@@ -279,6 +279,10 @@ public class SalaryAcctResultWrapper extends Service implements SalaryAcctResult
getSalaryAcctResultService(user).batchUpdate(param);
}
+ public void quote(SalaryAcctResultQuoteParam salaryAcctResultQuoteParam) {
+ getSalaryAcctResultService(user).quote(salaryAcctResultQuoteParam);
+ }
+
/**
* 薪资核算-校验
*