Przeglądaj źródła

新增机构树查询接口

zhulu 2 lat temu
rodzic
commit
1be753b4d0

+ 9 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/Eto/SysOrgTreeRequestDto.java

@@ -6,10 +6,19 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.util.List;
+
 @Data
 public class SysOrgTreeRequestDto {
 
     private Long orgId;
 
     private Boolean includeSub=false;
+
+    // 排查指定机构名称
+    private String excludeOrgName;
+
+    // 排查指定机构编码
+    private String excludeOrgCode;
+
 }

+ 5 - 0
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/config/ThirdPartySystemConfig.java

@@ -32,6 +32,11 @@ public class ThirdPartySystemConfig {
     private String fjnxSyncOrgCustomRootOrgCode;
 
     /**
+     * 同步机构时原因省联社机构更改的新名称
+     */
+    private String fjnxSyncOrgOriginalRootOrgNewName;
+
+    /**
      * 同步用户默认密码
      */
     private String fjnxSyncUserDefaultPassword;

+ 7 - 6
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java

@@ -1038,9 +1038,10 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
                 log.error("没有机构编码,机构名称:{}", item.getOrgName());
                 return;
             }
-            if(ObjectUtil.equal(item.getShortName(),"省联社"))
+            if(ObjectUtil.equal(item.getShortName(),"省联社") && !StringUtil.isNullOrEmpty(thirdPartySystemConfig.getFjnxSyncOrgOriginalRootOrgNewName()) )
             {
-                item.setShortName("省联社职能部门");
+                item.setOrgName(thirdPartySystemConfig.getFjnxSyncOrgOriginalRootOrgNewName());
+                item.setShortName(thirdPartySystemConfig.getFjnxSyncOrgOriginalRootOrgNewName());
             }
 
             FjnxOrg tempOrg = new FjnxOrg();
@@ -1049,10 +1050,10 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
             tempOrg.setLastSyncTime(syncDateTime);
             tempOrg.setBusinessParentCode(tempOrg.getOrgParent());
             tempOrg.setTreeShowParentCode(tempOrg.getOrgParent());
