From c10d6358b9f014375a13821465bc978d0c0da22e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 29 May 2024 17:17:08 +0800
Subject: [PATCH] 通过E呼即办数据统计

---
 src/main/java/org/springblade/common/utils/NodeTreeUtil.java |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
index efc38be..3a58bbc 100644
--- a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
+++ b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
@@ -8,10 +8,8 @@
 import org.springblade.modules.house.vo.HouseTree;
 import org.springblade.modules.system.node.DeptUserTreeNode;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * node tree 工具类
@@ -149,6 +147,10 @@
 
 	/**
 	 * map 转 tree 组织机构(父子id不会重复的情况,数据查询来自同一个表)
+	 *
+	 * 把部门用户树遍历一遍,每个值,查询他的parentId在不在用户部门树中。如果存在,就把这个加在下级
+	 * 最后最上级的parentId肯定不在用户部门树中,把最上级的加到新树里。返回新树
+	 *
 	 * @param treeMap
 	 * @return
 	 */
@@ -156,18 +158,25 @@
 		List<DeptUserTreeNode> tree = new ArrayList<>();
 		if (treeMap.size() > 1) {
 			treeMap.forEach((id, treeNode) -> {
+				//是否有下级
 				if (!treeNode.getHasChildren()){
-					// 判断是否有绑定多个部门
+					// 多个部门拆分
 					List<String> asList = Arrays.asList(treeNode.getParentId().split(","));
+					//有多部门
 					if (asList.size()>1){
 						for (String parentId : asList) {
+							//用户部门树中存在该部门
 							if (treeMap.containsKey(parentId)) {
+
+								//把该对象放在该部门下
 								treeMap.get(parentId).getChildren().add(treeNode);
 							} else {
+								//不存在该部门,在新的树中加入
 								tree.add(treeNode);
 							}
 						}
 					}else {
+
 						if (treeMap.containsKey(treeNode.getParentId())) {
 							DeptUserTreeNode deptUserTreeNode =treeMap.get(treeNode.getParentId());
 							deptUserTreeNode.getChildren().add(treeNode);
@@ -176,6 +185,7 @@
 						}
 					}
 				}else {
+					//有下级
 					if (treeMap.containsKey(treeNode.getParentId())) {
 						treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
 					} else {
@@ -184,6 +194,7 @@
 				}
 			});
 		}
+
 		return tree;
 	}
 }

--
Gitblit v1.9.3