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 89cc5f85d..a679d058a 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 @@ -4911,6 +4911,10 @@ public class EmisBaseService { && !batch.getEtd().before(firstLevelRule.getStartDate())) { firstLevelMatch = true; list.add(firstLevelRule); + // 收集当前第一级节点的所有子节点到第二级集合中 + if (!CollectionUtil.isEmpty(firstLevelRule.getChildren())) { + secondLevelRules.addAll(firstLevelRule.getChildren()); + } break; } } @@ -4919,10 +4923,6 @@ public class EmisBaseService { hasFirstLevelMatch = true; } - // 收集当前第一级节点的所有子节点到第二级集合中 - if (!CollectionUtil.isEmpty(firstLevelRule.getChildren())) { - secondLevelRules.addAll(firstLevelRule.getChildren()); - } } // 如果第二级为空,说明已经到底了,返回当前节点匹配且第一级至少有一个匹配的结果 @@ -4946,6 +4946,10 @@ public class EmisBaseService { && !batch.getEtd().before(secondLevelRule.getStartDate())) { secondLevelMatch = true; list.add(secondLevelRule); + // 收集当前第二级节点的所有子节点到第三级集合中 + if (!CollectionUtil.isEmpty(secondLevelRule.getChildren())) { + thirdLevelRules.addAll(secondLevelRule.getChildren()); + } break; } } @@ -4954,10 +4958,6 @@ public class EmisBaseService { hasSecondLevelMatch = true; } - // 收集当前第二级节点的所有子节点到第三级集合中 - if (!CollectionUtil.isEmpty(secondLevelRule.getChildren())) { - thirdLevelRules.addAll(secondLevelRule.getChildren()); - } } // 递归处理下一级,并收集结果