路维光电支持跨义务人取社保

This commit is contained in:
Harryxzy 2025-07-24 10:37:03 +08:00
parent c628c1be85
commit 365e88c76e
1 changed files with 13 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.salaryacct.bo;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.NumberUtil;
import com.engine.salary.annotation.SalaryFormulaVar;
import com.engine.salary.common.LocalDateRange;
@ -503,20 +504,25 @@ public class CalculateFormulaVarBO {
private void handleWelfareData(SalaryAcctCalculateBO salaryAcctCalculateBO, Map<String, List<FormulaVarValue>> resultMap) {
// 社保福利可选字段
List<String> fieldNames = Lists.newArrayList(salaryAcctCalculateBO.getWelfareColumns().values());
Map<String, List<String>> fieldNameMap = fieldNames.stream().collect(Collectors.groupingBy(fieldName -> fieldName.split("_")[0]));
// 社保福利数据
Map<String, List<FormulaVarValue>> tempMap = new HashMap<>();
welfareData.forEach(map -> {
// String key = map.getOrDefault("employeeId", StringUtils.EMPTY) + "_" + map.getOrDefault("taxAgentId", StringUtils.EMPTY);
String taxAgentId = Utils.null2String(map.getOrDefault("taxAgentId", StringUtils.EMPTY));
String taxAgentIdKey = taxAgentId + "_";
// String taxAgentIdKey = taxAgentId + "_";
String key = Utils.null2String(map.getOrDefault("employeeId", StringUtils.EMPTY));
List<FormulaVarValue> formulaVarValues = tempMap.computeIfAbsent(key, k -> Lists.newArrayList());
formulaVarValues.addAll(fieldNames.stream().filter(fieldName -> fieldName.startsWith(taxAgentIdKey)).map(fieldName -> {
String fieldId = SalaryFormulaReferenceEnum.WELFARE.getValue()
+ SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR
+ fieldName;
return new FormulaVarValue().setFieldId(fieldId).setFieldValue(String.valueOf(map.getOrDefault(fieldName, StringUtils.EMPTY)));
}).collect(Collectors.toList()));
List<String> fieldNameList = fieldNameMap.get(taxAgentId);
if (CollectionUtil.isNotEmpty(fieldNameList)) {
formulaVarValues.addAll(fieldNameList.stream().map(fieldName -> {
String fieldId = SalaryFormulaReferenceEnum.WELFARE.getValue()
+ SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR
+ fieldName;
return new FormulaVarValue().setFieldId(fieldId).setFieldValue(String.valueOf(map.getOrDefault(fieldName, StringUtils.EMPTY)));
}).collect(Collectors.toList()));
}
});
// 填充到返回结果集中
for (SalaryAcctEmployeePO salaryAcctEmployeePO : salaryAcctCalculateBO.getSalaryAcctEmployeePOS()) {