diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 3662ecb61..52ddb848b 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -1508,13 +1508,32 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe Collection salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); // 获取薪资档案所对应的当前生效的薪资项目数据 List salaryArchiveItemList = getCurrentEffectiveItemList(Collections.singletonList(salaryArchivePO.getId()), salaryItemIds); - + // 获取建模中的薪资项目 + RecordSet rs = new RecordSet(); + // 获取有哪些薪资项目 + rs.execute("select xzxm from uf_lcmxmr t left join uf_lcmxmr_dt1 d on t.id = d.mainid"); + List lcSalaryItemIds = new ArrayList<>(); + while (rs.next()) { + String xzxm = rs.getString("xzxm"); + if (NumberUtils.isCreatable(xzxm)) { + lcSalaryItemIds.add(Long.valueOf(xzxm)); + } + } + lcSalaryItemIds = lcSalaryItemIds.stream().distinct().collect(Collectors.toList()); + List finalLcSalaryItemIds = lcSalaryItemIds; salaryItems.forEach(item -> { Optional optionalItem = salaryArchiveItemList.stream().filter(f -> f.getSalaryItemId().equals(item.getId())).findFirst(); // 过滤值为0的 if (optionalItem.isPresent() && StringUtils.isNotBlank(optionalItem.get().getItemValue())) { if (NumberUtils.isCreatable(optionalItem.get().getItemValue())) { if (new BigDecimal(optionalItem.get().getItemValue()).compareTo(BigDecimal.ZERO) == 0) { + if (finalLcSalaryItemIds.contains(item.getId())) { + Map salaryItemMap = new LinkedHashMap<>(); + salaryItemMap.put("salaryItemId", item.getId()); + salaryItemMap.put("salaryItemName", item.getName()); + salaryItemMap.put("value", "0"); + resultList.add(salaryItemMap); + } } else { Map salaryItemMap = new LinkedHashMap<>(); salaryItemMap.put("salaryItemId", item.getId()); @@ -1529,6 +1548,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe salaryItemMap.put("value", optionalItem.get().getItemValue()); resultList.add(salaryItemMap); } + } else if (finalLcSalaryItemIds.contains(item.getId())) { + Map salaryItemMap = new LinkedHashMap<>(); + salaryItemMap.put("salaryItemId", item.getId()); + salaryItemMap.put("salaryItemName", item.getName()); + salaryItemMap.put("value", ""); + resultList.add(salaryItemMap); } }); return resultList;