From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送
---
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