Browse Source

机构树

jiawuxian 2 years ago
parent
commit
aa3a957ce6

+ 2 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.domain.R;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
@@ -153,7 +154,7 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/deptTree/hangshe")
     public AjaxResult hangsheDeptTree() {
-        return success(deptService.selectHangsheTreeList());
+        return success(deptService.selectTreeByOrgType(OrgTypeEnum.HANG_SHE));
     }
 
     @PostMapping("/deptTree/business")

+ 6 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeptService.java

@@ -1,6 +1,7 @@
 package com.xunmei.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.system.api.Eto.SysOrgTreeRequestDto;
 import com.xunmei.system.api.domain.SysDept;
 import com.xunmei.system.api.domain.SysOrg;
@@ -34,21 +35,24 @@ public interface ISysDeptService extends IService<SysDept> {
 
     /**
      * 返回行社树
+     *
      * @return
      */
-    List<SysOrgVO> selectHangsheTreeList();
+    List<SysOrgVO> selectTreeByOrgType(OrgTypeEnum orgType);
 
     List<SysOrgVO> selectBusinessTreeList(SysOrgTreeRequestDto request);
 
     /**
      * 获取缓存的行社及行社上级机构
+     *
      * @param path
      * @return
      */
-    List<SysOrgVO> getHangsheTreeCache(String path);
+    List<SysOrgVO> getWholeTreeInCache(String path, OrgTypeEnum orgType);
 
     /**
      * 获取指定机构树,包含到顶级节点的路径及下级所有机构
+     *
      * @param orgId
      * @return
      */

+ 12 - 5
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeptServiceImpl.java

@@ -140,10 +140,15 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         return generateTree(orgs, sysOrg);
     }
 
+    /**
+     * 获取指定机构类型及其上级机构
+     * @param orgType
+     * @return
+     */
     @Override
-    public List<SysOrgVO> selectHangsheTreeList() {
+    public List<SysOrgVO> selectTreeByOrgType(OrgTypeEnum orgType) {
         SysOrg sysOrg = getLoginUserOrg();
-        List<SysOrgVO> hangshelist = getHangsheTreeCache(sysOrg.getPath());
+        List<SysOrgVO> hangshelist = getWholeTreeInCache(sysOrg.getPath(),orgType);
 
         return generateTree(hangshelist, sysOrg);
     }
@@ -221,9 +226,9 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @return
      */
     @Override
-    public List<SysOrgVO> getHangsheTreeCache(String path) {
+    public List<SysOrgVO> getWholeTreeInCache(String path, OrgTypeEnum orgType) {
         List<SysOrgVO> cacheList = getOrgCache();
-        List<SysOrgVO> hangshelist = cacheList.stream().filter(c -> ObjectUtil.equal(c.getType(), OrgTypeEnum.HANG_SHE.getCode())
+        List<SysOrgVO> hangshelist = cacheList.stream().filter(c -> ObjectUtil.equal(c.getType(), orgType.getCode())
                 && ObjectUtil.isNotEmpty(c.getPath()) && c.getPath().startsWith(path))
                 .collect(Collectors.toList());
         Set<Long> hangsheSet = hangshelist.stream().map(o -> o.getId()).collect(Collectors.toSet());
@@ -252,7 +257,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      */
     @Override
     public List<SysOrgVO> hangsheWholePathTree(Long orgId) {
-        List<SysOrgVO> orgs = getHangsheTreeCache("");
+        List<SysOrgVO> orgs = getWholeTreeInCache("", OrgTypeEnum.HANG_SHE);
         Map<Long, SysOrgVO> orgMap = orgs.stream().collect(Collectors.toMap(o -> o.getId(), o -> o));
         if (!orgMap.containsKey(orgId)) {
             return new ArrayList<>();
@@ -268,6 +273,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         return orgVOS;
     }
 
+
+
     @Override
     public List<SysOrgVO> orgWholePathTree(SysOrgTreeRequestDto request) {
         SysOrgVO sysOrg = null;