Parcourir la source

Merge remote-tracking branch 'origin/master'

zhoudazhuang il y a 1 an
Parent
commit
ff2c25857a

+ 48 - 29
cx-question/cx-question-common/src/main/java/com/rongwei/bscommon/sys/service/impl/OrgUserSyncServiceImpl.java

@@ -173,38 +173,57 @@ public class OrgUserSyncServiceImpl implements OrgUserSyncService {
         // 组织UserDo对象和UserOrgDo对象
         List<SysUserDo> userDos = new ArrayList<>();
         List<SysUserOrgDo> userOrgDos = new ArrayList<>();
+        // 主键ID集合
+        List<String> ids = new ArrayList<>();
 
         for (VPsndocVo psndocVo : allOracleUsers) {
-            // 用户表数据构造
-            SysUserDo userDo = new SysUserDo();
-            userDo.setId(psndocVo.getPk_psndoc());
-            userDo.setAccount(psndocVo.getUser_code());
-            userDo.setName(psndocVo.getName());
-            userDo.setCode(psndocVo.getCode());
-            userDo.setEmail(psndocVo.getSecret_email());
-            if("1".equals(psndocVo.getSex())){
-                userDo.setGender("male");
-            } else if ("2".equals(psndocVo.getSex())) {
-                userDo.setGender("female");
-            }
-            userDo.setMobile(psndocVo.getMobile());
-            userDo.setCreatedate(DateUtil.parseDate(psndocVo.getCreationtime()));
-            userDo.setModifydate(DateUtil.parseDate(psndocVo.getTs()));
-            // 设置登录密码
-            List<SysUserDo> hasUser = users.stream().filter(v -> v.getId().equals(psndocVo.getPk_psndoc())).collect(Collectors.toList());
-            if(hasUser != null && hasUser.size() == 1){
-                userDo.setPassword(hasUser.get(0).getPassword());
+            if(ids.contains(psndocVo.getPk_psndoc())){
+                List<SysUserOrgDo> hasOrgs = userOrgDos.stream().filter(v ->
+                        v.getUserid().equals(psndocVo.getPk_psndoc()) && v.getOrgid().equals(psndocVo.getPk_dept()))
+                        .collect(Collectors.toList());
+                if(hasOrgs == null || hasOrgs.size() == 0){
+                    // 用户部门表数据构造
+                    if(StringUtils.isNotBlank(psndocVo.getPk_dept())){
+                        SysUserOrgDo userOrgDo = new SysUserOrgDo();
+                        userOrgDo.setUserid(psndocVo.getPk_psndoc());
+                        userOrgDo.setOrgid(psndocVo.getPk_dept());
+                        userOrgDo.setId(SecurityUtil.getUUID());
+                        userOrgDos.add(userOrgDo);
+                    }
+                }
             }else{
-                userDo.setPassword(SecurityUtil.getSaltMd5AndSha("000000", userDo.getId()));
-            }
-            userDos.add(userDo);
-            // 用户部门表数据构造
-            if(StringUtils.isNotBlank(psndocVo.getPk_dept())){
-                SysUserOrgDo userOrgDo = new SysUserOrgDo();
-                userOrgDo.setUserid(userDo.getId());
-                userOrgDo.setOrgid(psndocVo.getPk_dept());
-                userOrgDo.setId(SecurityUtil.getUUID());
-                userOrgDos.add(userOrgDo);
+                ids.add(psndocVo.getPk_psndoc());
+                // 用户表数据构造
+                SysUserDo userDo = new SysUserDo();
+                userDo.setId(psndocVo.getPk_psndoc());
+                userDo.setAccount(psndocVo.getUser_code());
+                userDo.setName(psndocVo.getName());
+                userDo.setCode(psndocVo.getCode());
+                userDo.setEmail(psndocVo.getSecret_email());
+                if("1".equals(psndocVo.getSex())){
+                    userDo.setGender("male");
+                } else if ("2".equals(psndocVo.getSex())) {
+                    userDo.setGender("female");
+                }
+                userDo.setMobile(psndocVo.getMobile());
+                userDo.setCreatedate(DateUtil.parseDate(psndocVo.getCreationtime()));
+                userDo.setModifydate(DateUtil.parseDate(psndocVo.getTs()));
+                // 设置登录密码
+                List<SysUserDo> hasUser = users.stream().filter(v -> v.getId().equals(psndocVo.getPk_psndoc())).collect(Collectors.toList());
+                if(hasUser != null && hasUser.size() == 1){
+                    userDo.setPassword(hasUser.get(0).getPassword());
+                }else{
+                    userDo.setPassword(SecurityUtil.getSaltMd5AndSha("000000", userDo.getId()));
+                }
+                userDos.add(userDo);
+                // 用户部门表数据构造
+                if(StringUtils.isNotBlank(psndocVo.getPk_dept())){
+                    SysUserOrgDo userOrgDo = new SysUserOrgDo();
+                    userOrgDo.setUserid(userDo.getId());
+                    userOrgDo.setOrgid(psndocVo.getPk_dept());
+                    userOrgDo.setId(SecurityUtil.getUUID());
+                    userOrgDos.add(userOrgDo);
+                }
             }
         }
         // 数据保存