From 0b1e9e70818f0e3eb32dd6c029d42d93236ecdc6 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Wed, 03 Jul 2024 12:07:01 +0800
Subject: [PATCH] 数据同步新增连接池配置

---
 src/main/java/org/springblade/common/utils/NodeTreeUtil.java |  105 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 90 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
index 88d8860..a1d824e 100644
--- a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
+++ b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
@@ -1,11 +1,13 @@
 package org.springblade.common.utils;
 
 import org.springblade.common.node.TreeIntegerNode;
-import org.springblade.common.node.TreeNode;
-import org.springblade.modules.doorplateAddress.vo.DoorplateAddressVOTree;
-import org.springblade.modules.house.vo.HouseTree;
+import org.springblade.common.node.TreeLongNode;
+import org.springblade.common.node.TreeStringNode;
+import org.springblade.core.tool.node.TreeNode;
+import org.springblade.modules.system.node.DeptUserTreeNode;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -40,12 +42,12 @@
 	 * @param treeMap
 	 * @return
 	 */
-	public static List<DoorplateAddressVOTree> getAddressNodeTree(Map<String, DoorplateAddressVOTree> treeMap){
-		List<DoorplateAddressVOTree> tree = new ArrayList<>();
+	public static List<TreeLongNode> getLongNodeTree(Map<Long, TreeLongNode> treeMap){
+		List<TreeLongNode> tree = new ArrayList<>();
 		if (treeMap.size() > 1) {
-			treeMap.forEach((code, treeNode) -> {
-				if (treeMap.containsKey(treeNode.getParentCode())) {
-					treeMap.get(treeNode.getParentCode()).getChildren().add(treeNode);
+			treeMap.forEach((id, treeNode) -> {
+				if (treeMap.containsKey(treeNode.getParentId())) {
+					treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
 				} else {
 					tree.add(treeNode);
 				}
@@ -59,14 +61,87 @@
 	 * @param treeMap
 	 * @return
 	 */
-	public static List<HouseTree> getHouseTree(Map<String, HouseTree> treeMap){
-		List<HouseTree> tree = new ArrayList<>();
-		if (treeMap.size() > 1) {
-			treeMap.forEach((code, treeNode) -> {
-				if (treeMap.containsKey(treeNode.getParentCode())) {
-					treeMap.get(treeNode.getParentCode()).getChildren().add(treeNode);
-				} else {
+	public static List<TreeStringNode> getStringNodeTree(Map<String, TreeStringNode> treeMap){
+		List<TreeStringNode> tree = new ArrayList<>();
+		if (treeMap.size() > 0) {
+			if (treeMap.size()==1){
+				treeMap.forEach((id, treeNode) -> {
 					tree.add(treeNode);
+				});
+			}else {
+				treeMap.forEach((id, treeNode) -> {
+					if (treeMap.containsKey(treeNode.getParentId())) {
+						treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+					} else {
+						tree.add(treeNode);
+					}
+				});
+			}
+		}
+		return tree;
+	}
+
+
+
+	/**
+	 * list 转 tree 组织机构
+	 * @param parentList
+	 * @param childrenList
+	 * @return
+	 */
+	public  static List<TreeNode> getNodeTree(List<TreeNode> parentList, List<TreeNode> childrenList){
+		// 遍历
+		for (TreeNode parentNode : parentList) {
+			// 判断是否有孩子
+			if (parentNode.getHasChildren()) {
+				List<TreeNode> tree = new ArrayList<>();
+				// 遍历子集合
+				for (TreeNode childrenNode : childrenList) {
+					if (parentNode.getId().equals(childrenNode.getParentId())) {
+						tree.add(childrenNode);
+					}
+				}
+				// 设置孩子节点
+				parentNode.setChildren(tree);
+			}
+		}
+		return parentList;
+	}
+
+	/**
+	 * map 转 tree 组织机构(父子id不会重复的情况,数据查询来自同一个表)
+	 * @param treeMap
+	 * @return
+	 */
+	public  static List<DeptUserTreeNode> getDeptAndUserNodeTree(Map<String, DeptUserTreeNode> treeMap){
+		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);
+						} else {
+							tree.add(treeNode);
+						}
+					}
+				}else {
+					if (treeMap.containsKey(treeNode.getParentId())) {
+						treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+					} else {
+						tree.add(treeNode);
+					}
 				}
 			});
 		}

--
Gitblit v1.9.3