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 | 125 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 121 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
index 3f6d777..a1d824e 100644
--- a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
+++ b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
@@ -1,7 +1,13 @@
package org.springblade.common.utils;
-import org.springblade.common.node.TreeNode;
+import org.springblade.common.node.TreeIntegerNode;
+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;
@@ -13,12 +19,12 @@
public class NodeTreeUtil {
/**
- * 警员map 转 tree 组织机构
+ * 树转换
* @param treeMap
* @return
*/
- public static List<TreeNode> getNodeTree(Map<String, TreeNode> treeMap){
- List<TreeNode> tree = new ArrayList<>();
+ public static List<TreeIntegerNode> getNodeTree(Map<Integer, TreeIntegerNode> treeMap){
+ List<TreeIntegerNode> tree = new ArrayList<>();
if (treeMap.size() > 1) {
treeMap.forEach((id, treeNode) -> {
if (treeMap.containsKey(treeNode.getParentId())) {
@@ -30,4 +36,115 @@
}
return tree;
}
+
+ /**
+ * 树转换
+ * @param treeMap
+ * @return
+ */
+ public static List<TreeLongNode> getLongNodeTree(Map<Long, TreeLongNode> treeMap){
+ List<TreeLongNode> tree = new ArrayList<>();
+ if (treeMap.size() > 1) {
+ treeMap.forEach((id, treeNode) -> {
+ if (treeMap.containsKey(treeNode.getParentId())) {
+ treeMap.get(treeNode.getParentId()).getChildren().add(treeNode);
+ } else {
+ tree.add(treeNode);
+ }
+ });
+ }
+ return tree;
+ }
+
+ /**
+ * 树转换
+ * @param treeMap
+ * @return
+ */
+ 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);
+ }
+ }
+ });
+ }
+ return tree;
+ }
}
--
Gitblit v1.9.3