From 0fab01cd671c72d9278c98f611e201f178fd672d Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Wed, 11 Jun 2025 17:22:52 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=E5=AE=9A=E6=97=B6=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E6=BC=8F=E7=BB=84=E6=89=B9=E6=AC=A1=E8=87=AA=E6=B5=8Bbug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EmisTmsSiteBatchMissServiceImpl.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java index 22cf311d1..b8d50c9a7 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java @@ -508,7 +508,7 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements } private boolean checkRule(EmisTransPlanRule rule, List waybillBatches, - List list) { + List list) { // 检查当前节点是否匹配 boolean currentMatch = false; for (EmisTmsSiteBatch batch : waybillBatches) { @@ -523,20 +523,22 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements } } - // 如果是叶子节点,直接返回当前节点是否匹配 + // 如果是叶子节点,返回当前节点的匹配结果 if (CollectionUtil.isEmpty(rule.getChildren())) { return currentMatch; } - // 检查所有子节点,只要有一条路径匹配就返回true + // 检查所有子节点,记录所有匹配的节点 + boolean allChildrenMatch = true; for (EmisTransPlanRule childRule : rule.getChildren()) { - if (checkRule(childRule, waybillBatches, list)) { - return true; + boolean childMatch = checkRule(childRule, waybillBatches, list); + if (!childMatch) { + allChildrenMatch = false; } } - // 如果当前节点不匹配,或者所有子节点都不匹配,返回false - return false; + // 返回当前节点和所有子节点的匹配结果 + return currentMatch && allChildrenMatch; } private void setMissRecords(List missRecords, EmisTransPlanRule rule,