From f1bd47f8b7cf6c7ae6b97419db0b460d22798868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 27 Oct 2025 11:22:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A0=B8=E7=AE=97=E5=A4=9A?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctResultServiceImpl.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 26433f489..7f39ec784 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -327,14 +327,25 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isNotEmpty(otherConditions)) { List items = SalaryEntityUtil.properties(otherConditions, SalaryAcctResultQueryParam.OtherCondition::getItemId, Collectors.toList()); List list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), items); - for (int i = 0; i < otherConditions.size(); i++) { - SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i); - Long itemId = otherCondition.getItemId(); - FilterEnum filter = otherCondition.getFilter(); - List params = otherCondition.getParams(); - list = list.stream().filter(a -> Objects.equals(a.getSalaryItemId(), itemId)).filter(a -> filter.filter(params).test(a.getResultValue())).collect(Collectors.toList()); + Map> acctEmpResultsMap = SalaryEntityUtil.group2Map(list, SalaryAcctResultPO::getSalaryAcctEmpId); + Set removeAcctEmpIds = new HashSet<>(); + for (Long acctEmpId : acctEmpResultsMap.keySet()) { + List acctEmpResults = acctEmpResultsMap.get(acctEmpId); + //如果有一个条件不成立就删除 + for (int i = 0; i < otherConditions.size(); i++) { + SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i); + Long itemId = otherCondition.getItemId(); + FilterEnum filter = otherCondition.getFilter(); + List params = otherCondition.getParams(); + for (SalaryAcctResultPO po : acctEmpResults) { + if(Objects.equals(po.getSalaryItemId(), itemId) && !filter.filter(params).test(po.getResultValue())){ + removeAcctEmpIds.add(po.getSalaryAcctEmpId()); + } + } + } } - List salaryAcctEmpId = SalaryEntityUtil.properties(list, SalaryAcctResultPO::getSalaryAcctEmpId, Collectors.toList()); + acctEmpResultsMap.keySet().removeAll(removeAcctEmpIds); + List salaryAcctEmpId = Lists.newArrayList(acctEmpResultsMap.keySet()); if (CollectionUtils.isEmpty(salaryAcctEmpId)) { //条件不满足直接返回空列表