ソースを参照

Merge branch 'V0.0.1' of http://10.87.10.227:4000/jzyd_yyds/soc into V0.0.1

jiawuxian 2 年 前
コミット
d88f486529

+ 2 - 2
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysUser.java

@@ -219,9 +219,9 @@ public class SysUser extends BaseEntity {
     private String code;
 
     /**
-     * 原始机构id
+     * 原始机构编码
      */
-    @ApiModelProperty(value = "原始机构id")
+    @ApiModelProperty(value = "原始机构编码")
     private Long originalOrgId;
 
 

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

@@ -90,9 +90,11 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         }
         List<SysOrg> existOrgList = existAllOrgResult.getData();
 
+        List<FjnxOrg> existFjnxOrgList = ifjnxOrgService.list();
+
         //将FJNXUser 转换为SysUser 并保存
         if (ObjectUtil.isEmpty(existUserList)) {
-            final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList), SecurityConstants.INNER);
+            final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList,existFjnxOrgList), SecurityConstants.INNER);
             if (booleanR != null && booleanR.getCode() != 200) {
                 log.error("调用远程服务接口remoteUserService.batchSaveSyncOrg 失败:{}", booleanR.getMsg());
                 return "remoteUserService.batchSaveSyncUser 调用失败:" + booleanR.getMsg();
@@ -107,18 +109,27 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         fjnxXmlUserDto.getUserVos().forEach(fjnxUser -> {
             String orgCode = fjnxUser.getDepCode();
             if (!StringUtil.isNullOrEmpty(orgCode) && !StringUtil.isNullOrEmpty(fjnxUser.getUserId())) {
+                fjnxUserCodeList.add(fjnxUser.getUserId());
+
                 Optional<SysOrg> optionalOrg = existOrgList.stream().filter(x -> orgCode.equals(x.getCode())).findFirst();
-                if (optionalOrg.isPresent()) {
+
+                SysOrg userBusinessSysOrg= getUserBusinessFjnxOrg(existFjnxOrgList,existOrgList,fjnxUser);
+                if (optionalOrg.isPresent() && ObjectUtil.isNotEmpty(userBusinessSysOrg)) {
+//                    final Optional<SysOrg> businessSysOrgOptional = existOrgList.stream().filter(x -> userBusinessFjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
+//                    if(!businessSysOrgOptional.isPresent())
+//                    {
+//                        return;
+//                    }
                     Optional<SysUser> optionalUser = existUserList.stream().filter(x -> fjnxUser.getUserId().equals(x.getCode())).findFirst();
                     if (optionalUser.isPresent()) {
-                        updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get()));
+                        updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get(),userBusinessSysOrg));
                     } else {
-                        addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get()));
+                        addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get(),userBusinessSysOrg));
                     }
                 } else {
                     log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", fjnxUser.getUserId() + fjnxUser.getUserName(), fjnxUser.getDepCode(), fjnxUser);
                 }
-                fjnxUserCodeList.add(fjnxUser.getUserId());
+
             }
         });
 
@@ -512,13 +523,14 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
     }
 
 
