zhongrj
2023-04-23 396bf585bc43c16c944fdc03e9e5efc5a8432aad
skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/NodeTreeUtil.java
@@ -1,7 +1,9 @@
package cn.gistack.common.utils;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -32,6 +34,45 @@
   }
   /**
    * map 转 tree 组织机构(父子id不会重复的情况,数据查询来自同一个表)
    * @param treeMap
    * @return
    */
   public  static List<TreeNode> getDeptAndUserNodeTree(Map<String, DeptUserTreeNode> treeMap){
      List<TreeNode> 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())) {
                     treeMap.get(treeNode.getParentId()).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;
   }
   /**
    * list 转 tree 组织机构
    * @param parentList
    * @param childrenList