diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java index be1eca55..c3224121 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java @@ -130,21 +130,20 @@ public class UserAddExe { zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone()); } //验证手机号重复 - UserDO userDO = userRepository.getByPhone(cmd.getPhone()); - if(userDO != null){ - throw new BizException("手机号已注册"); - } + // 12.29,不验证手机号(用户名)是否重复 +// UserDO userDO = userRepository.getByPhone(cmd.getPhone()); +// if(userDO != null){ +// throw new BizException("手机号已注册"); +// } - - CorpInfoDO corpInfoDO = corpInfoRepository.getCorpInfoByCorpName("相关方通用租户"); - if(corpInfoDO == null){ - throw new BizException("未创建相关方通用租户"); - } +// 注册的时候,底座不创建用户,所以在user表插入一条用户数据即可(企业id,部门id,岗位为空) +// CorpInfoDO corpInfoDO = corpInfoRepository.getCorpInfoByCorpName("相关方通用租户"); +// if(corpInfoDO == null){ +// throw new BizException("未创建相关方通用租户"); +// } BeanUtils.copyProperties(cmd, userE); userE.setPassword(cmd.getNewPassword()); userE.encryptionPassword(); - userE.setCorpinfoId(corpInfoDO.getId()); - userE.setDepartmentId(corpInfoDO.getId()); userGateway.register(userE); return true; @@ -161,13 +160,14 @@ public class UserAddExe { if(userDO == null){ throw new BizException("用户不存在"); } - userRepository.checkUserIdCard(cmd.getId(),cmd.getUserIdCard()); +// 12.29 不校验身份证号 +// userRepository.checkUserIdCard(cmd.getId(),cmd.getUserIdCard()); if(userDO.getFlowFlag()!=null && !userDO.getFlowFlag().equals(cmd.getFlowFlag())){ // 已完善,与旧数据对比 List userCorpRecordDOList = userCorpRecordRepository.getInfoListByUserId(cmd.getId()); if(CollUtil.isNotEmpty(userCorpRecordDOList)){ - throw new BizException("该用户尚有未离职企业,不能修人员流动状态"); + throw new BizException("该用户尚有未离职企业,不能修改人员流动状态"); } } userGateway.update(userE); @@ -178,62 +178,75 @@ public class UserAddExe { @Transactional(rollbackFor = Exception.class) public boolean executeOnboarding(AppUserOnboardingCmd cmd) { - // todo 底座将人转移到另一个租户 + UserDO userDO = userRepository.getById(cmd.getId()); - //// 如果是流动人员, 判断user_corp表是否有未离职的数据, 如果有则不能入职(1-离职) - List statusList = Arrays.asList(UserEmploymentFlagEnum.RESIGNATION.getCode(), UserEmploymentFlagEnum.NOT_ON.getCode()); - List userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), statusList); - if(CollUtil.isNotEmpty(userCorpDOS)){ - throw new BizException("该用户在当前企业存在未离职信息,无法入职"); + if(userDO == null){ + throw new BizException("用户不存在"); } - // 把user表和user_corp表相关企业,部门,岗位数据补充完整 + // 校验是否存在未离职信息(不包括未入职状态) + List userDOS = userRepository.listByPhone(userDO.getUsername()); + if(CollUtil.isNotEmpty(userDOS)){ + userDOS.forEach(u -> { + if(!UserEmploymentFlagEnum.NOT_ON.getCode().equals(u.getEmploymentFlag()) && !UserEmploymentFlagEnum.RESIGNATION.getCode().equals(u.getEmploymentFlag())){ + throw new BizException("该用户存在未离职信息,无法入职"); + } + }); + } + + + // 判断user表是否有未离职的数据, 如果有则不能入职(1-离职) +// List statusList = Arrays.asList(UserEmploymentFlagEnum.RESIGNATION.getCode(), UserEmploymentFlagEnum.NOT_ON.getCode()); + +// 12.29,不校验userCorp表 +// List userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), statusList); +// if(CollUtil.isNotEmpty(userCorpDOS)){ +// throw new BizException("该用户在当前企业存在未离职信息,无法入职"); +// } + + // 把user表相关企业,部门,岗位数据补充完整 UserE userE = new UserE(); BeanUtils.copyProperties(cmd, userE); - // 查询用户信息, 获取是否流动人员 - UserDO userDO = userRepository.getById(cmd.getId()); - if(userDO == null){ - throw new BizException("用户不存在"); - } - if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){ - List userCorpList = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), statusList); - if(CollUtil.isNotEmpty(userCorpList)){ - if(userCorpList.size() > 1){ - throw new BizException("用户在当前企业存在多条离职数据,请联系管理员。"); - } - UserCorpDO userCorpDO = userCorpList.get(0); - if(userCorpDO.getEmploymentFlag() != null && UserEmploymentFlagEnum.ON.getCode().equals(userCorpDO.getEmploymentFlag()) ){ - throw new BizException("该用户在当前企业已入职,无法入职"); - } - userCorpDO.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); - UserCorpE userCorpE = new UserCorpE(); - BeanUtils.copyProperties(userCorpDO, userCorpE); - userCorpGateway.update(userCorpE); - }else { - // 插入user_corp表 - UserCorpE userCorpE = new UserCorpE(); - userCorpE.setUserId(userE.getId()); - userCorpE.setCorpinfoId(userE.getCorpinfoId()); - userCorpE.setDepartmentId(userE.getDepartmentId()); - userCorpE.setPostName(userE.getPostName()); - userCorpE.setRoleId(userE.getRoleId()); - userCorpE.setDepartmentLeaderFlag(0); - userCorpE.setSort(9999); - userCorpE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); - userCorpGateway.add(userCorpE); - } - }else{ - if(userDO.getCorpinfoId() != null ){ - throw new BizException("固定用户在当前企业已入职,无法入职"); - } - - - userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); - // 扫码入职时, 固定人员user表企业id变为入职的企业 - userE.setCorpinfoId(cmd.getCorpinfoId()); - } +// // 查询用户信息, 获取是否流动人员 +// if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){ +//// List userCorpList = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), statusList); +// if(CollUtil.isNotEmpty(userCorpList)){ +// if(userCorpList.size() > 1){ +// throw new BizException("用户在当前企业存在多条离职数据,请联系管理员。"); +// } +// UserCorpDO userCorpDO = userCorpList.get(0); +// if(userCorpDO.getEmploymentFlag() != null && UserEmploymentFlagEnum.ON.getCode().equals(userCorpDO.getEmploymentFlag()) ){ +// throw new BizException("该用户在当前企业已入职,无法入职"); +// } +// userCorpDO.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); +// UserCorpE userCorpE = new UserCorpE(); +// BeanUtils.copyProperties(userCorpDO, userCorpE); +// userCorpGateway.update(userCorpE); +// }else { +// // 插入user_corp表 +// UserCorpE userCorpE = new UserCorpE(); +// userCorpE.setUserId(userE.getId()); +// userCorpE.setCorpinfoId(userE.getCorpinfoId()); +// userCorpE.setDepartmentId(userE.getDepartmentId()); +// userCorpE.setPostName(userE.getPostName()); +// userCorpE.setRoleId(userE.getRoleId()); +// userCorpE.setDepartmentLeaderFlag(0); +// userCorpE.setSort(9999); +// userCorpE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); +// userCorpGateway.add(userCorpE); +// } +// }else{ +// if(userDO.getCorpinfoId() != null ){ +// throw new BizException("固定用户在当前企业已入职,无法入职"); +// } +// +// +// userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); +// // 扫码入职时, 固定人员user表企业id变为入职的企业 +// userE.setCorpinfoId(cmd.getCorpinfoId()); +// } userGateway.update(userE); // 插入user_corp_record表 diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java index 08ee7c32..9e628fb4 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java @@ -79,6 +79,8 @@ public interface UserRepository extends BaseRepository { UserDO getByPhone(String phone); + UserDO getByPhoneAndCorpInfoId(String phone, Long corpInfoId); + UserDO getByPhoneAndIdCard(String phone, String idCardNumber); void checkUserIdCard(@NotNull(message = "主键id不能为空") Long id, String userIdCard);