-    private List<SysUser> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<SysOrg> orgList) {
+    private List<SysUser> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<SysOrg> orgList,List<FjnxOrg> fjnxOrgList) {
         List<SysUser> result = new ArrayList<>();
         if (ObjectUtil.isNotEmpty(fjnxUserDtoList)) {
             fjnxUserDtoList.forEach(x -> {
+                SysOrg userBusinessSysOrg= getUserBusinessFjnxOrg(fjnxOrgList,orgList,x);
                 Optional<SysOrg> optionalOrg = orgList.stream().filter(org -> org.getCode().equals(x.getDepCode())).findFirst();
-                if (optionalOrg.isPresent()) {
-                    result.add(FjnxUserConvertToUser(x, optionalOrg.get()));
+                if (optionalOrg.isPresent() && ObjectUtil.isNotEmpty(userBusinessSysOrg)) {
+                    result.add(FjnxUserConvertToUser(x, optionalOrg.get(),userBusinessSysOrg));
                 } else {
                     log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", x.getUserId() + x.getUserName(), x.getDepCode(), x);
                 }
@@ -528,7 +540,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         return result;
     }
 
-    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysOrg org) {
+    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysOrg org,SysOrg businessOrg) {
         SysUser user = new SysUser();
         user.setCode(fjnxUserDto.getUserId());
         user.setName(fjnxUserDto.getUserName());
@@ -539,9 +551,9 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         user.setJobNumber(fjnxUserDto.getTeller());
 //        user.setApproveStatus(ApproveStatus.PASS);
         user.setUpdateTime(fjnxUserDto.getUpdateTime());
-        user.setOrgId(org.getId());
-        user.setOrgName(org.getName());
-        user.setOrgPath(org.getPath());
+        user.setOrgId(businessOrg.getId());
+        user.setOrgName(businessOrg.getName());
+        user.setOrgPath(businessOrg.getPath());
         //0 禁用 1 启用已改密码 2 启用未改密码
         user.setIsLock(fjnxUserDto.getUserStatus());
         user.setSource(1);
@@ -551,7 +563,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
 
     }
 
-    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysUser user, SysOrg org) {
+    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysUser user, SysOrg org,SysOrg businessOrg) {
         user.setCode(fjnxUserDto.getUserId());
         user.setName(fjnxUserDto.getUserName());
         user.setUsername(fjnxUserDto.getLoginName());
@@ -573,6 +585,44 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
 
     }
 
+    /**
+     * 获取用户的业务机构
+     * @return
+     */
+    private SysOrg getUserBusinessFjnxOrg(List<FjnxOrg> fjnxOrgList,List<SysOrg> existOrgList,FJNXUserDto fjnxUserDto){
+        final Optional<FjnxOrg> fjnxOrgOptional = fjnxOrgList.stream().filter(x -> x.getOrgCode().equals(fjnxUserDto.getDepCode())).findFirst();
+        if(fjnxOrgOptional.isPresent())
+        {
+           if("0001".equals(fjnxOrgOptional.get().getOrgType()))
+           {
+               final Optional<FjnxOrg> corporCodeOptional = fjnxOrgList.stream().filter(x -> x.getOrgCode().equals(fjnxUserDto.getCorporCode())).findFirst();
+               if(corporCodeOptional.isPresent())
+               {
+                   return getSysOrgByFjnxOrg(existOrgList, corporCodeOptional.get());
+               }else {
+                   log.error("同步人员【{}】所属法人机构编码【{}】在当前fjnx_org中未找到对应法人机构,{}", fjnxUserDto.getUserId() + fjnxUserDto.getUserName(), fjnxUserDto.getCorporCode(), fjnxUserDto);
+               }
+           }
+           else {
+               return getSysOrgByFjnxOrg(existOrgList,fjnxOrgOptional.get());
+//               return fjnxOrgOptional.get();
+           }
+        }
+        else {
+            log.error("同步人员【{}】所属机构编码【{}】在当前fjnx_org中未找到对应机构,{}", fjnxUserDto.getUserId() + fjnxUserDto.getUserName(), fjnxUserDto.getDepCode(), fjnxUserDto);
+        }
+        return  null;
+    }
+
+    private SysOrg getSysOrgByFjnxOrg(List<SysOrg> existOrgList,FjnxOrg fjnxOrg)
+    {
+        final Optional<SysOrg> businessSysOrgOptional = existOrgList.stream().filter(x -> fjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
+        if(businessSysOrgOptional.isPresent())
+            return  businessSysOrgOptional.get();
+
+        return null;
+    }
+
     private List<FjnxOrg> ConvertXmlOrgDtoToOrgJinx(List<FJNXOrgDto> list) {
         if (ObjectUtil.isEmpty(list)) {
             return new ArrayList<>();

+ 1 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -84,6 +84,7 @@
                u.create_by,
                u.create_time,
                u.remark,
+               u.original_org_id,
                d.dept_id,
                d.parent_id,
                d.ancestors,