From 0588fcfb4e98f2f932c1f958ceabc5864478a537 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Wed, 11 Dec 2024 15:43:42 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.3=E3=80=91=E6=95=B4=E7=90=86?= =?UTF-8?q?=E6=A0=91=E6=8E=92=E5=BA=8F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tree/factory/SortedTreeBuildFactory.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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()); } }