소스 검색

Dept Tree Optimize

caiaa1 1 년 전
부모
커밋
abe26d8ba8

+ 8 - 4
src/main/java/com/dragon/tj/portal/auth/controller/DeptController.java

@@ -3,7 +3,6 @@ package com.dragon.tj.portal.auth.controller;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dragon.tj.portal.auth.util.SecurityUtils;
-import com.dragon.tj.portal.auth.util.TreeBuilder;
 import com.dragon.tj.portal.auth.web.convert.DeptTreeNodeConvert;
 import com.dragon.tj.portal.auth.web.dto.DeptTreeNode;
 import com.dragon.tj.portal.auth.web.entity.SysDept;
@@ -16,7 +15,9 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -49,11 +50,11 @@ public class DeptController {
     @GetMapping("/tree")
     public R<List<DeptTreeNode>> tree(@RequestParam(required = false) String upOrgCode, @RequestParam(required = false) boolean fromRoot) {
         String rootOrgCode;
-        if(StringUtils.isNotBlank(upOrgCode)){
+        if (StringUtils.isNotBlank(upOrgCode)) {
             rootOrgCode = upOrgCode;
         } else if (fromRoot) {
             rootOrgCode = ROOT_ORG_CODE;
-        }else {
+        } else {
             rootOrgCode = SecurityUtils.getLoginUser().getOrgCode();
         }
 
@@ -66,7 +67,10 @@ public class DeptController {
         List<SysDept> orgs = sysDeptService.list(Wrappers.<SysDept>query().lambda().likeRight(SysDept::getOrgCode, rootOrgCodePrefix).orderByAsc(SysDept::getOrgCode));
         List<DeptTreeNode> orgNodes = orgs.stream().map(deptTreeNodeConvert::toVo).collect(Collectors.toList());
         if (orgNodes.size() > 1) {
-            orgNodes = new TreeBuilder(orgNodes).buildTree(rootOrgCode);
+            // orgNodes = new TreeBuilder(orgNodes).buildTree(rootOrgCode);
+            Map<String, List<DeptTreeNode>> groupMap = orgNodes.stream().collect(Collectors.groupingBy(DeptTreeNode::getUpOrgCode));
+            orgNodes.forEach(item -> item.setChildren(groupMap.get(item.getOrgCode())));
+            orgNodes = Collections.singletonList(orgNodes.get(0));
         }
         return R.ok(orgNodes);
     }

+ 2 - 12
src/main/java/com/dragon/tj/portal/auth/web/dto/DeptTreeNode.java

@@ -1,5 +1,6 @@
 package com.dragon.tj.portal.auth.web.dto;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 
 import java.util.List;
@@ -9,19 +10,8 @@ public class DeptTreeNode {
 
     private String orgCode;
     private String upOrgCode;
-    private String orgKind;
     private String fullName;
     private String shortName;
-    private String areaCode;
-    private String standCode;
-    private String orgType;
-    private String orgLevel;
-    private String orgRank;
-    private String unitClass;
-    private String email;
-    private String linkMan;
-    private String phone;
-    private String updateTime;
-    private String deleted;
+    @JsonInclude(JsonInclude.Include.NON_NULL)
     private List<DeptTreeNode> children;
 }