From fe8dcd0ccdc85cf7fadfbdcfeb827a5c0ea533fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 19 Jun 2024 11:21:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryAcctCalculateServiceImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java index c70f3ad81..b83ceb4cb 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctCalculateServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.util.StrUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.cache.SalaryCacheKey; @@ -35,6 +36,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.springframework.util.StopWatch; import weaver.general.BaseBean; +import weaver.general.Util; import weaver.hrm.User; import weaver.wechat.util.Utils; @@ -111,7 +113,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc @Override public void calculate(SalaryAcctCalculateBO salaryAcctCalculateBO, DataCollectionEmployee simpleEmployee, List salarySobBackItems) { - StopWatch sw = new StopWatch("核算耗时明细,id:"+salaryAcctCalculateBO.getSalaryAcctRecordPO().getId()+""); + StopWatch sw = new StopWatch("核算耗时明细,id:" + salaryAcctCalculateBO.getSalaryAcctRecordPO().getId() + ""); Date now = new Date(); try { // 数据库字段加密用 @@ -213,16 +215,20 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc String resultValue; SalaryItemPO salaryItemPO = salaryItemMap.get(salaryItemId); ExpressFormula expressFormula; + String defaultValue; if (salarySobBackItemMap.containsKey(salaryItemId)) { // 如果薪资账套的回算项目中重新定义了回算项目公式,则使用薪资账套下的公式 SalarySobBackItemPO salarySobBackItemPO = salarySobBackItemMap.get(salaryItemId); expressFormula = expressFormulaMap.get(salarySobBackItemPO.getFormulaId()); + defaultValue = salarySobBackItemPO.getDefaultValue(); } else if (salaryItemIdKeySalarySobItemPOMap.containsKey(salaryItemId)) { // 如果薪资账套下重新定义了薪资项目的公式,则使用薪资账套下的公式,否则使用薪资项目本身的公式 SalarySobItemPO salarySobItemPO = salaryItemIdKeySalarySobItemPOMap.get(salaryItemId); expressFormula = expressFormulaMap.get(salarySobItemPO.getFormulaId()); + defaultValue = salarySobItemPO.getDefaultValue(); } else { expressFormula = expressFormulaMap.get(salaryItemPO.getFormulaId()); + defaultValue = salaryItemPO.getDefaultValue(); } if (Objects.nonNull(expressFormula)) { // 运行公式 @@ -244,6 +250,9 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc // 处理取值类型为“输入/导入”的薪资项目 String key = SalaryFormulaReferenceEnum.SALARY_ITEM.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + salaryItemPO.getCode(); resultValue = formulaVarValueMap.getOrDefault(key, StringUtils.EMPTY); + if (StrUtil.isBlank(resultValue)) { + resultValue = Util.null2String(defaultValue); + } } // 处理薪资档案 if (Objects.equals(salaryItemPO.getUseInEmployeeSalary(), NumberUtils.INTEGER_ONE)) {