-            if(item.getOrgCode().equals("M33000000"))
-            {
-                String a="M33000000";
-            }
+//            if(item.getOrgCode().equals("M33000000"))
+//            {
+//                String a="M33000000";
+//            }
 
             Optional<FjnxOrgBusinessRelation> first = fjnxOrgBusinessRelationList.stream().filter(b -> b.getOrgCode().equals(item.getOrgCode())).findFirst();
             if (first.isPresent()) {

+ 11 - 6
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -157,12 +157,17 @@ public class SysDeptController extends BaseController {
     }
 
     @PostMapping("/deptTree/business")
-    public AjaxResult businessDeptTree(@RequestBody String excludeOrgCode) {
-        if(StringUtils.isEmpty(excludeOrgCode))
-        {
-            excludeOrgCode="900000000";
-        }
-        return success(deptService.selectBusinessTreeList(excludeOrgCode));
+    public AjaxResult businessDeptTree(@RequestBody SysOrgTreeRequestDto request) {
+//        if(ObjectUtil.isEmpty(request) )
+//        {
+//            request=new SysOrgTreeRequestDto();
+//        }
+//        if(StringUtils.isEmpty(request.getExcludeOrgCode()))
+//        {
+//            // 默认排查省联社
+//            request.setExcludeOrgCode("900000000");
+//        }
+        return success(deptService.selectBusinessTreeList(request));
     }
 
     /**

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

@@ -38,7 +38,7 @@ public interface ISysDeptService extends IService<SysDept> {
      */
     List<SysOrgVO> selectHangsheTreeList();
 
-    List<SysOrgVO> selectBusinessTreeList(String excludeOrgCode);
+    List<SysOrgVO> selectBusinessTreeList(SysOrgTreeRequestDto request);
 
     /**
      * 获取缓存的行社及行社上级机构

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

@@ -149,14 +149,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     }
 
     @Override
-    public List<SysOrgVO> selectBusinessTreeList(String excludeOrgCode) {
+    public List<SysOrgVO> selectBusinessTreeList(SysOrgTreeRequestDto request) {
         SysOrg sysOrg = null;
         SysOrgVO excludeOrg = null;
         sysOrg = getLoginUserOrg();
         List<SysOrgVO> cacheList = getOrgCache();
         List<SysOrgVO> orgs = new ArrayList<>();
-        if(StringUtils.isNotEmpty(excludeOrgCode)){
-            final Optional<SysOrgVO> first = cacheList.stream().filter(x -> ObjectUtil.equal(x.getCode(), excludeOrgCode)).findFirst();
+        if(StringUtils.isNotEmpty(request.getExcludeOrgCode())){
+            final Optional<SysOrgVO> first = cacheList.stream().filter(x -> ObjectUtil.equal(x.getCode(), request.getExcludeOrgCode())).findFirst();
             if(first.isPresent())
             {
                 excludeOrg=first.get();
@@ -181,10 +181,40 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             }
             orgs.add(org);
         }
+        if(!StringUtils.isEmpty(request.getExcludeOrgName()))
+        {
+            orgs= excludeOrgByOrgName(orgs,request.getExcludeOrgName());
+        }
+
         return generateTree(orgs, sysOrg);
     }
 
     /**
+     * 排除指定机构名称的机构以及该机构的下级机构
+     * @param orgs 待排出机构列表
+     * @param excludeOrgName 需排出机构的名称
+     * @return
+     */
+    private List<SysOrgVO> excludeOrgByOrgName(List<SysOrgVO> orgs,String excludeOrgName)
+    {
+        List<SysOrgVO> result = new ArrayList<>();
+
+        final List<SysOrgVO> excludeOrgList = orgs.stream().filter(x -> ObjectUtil.equal(x.getName(), excludeOrgName)).collect(Collectors.toList());
+        if(ObjectUtil.isEmpty(excludeOrgList))
+        {
+            return orgs;
+        }
+        for (SysOrgVO org : orgs) {
+            if(excludeOrgList.stream().anyMatch(e-> org.getPath().startsWith(e.getPath())))
+            {
+                continue;
+            }
+            result.add(org);
+        }
+        return result;
+    }
+
+    /**
      * 获取缓存的行社及行社上级机构
      *
      * @param path
@@ -265,7 +295,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             return new ArrayList<>();
         }
 
-        final List<SysOrgVO> orgList = getWholePathTreeOrgFromCache(sysOrg, cacheList,request.getIncludeSub());
+        final List<SysOrgVO> orgList = getWholePathTreeOrgFromCache(sysOrg, cacheList,request.getIncludeSub(),request.getExcludeOrgName());
 
         return generateTree(orgList,null);
     }
@@ -276,7 +306,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
      * @param cacheList
      * @return
      */
-    public List<SysOrgVO> getWholePathTreeOrgFromCache(SysOrgVO orgVO,List<SysOrgVO> cacheList,Boolean includeSub) {
+    public List<SysOrgVO> getWholePathTreeOrgFromCache(SysOrgVO orgVO,List<SysOrgVO> cacheList,Boolean includeSub,String excludeOrgName) {
         List<SysOrgVO> selfAndAllChildOrglist =null;
         if(includeSub)
         {
@@ -286,6 +316,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             selfAndAllChildOrglist=cacheList.stream().filter(c ->ObjectUtil.equal(orgVO.getId(),c.getId())).collect(Collectors.toList());
         }
 
+
+
         Set<Long> parentIds = new HashSet<>();
             Arrays.stream(orgVO.getPath().split("-")).map(p -> Long.parseLong(p))
                     .collect(Collectors.toList())
@@ -298,6 +330,13 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
                 .filter(o -> parentIds.contains(o.getId()))
                 .collect(Collectors.toList()));
 
+        // 排除指定机构名称的机构以及该机构的下级机构
+        if(StringUtils.isNotEmpty(excludeOrgName))
+        {
+            selfAndAllChildOrglist= excludeOrgByOrgName(selfAndAllChildOrglist,excludeOrgName);
+        }
+
+
         return selfAndAllChildOrglist;
     }