diff --git a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java index 8894536a2..1c786c73d 100644 --- a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java +++ b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java @@ -254,8 +254,21 @@ public class SalaryAcctManager extends Service { // 7、查询考勤引用的所有字段 List attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll(); - //核算锁定值 - List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); +// //核算锁定值 +// List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); +// Map acctResults = new HashMap<>(); +// if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { +// List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); +// acctResults = Optional.ofNullable(acctResultPOS) +// .orElse(new ArrayList<>()) +// .stream() +// .filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())) +// .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); +// } + + //将除重新核算的项目外的所有的值都锁定 + List salaryItemIds = calculateParam.getSalaryItemIds(); + List lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList()); Map acctResults = new HashMap<>(); if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); @@ -266,6 +279,7 @@ public class SalaryAcctManager extends Service { .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); } + // 8、查询公式详情 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); formulaIds.addAll(SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getFormulaId));