From 596c62beb73eaef72ca14b1e63931c3f5d0dd18c Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Mon, 4 Aug 2025 14:47:11 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20=20=E6=9F=AC=E5=9F=94=E5=AF=A8?= =?UTF-8?q?=E5=BF=AB=E9=80=92=E6=BC=8F=E7=BB=84=E6=89=B9=E6=AC=A1=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E5=87=86=E7=A1=AE=E6=80=A7=E9=80=82=E5=BA=94=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/emis/service/EmisBaseService.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index 3388d23a1..521aac51b 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -5027,12 +5027,35 @@ public class EmisBaseService { String key = ruleItem.getStartSiteCode() + "_" + ruleItem.getNextSiteCode(); groupMap.computeIfAbsent(key, k -> new ArrayList<>()).add(ruleItem); } + + boolean isGroupMatch = false; for (List group : groupMap.values()) { // 判断该组是否有匹配 boolean matched = group.stream().anyMatch(levelRule -> filterRules.stream().anyMatch( filterRule -> Objects.equals(filterRule.getStartSiteCode(), levelRule.getStartSiteCode()) && Objects.equals(filterRule.getNextSiteCode(), levelRule.getNextSiteCode()) && compareSupplierCodes(filterRule.getSupplierCode(), levelRule.getSupplierCode()))); + if (matched) { + isGroupMatch = true; + if (group.get(0).getChildren() == null) { + return; + } + break; + } + } + if (isGroupMatch) { + continue; + } + + for (List group : groupMap.values()) { + // 判断该组是否有匹配 + boolean matched = group.stream().anyMatch(levelRule -> filterRules.stream().anyMatch( + filterRule -> Objects.equals(filterRule.getStartSiteCode(), levelRule.getStartSiteCode()) && + Objects.equals(filterRule.getNextSiteCode(), levelRule.getNextSiteCode()) && + compareSupplierCodes(filterRule.getSupplierCode(), levelRule.getSupplierCode()))); + if (matched && group.get(0).getChildren() == null) { + return; + } if (!matched && !group.isEmpty()) { // if (CollectionUtil.isNotEmpty(missRecords)) { // List list = missRecords.stream().filter(i -> waybill.getBillCode().equals(i.getBillCode())).collect(Collectors.toList());