|  | @@ -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);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              });
 |