Merge branch 'release/2.15.1.2407.01' into release/个税版本

This commit is contained in:
钱涛 2024-08-06 14:24:42 +08:00
commit 05a755c9b3
1 changed files with 19 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.salaryacct.bo; package com.engine.salary.entity.salaryacct.bo;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.annotation.SalaryFormulaVar;
import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.component.WeaTableColumnGroup;
@ -35,6 +36,7 @@ import org.springframework.beans.BeanUtils;
import weaver.general.Util; import weaver.general.Util;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -305,7 +307,7 @@ public class SalaryAcctResultBO {
} else if ("status".equals(salarySobEmpField.getFieldCode())) { } else if ("status".equals(salarySobEmpField.getFieldCode())) {
map.put("status", e.getStatus()); map.put("status", e.getStatus());
} else if ("statusName".equals(salarySobEmpField.getFieldCode())) { } else if ("statusName".equals(salarySobEmpField.getFieldCode())) {
map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(e.getStatus(),"1")))); map.put("statusName", UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(e.getStatus(), "1"))));
} else { } else {
map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode())); map.put(salarySobEmpField.getFieldCode(), fieldValueMap.get(salarySobEmpField.getFieldCode()));
} }
@ -418,13 +420,20 @@ public class SalaryAcctResultBO {
// 薪资项目字段的字段类型 // 薪资项目字段的字段类型
map.put(salaryItem.getId() + DATA_TYPE_SUFFIX, salaryItem.getDataType()); map.put(salaryItem.getId() + DATA_TYPE_SUFFIX, salaryItem.getDataType());
SalaryDataTypeEnum dataTypeEnum = SalaryDataTypeEnum.parseByValue(salaryItem.getDataType()); SalaryDataTypeEnum dataTypeEnum = SalaryDataTypeEnum.parseByValue(salaryItem.getDataType());
if (dataTypeEnum == SalaryDataTypeEnum.STRING) { if (dataTypeEnum == SalaryDataTypeEnum.NUMBER) {
if (!StringUtils.equals(acctResultValue, excelResultValue)) { if (NumberUtil.isNumber(acctResultValue) && NumberUtil.isNumber(excelResultValue)) {
different = true; if (new BigDecimal(acctResultValue).compareTo(new BigDecimal(excelResultValue)) != 0) {
includeSalaryItemIds.add(salaryItem.getId()); different = true;
includeSalaryItemIds.add(salaryItem.getId());
}
} else {
if (SalaryEntityUtil.empty2Zero(acctResultValue).compareTo(SalaryEntityUtil.empty2Zero(excelResultValue)) != 0) {
different = true;
includeSalaryItemIds.add(salaryItem.getId());
}
} }
} else { } else {
if (SalaryEntityUtil.empty2Zero(acctResultValue).compareTo(SalaryEntityUtil.empty2Zero(excelResultValue)) != 0) { if (!StringUtils.equals(acctResultValue, excelResultValue)) {
different = true; different = true;
includeSalaryItemIds.add(salaryItem.getId()); includeSalaryItemIds.add(salaryItem.getId());
} }
@ -499,7 +508,7 @@ public class SalaryAcctResultBO {
fieldValueMap.put("id", employeeFieldValueMap.getOrDefault(codeKey + "Id", StringUtils.EMPTY)); fieldValueMap.put("id", employeeFieldValueMap.getOrDefault(codeKey + "Id", StringUtils.EMPTY));
fieldValueMap.put("name", employeeFieldValueMap.getOrDefault(codeKey + "Name", StringUtils.EMPTY)); fieldValueMap.put("name", employeeFieldValueMap.getOrDefault(codeKey + "Name", StringUtils.EMPTY));
if (codeKey.equals("jobcall")) { if (codeKey.equals("jobcall")) {
fieldValueMap.put("name", employeeFieldValueMap.getOrDefault( "jobcall", StringUtils.EMPTY)); fieldValueMap.put("name", employeeFieldValueMap.getOrDefault("jobcall", StringUtils.EMPTY));
} }
dto.setFieldValue(fieldValueMap); dto.setFieldValue(fieldValueMap);
} }
@ -511,11 +520,11 @@ public class SalaryAcctResultBO {
// 过滤出是浏览框类型的且人员信息中同时存在名称和id的字段 // 过滤出是浏览框类型的且人员信息中同时存在名称和id的字段
employeeInfos.stream() employeeInfos.stream()
.filter(e -> e.getFieldType().contains("Browser")) .filter(e -> e.getFieldType().contains("Browser"))
.map(e -> SalaryAcctEmployeeInfoDTO.builder().fieldName(e.getFieldName().replace("ID","")).build()) .map(e -> SalaryAcctEmployeeInfoDTO.builder().fieldName(e.getFieldName().replace("ID", "")).build())
.collect(Collectors.groupingBy(SalaryAcctEmployeeInfoDTO::getFieldName)) .collect(Collectors.groupingBy(SalaryAcctEmployeeInfoDTO::getFieldName))
.forEach((k,v) -> { .forEach((k, v) -> {
if (v.size() > 1) { if (v.size() > 1) {
needRemoveFieldNames.add(k+"ID"); needRemoveFieldNames.add(k + "ID");
} }
}); });