Browse Source

更新!

TRX 1 year ago
parent
commit
3d2760bd37

+ 3 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/orgModel/OrgBindUserAllParam.java

@@ -72,4 +72,7 @@ public class OrgBindUserAllParam {
 
     @Schema(description = "审核备注")
     private String reViewReMark;
+
+    @Schema(description = "用户是否在项目里可以存在多个(以不同的结构加入)")
+    private Boolean isMultiInProject = Boolean.FALSE;
 }

+ 23 - 28
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationUserServiceImpl.java

@@ -207,11 +207,7 @@ public class OrganizationUserServiceImpl extends SuperService {
                 }
             }
         }
-        String passWord = projectCommonConfigService.buildUserDefaultPassWord(
-                projectOid,
-                BuildDefaultPasswordParam.builder().cardNumber(param.getCardNumber()).build(),
-                projectCommonConfig
-        );
+        String passWord = projectCommonConfigService.buildUserDefaultPassWord(projectOid, BuildDefaultPasswordParam.builder().cardNumber(param.getCardNumber()).build(), projectCommonConfig);
 
         // 用户基本信息维护 电话号码为登录名
         RegisterUserAccountParam userAccountParam = new RegisterUserAccountParam();
@@ -230,19 +226,10 @@ public class OrganizationUserServiceImpl extends SuperService {
         String userId = userAccountContent.getContent();
 
         OrgBindUserAllParam orgBindUserAllParam = new OrgBindUserAllParam();
-        orgBindUserAllParam.setId(param.getId());
         orgBindUserAllParam.setUserId(userId);
+        BeanUtils.copyProperties(param, orgBindUserAllParam);
         // 要绑定的机构
         orgBindUserAllParam.setOrgOid(organization.getOid());
-        orgBindUserAllParam.setCode(param.getCode());
-        orgBindUserAllParam.setPositionId(param.getPositionId());
-        orgBindUserAllParam.setDepartmentId(param.getDepartmentId());
-        orgBindUserAllParam.setRoleIds(param.getRoleIds());
-        orgBindUserAllParam.setState(param.getState());
-        orgBindUserAllParam.setIsAdmin(param.getIsAdmin());
-        orgBindUserAllParam.setRemark(param.getRemark());
-        orgBindUserAllParam.setProjectOid(param.getProjectOid());
-
         // 绑定用户到机构
         ResultContent<OrganizationUser> bindUserContent = orgBindUser(orgBindUserAllParam);
         if (bindUserContent.isFailed()) {
@@ -491,6 +478,7 @@ public class OrganizationUserServiceImpl extends SuperService {
             // code 在整个项目部重复
             codeTemp = organizationUserDao.findTopByCodeAndProjectOid(param.getCode(), projectOid);
         }
+
         OrganizationUser organizationUser = null;
         if (StringUtils.isNotEmpty(param.getId())) {
             organizationUser = organizationUserDao.findTopById(param.getId());
@@ -501,7 +489,17 @@ public class OrganizationUserServiceImpl extends SuperService {
                 projectOid = organizationUser.getProjectOid();
             }
         } else {
-            organizationUser = organizationUserDao.findTopByOrganizationAndUserAndProjectOid(organization, userAccount, projectOid);
+            // 用户在项目里不能重复 还是在项目里的机构里不能重复
+            if (param.getIsMultiInProject() != null && param.getIsMultiInProject()) {
+                // 多个
+                organizationUser = organizationUserDao.findTopByOrganizationAndUserAndProjectOid(organization, userAccount, projectOid);
+            } else {
+                organizationUser = organizationUserDao.findTopByUserAndProjectOidOrderByCreateTimeDesc(userAccount, projectOid);
+
+            }
+        }
+        if (StringUtils.isEmpty(projectOid)) {
+            return ResultContent.buildFail("projectOid 为空");
         }
 
         if (ObjectUtils.isEmpty(organizationUser)) {
@@ -528,6 +526,7 @@ public class OrganizationUserServiceImpl extends SuperService {
             roleServiceImpl.userRemoveRole(userId, oldRoles);
         }
 
+        // 机构信息
         if (organization != null) {
             organizationUser.setOid(organization.getOid());
             organizationUser.setOrganization(organization);
@@ -540,6 +539,8 @@ public class OrganizationUserServiceImpl extends SuperService {
         } else {
             organizationUser.setIsOrg(Boolean.FALSE);
         }
+
+        // 项目信息
         organizationUser.setProjectOid(projectOid);
         if (ObjectUtils.isNotEmpty(oidAboutInfo)) {
             organizationUser.setAboutOid(oidAboutInfo.getOid());
@@ -571,18 +572,17 @@ public class OrganizationUserServiceImpl extends SuperService {
             }
         }
         roles = roles.stream().distinct().collect(Collectors.toList());
+        
+        //权限中心: 在角色组添加用户
+        roleServiceImpl.userBindRoles(userId, roles);
 
-        if (ObjectUtils.isNotEmpty(roles)) {
-            //权限中心: 在角色组添加用户
-            roleServiceImpl.userBindRoles(userId, roles);
-        }
-
-        organizationUser.setPosition(position);
         // 设置角色
         organizationUser.setRoles(roles);
         organizationUser.setRoleIds(roles.stream().map(Role::getId).collect(Collectors.toList()));
         // 设置部门
         organizationUser.setDepartment(department);
+        // 职位
+        organizationUser.setPosition(position);
 
         // 用户信息
         organizationUser.setUser(userAccount);
@@ -592,7 +592,6 @@ public class OrganizationUserServiceImpl extends SuperService {
         organizationUser.setPhone(userAccount.getPhone());
         organizationUser.setName(userAccount.getName());
         organizationUser.setCardNumber(userAccount.getCardNumber());
-        organizationUser.setOid(param.getOrgOid());
         organizationUserDao.save(organizationUser);
 
         // 发送用户信息变更事件,用以下发用户 权限关联的用户信息
@@ -1002,11 +1001,7 @@ public class OrganizationUserServiceImpl extends SuperService {
                             addParam.setSex(CommonUtil.getSexByStr(excelUserParam.getSexStr()));
                         }
 
-                        String passWord = projectCommonConfigService.buildUserDefaultPassWord(
-                                projectOid,
-                                BuildDefaultPasswordParam.builder().cardNumber(excelUserParam.getCardNumber()).build(),
-                                projectCommonConfig
-                        );
+                        String passWord = projectCommonConfigService.buildUserDefaultPassWord(projectOid, BuildDefaultPasswordParam.builder().cardNumber(excelUserParam.getCardNumber()).build(), projectCommonConfig);
                         addParam.setPassWord(passWord);
                         userList.add(addParam);
                     }