diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 8428275b7..d6b21f47a 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -278,12 +278,14 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe Map map = new HashMap<>(); Map> acctResultMap = SalaryEntityUtil.group2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId); salaryItemPOS.stream().filter(item -> SalaryDataTypeEnum.NUMBER.getValue().equals(item.getDataType())).forEach(item -> { - BigDecimal sum = acctResultMap.get(item.getId()).stream() + BigDecimal sum = Optional.ofNullable(acctResultMap.get(item.getId())) + .orElse(new ArrayList<>()) + .stream() .map(SalaryAcctResultPO::getResultValue) .filter(NumberUtils::isCreatable) .map(BigDecimal::new) .reduce(BigDecimal.ZERO, BigDecimal::add); - map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(),item)); + map.put(item.getId().toString(), SalaryAcctFormulaBO.roundResultValue(sum.toString(), item)); }); return map; } diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index 2d4e42ae6..e5d6b0133 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -94,6 +94,12 @@ public class SalaryItemWrapper extends Service { List sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds); // 转换成薪资项目列表dto List salaryItemListDTOS = SalaryItemBO.convert2ListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS); + //薪资档案引用时不能删除 + salaryItemListDTOS.forEach(dto -> { + if (dto.getUseInEmployeeSalary() == 1) { + dto.setCanDelete(false); + } + }); //3、被引用的薪资项目不能删除 Set salaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getId); salarySobItems = getSalarySobItemService(user).listBySalaryItemIds(salaryItemIds);