diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/tree/factory/SortedTreeBuildFactory.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/tree/factory/SortedTreeBuildFactory.java index a82a7e612..3c8fce9e8 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/tree/factory/SortedTreeBuildFactory.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/tree/factory/SortedTreeBuildFactory.java @@ -57,7 +57,7 @@ public class SortedTreeBuildFactory> extends public List doTreeBuild(List nodes) { // 先对列表进行排序 - nodes.sort(Comparator.comparing(m -> Optional.ofNullable((m).getSort()).orElse(new BigDecimal(Integer.MAX_VALUE)))); + nodes.sort(Comparator.comparing(itemNode -> Optional.ofNullable((itemNode).getSort()).orElse(new BigDecimal(Integer.MAX_VALUE)))); // 将每个节点构造一个子树 for (T treeNode : nodes) { @@ -76,7 +76,7 @@ public class SortedTreeBuildFactory> extends List nodeSubLists = getSubChildsLevelOne(totalNodes, node); // 对子节点进行排序 - nodeSubLists.sort(Comparator.comparing(m -> Optional.ofNullable((m).getSort()).orElse(new BigDecimal(Integer.MAX_VALUE)))); + nodeSubLists.sort(Comparator.comparing(itemNode -> Optional.ofNullable((itemNode).getSort()).orElse(new BigDecimal(Integer.MAX_VALUE)))); if (!nodeSubLists.isEmpty()) { for (T nodeSubList : nodeSubLists) { @@ -88,13 +88,19 @@ public class SortedTreeBuildFactory> extends node.setChildrenNodes(childNodeLists); } + /** + * 找到最顶级的节点,指定node列表中,不存在的父级id则为顶级节点 + * + * @author fengshuonan + * @since 2024/12/11 15:35 + */ private List findTops(List nodes) { - List parents = nodes.stream().filter((a) -> null != a.getNodeParentId()).collect(Collectors.toList()); + List totalParentList = nodes.stream().filter((itemNode) -> null != itemNode.getNodeParentId()).collect(Collectors.toList()); - List entityIds = nodes.stream().map(AbstractSortedTreeNode::getNodeId).collect(Collectors.toList()); + List totalNodeIdList = nodes.stream().map(AbstractSortedTreeNode::getNodeId).collect(Collectors.toList()); - return parents.stream().filter((a) -> !entityIds.contains(a.getNodeParentId())).distinct().collect(Collectors.toList()); + return totalParentList.stream().filter((item) -> !totalNodeIdList.contains(item.getNodeParentId())).distinct().collect(Collectors.toList()); } }