Преглед на файлове

修改同步机构逻辑, 新增处理 机构是M开头的 部门但是不移动到 机关机构下

zhulu преди 2 години
родител
ревизия
bdd17e3ef0

+ 7 - 2
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/domain/FjnxOrgMoveToCustomOrg.java

@@ -26,6 +26,11 @@ public class FjnxOrgMoveToCustomOrg implements Serializable {
     private Long id;
 
     @ApiModelProperty(value = "需要移动到自定义机构下的机构编码")
-    @TableField("need_move_org_code")
-    private String needMoveOrgCode;
+    @TableField("org_code")
+    private String orgCode;
+
+
+    @ApiModelProperty(value = "机构类型")
+    @TableField("org_type")
+    private Integer orgType;
 }

+ 33 - 13
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java

@@ -875,15 +875,22 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
      */
     private List<FjnxOrg> AddCustomOrg(List<FjnxOrg> list) {
         final List<FjnxOrg> topOrgList = list.stream().filter(x -> ObjectUtil.isEmpty(x.getOrgParent())).collect(Collectors.toList());
-        final List<String> needMoveOrgCodeList=new ArrayList<>();
+        final List<String> specialOrgNeedMoveOrgCodeList=new ArrayList<>();
+        final List<String> specialDeptNoMoveOrgCodeList=new ArrayList<>();
         // 获取配置中的需要移动到机关下的机构编码
-        final List<FjnxOrgMoveToCustomOrg> fjnxOrgMoveToCustomOrgs = fjnxOrgMoveToCustomOrgMapper.selectList(Wrappers.emptyWrapper());
-        if(ObjectUtil.isNotEmpty(fjnxOrgMoveToCustomOrgs)){
-            final List<String> collect = fjnxOrgMoveToCustomOrgs.stream().map(x -> x.getNeedMoveOrgCode()).collect(Collectors.toList());
-            needMoveOrgCodeList.addAll(collect);
+        final List<FjnxOrgMoveToCustomOrg> specialOrgList = fjnxOrgMoveToCustomOrgMapper.selectList(Wrappers.emptyWrapper());
+        final List<FjnxOrgMoveToCustomOrg> specialOrgNeedMoveList = specialOrgList.stream().filter(x -> x.getOrgType().equals(1)).collect(Collectors.toList());
+        final List<FjnxOrgMoveToCustomOrg> specialDeptNoMoveList = specialOrgList.stream().filter(x -> x.getOrgType().equals(2)).collect(Collectors.toList());
+        if(ObjectUtil.isNotEmpty(specialOrgNeedMoveList)){
+            final List<String> collect = specialOrgNeedMoveList.stream().map(x -> x.getOrgCode()).collect(Collectors.toList());
+            specialOrgNeedMoveOrgCodeList.addAll(collect);
+        }
+        if(ObjectUtil.isNotEmpty(specialDeptNoMoveList)){
+            final List<String> collect = specialDeptNoMoveList.stream().map(x -> x.getOrgCode()).collect(Collectors.toList());
+            specialDeptNoMoveOrgCodeList.addAll(collect);
         }
         topOrgList.forEach(topOrg -> {
-            changeOrgHierarchical(topOrg, list,needMoveOrgCodeList);
+            changeOrgHierarchical(topOrg, list,specialOrgNeedMoveOrgCodeList,specialDeptNoMoveOrgCodeList);
         });
         return list;
     }
@@ -893,7 +900,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
      * @param parentOrg
      * @param list
      */
-    private void changeOrgHierarchical(FjnxOrg parentOrg, List<FjnxOrg> list,List<String> needMoveOrgCodeList) {
+    private void changeOrgHierarchical(FjnxOrg parentOrg, List<FjnxOrg> list,List<String> specialOrgNeedMoveList,List<String>  specialDeptNoMoveList) {
         if(StringUtil.isNullOrEmpty( parentOrg.getOrgCode())) {
             return;
         }
@@ -902,7 +909,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
             return;
         }
 
-        final List<FjnxOrg> nendChangeOrgHierarchical =getNendMoveToCustomOrg(childOrgList,needMoveOrgCodeList);
+        final List<FjnxOrg> nendChangeOrgHierarchical =getNendMoveToCustomOrg(childOrgList,specialOrgNeedMoveList,specialDeptNoMoveList);
         if (nendChangeOrgHierarchical.size() > 0) {
             FjnxOrg customOrg = findCustomAddOrg(parentOrg, getAddCustomOrgName(), list);
             list.add(customOrg);
@@ -931,24 +938,37 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
             {
                return;
             }
-            changeOrgHierarchical(org,list,needMoveOrgCodeList);
+            changeOrgHierarchical(org,list,specialOrgNeedMoveList,specialDeptNoMoveList);
         });
     }
 
 
-    private List<FjnxOrg> getNendMoveToCustomOrg( List<FjnxOrg> orgList,List<String> needMoveOrgCodeList)
+    /**
+     *
+     * @param orgList
+     * @param specialOrgNeedMoveList 配置表中 不是M开头但是是部门的数据
+     * @param specialDeptNoMoveList 配置表中 是M开头但是是机构的数据
+     * @return
+     */
+    private List<FjnxOrg> getNendMoveToCustomOrg( List<FjnxOrg> orgList,List<String> specialOrgNeedMoveList,List<String>  specialDeptNoMoveList)
     {
         final List<FjnxOrg> allNendMoveOrgList =new ArrayList<>();
-        if(ObjectUtil.isNotEmpty(needMoveOrgCodeList))
+        if(ObjectUtil.isNotEmpty(specialOrgNeedMoveList))
         {
-            final List<FjnxOrg> needMoveOrgList = orgList.stream().filter(x -> needMoveOrgCodeList.stream().anyMatch(y -> ObjectUtil.equal(y, x.getOrgCode()))).collect(Collectors.toList());
+            // 配置表中 不是M开头但是是部门的数据
+//            final List<FjnxOrgMoveToCustomOrg> specialOrgNeedMoveList = specialOrgList.stream().filter(x -> x.getOrgType().equals(1)).collect(Collectors.toList());
+            final List<FjnxOrg> needMoveOrgList = orgList.stream().filter(x -> specialOrgNeedMoveList.stream().anyMatch(y -> ObjectUtil.equal(y, x.getOrgCode()))).collect(Collectors.toList());
             allNendMoveOrgList.addAll(needMoveOrgList);
         }
+        // 配置表中 是M开头但是是机构的数据
+//        final List<FjnxOrgMoveToCustomOrg> specialDeptNoMoveList = specialOrgList.stream().filter(x -> x.getOrgType().equals(2)).collect(Collectors.toList());
+
         List<FjnxOrg> deptOrgList = orgList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getOrgCode()) && x.getOrgCode().toLowerCase().startsWith("m")).collect(Collectors.toList());
         final List<FjnxOrg> collect = deptOrgList.stream().filter(x -> !x.getOrgName().endsWith("地区行社") && !x.getOrgName().endsWith("办事处")).collect(Collectors.toList());
         if(ObjectUtil.isNotEmpty(collect)){
             collect.stream().forEach(x->{
-                if(!allNendMoveOrgList.stream().anyMatch(y->ObjectUtil.equal(x.getOrgCode(),y.getOrgCode()))){
+                if(!allNendMoveOrgList.stream().anyMatch(y->ObjectUtil.equal(x.getOrgCode(),y.getOrgCode()))
+                        && !specialDeptNoMoveList.stream().anyMatch(z->ObjectUtil.equal(x.getOrgCode(),z))){
                     allNendMoveOrgList.add(x);
                 }
             });