新增用户调整

dev_xiangguanfang
zhaokai 2025-12-31 17:45:43 +08:00
parent 5f45e6f2ba
commit 33b9a09667
6 changed files with 153 additions and 107 deletions

View File

@ -14,6 +14,7 @@ import com.jjb.saas.message.client.message.facede.MessageFacade;
import com.jjb.saas.message.client.message.request.MessageSendCmd;
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
import com.jjb.saas.system.client.user.facade.UserFacade;
import com.jjb.saas.system.client.user.request.RoleDeptAddCmd;
import com.jjb.saas.system.client.user.request.UserUpdateQuitCmd;
import com.jjb.saas.system.client.user.response.UserDetailCO;
import com.zcloud.basic.info.command.convertor.UserCoConvertor;
@ -45,6 +46,7 @@ import java.util.stream.Collectors;
/**
* web-app
*
* @Author zhangyue
* @Date 2025-11-04 14:07:21
*/
@ -395,7 +397,6 @@ public class UserAddExe {
}
@Transactional(rollbackFor = Exception.class)
public boolean executeXgf(UserXgfAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
@ -420,7 +421,7 @@ public class UserAddExe {
}
//校验手机号
List<UserDO> userList = userRepository.getListByPhone(userE.getPhone(),employmentFlagList);
List<UserDO> userList = userRepository.getListByPhone(userE.getPhone(), null);
Boolean addFlag = true;
UserDO userDOUpdate = null;
if (CollUtil.isNotEmpty(userList)) {
@ -432,7 +433,7 @@ public class UserAddExe {
throw new BizException("该固定用户存在未离职信息,无法入职");
}
});
Optional<UserDO> optionalUserDO = userList.stream().filter(u -> u.getCorpinfoId().equals(AuthContext.getTenantId())).findFirst();
Optional<UserDO> optionalUserDO = userList.stream().filter(u -> AuthContext.getTenantId().equals(u.getCorpinfoId()) || u.getCorpinfoId() == null).findFirst();
if (optionalUserDO.isPresent()) {
addFlag = false;
userDOUpdate = optionalUserDO.get();
@ -440,7 +441,9 @@ public class UserAddExe {
} else {
List<UserE> userEList = userCoConvertor.convertDOsToEs(userList);
userE.checkXGfPhone(userEList);
Optional<UserDO> optionalUserDO = userList.stream().filter(u -> u.getCorpinfoId().equals(AuthContext.getTenantId())).findFirst();
Optional<UserDO> optionalUserDO = userList.stream()
.filter(u -> AuthContext.getTenantId().equals(u.getCorpinfoId()) || u.getCorpinfoId() == null)
.findFirst();
if (optionalUserDO.isPresent()) {
addFlag = false;
userDOUpdate = optionalUserDO.get();
@ -459,30 +462,9 @@ public class UserAddExe {
throw new BizException("保存失败");
}
} else {
//修改所有手机号的信息
userE.resetPassword();
userE.setEmploymentFlag(null);
userE.setFlowFlag( null);
userGateway.updateByPhone(userE);
//修改.状态为在职
userE.setId(userDOUpdate.getId());
userE.setEmploymentFlag(UserEmploymentFlagEnum.ON.getCode());
userE.setFlowFlag( cmd.getFlowFlag());
userGateway.update(userE);
userGateway.updateXgf(userE, userDOUpdate.getId());
//调用底座重新入职
log.info("executeXgf,GBS获取用户信息{}",userDOUpdate.getId());
SingleResponse<UserDetailCO> detail = userFacade.getDetail(userDOUpdate.getId());
log.info("executeXgf,GBS获取用户信息返回: {}", JSONUtil.toJsonStr(detail));
if(detail.isSuccess() && detail.getData() != null && !detail.getData().getJobStatusEnum()){
UserUpdateQuitCmd userUpdateQuitCmd = new UserUpdateQuitCmd();
userUpdateQuitCmd.setId(userDOUpdate.getId());
log.info("executeXgf,GBS恢复用户入职请求: {}",JSONUtil.toJsonStr(userUpdateQuitCmd));
Response response = userFacade.restoreJob(userUpdateQuitCmd);
log.info("executeXgf,GBS恢复用户入职返回: {}",JSONUtil.toJsonStr(response));
}else{
log.info("executeXgf,GBS恢复用户入职不需要处理");
}
}

View File

@ -51,5 +51,7 @@ public interface UserGateway {
boolean addXgf(UserE userE);
void updateXgf(UserE userE, Long id);
}

View File

@ -359,24 +359,24 @@ public class UserE extends BaseE {
public void checkXGfPhone(List<UserE> userEList) {
if(UserFlowFlagEnum.FIXED.getCode().equals(this.getFlowFlag())){
// this.checkPhone(userEList);
}else{
//判断在其他企业是否是固定人员
List<UserE> userList = userEList.stream().filter(userE -> UserFlowFlagEnum.FIXED.getCode().equals(userE.getFlowFlag()))
.filter(userE -> !userE.getCorpinfoId().equals(AuthContext.getTenantId())).collect(Collectors.toList());
List<UserE> userList = userEList.stream().
filter(userE -> UserFlowFlagEnum.FIXED.getCode().equals(userE.getFlowFlag()))
.filter(userE -> !AuthContext.getTenantId().equals(userE.getCorpinfoId()))
.filter(userE -> UserEmploymentFlagEnum.ON.getCode().equals(userE.getEmploymentFlag()))
.filter(userE -> UserEmploymentFlagEnum.ENTRY_AUDIT.getCode().equals(userE.getEmploymentFlag()))
.filter(userE -> UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode().equals(userE.getEmploymentFlag()))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(userList)) {
throw new BizException("当前手机号已在其他企业属于固定人员");
}
//判断是否在当前企业存在
//判断是否有当前企业
boolean flag = userEList.stream().anyMatch(userE -> userE.getCorpinfoId().equals(AuthContext.getTenantId()));
boolean flag = userEList.stream().anyMatch(userE -> AuthContext.getTenantId().equals(userE.getCorpinfoId()));
if (flag) {
throw new BizException("当前手机号当前企业已存在");
}
}
}
public void checkIdCardExist(List<UserE> userEList) {

View File

@ -10,12 +10,12 @@ import com.zcloud.basic.info.domain.gateway.UserGateway;
import com.zcloud.basic.info.domain.model.UserE;
import com.zcloud.basic.info.persistence.dataobject.UserDO;
import com.zcloud.basic.info.persistence.repository.UserRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.Arrays;
import java.util.Collections;
@ -190,5 +190,28 @@ public class UserGatewayImpl implements UserGateway {
BeanUtils.copyProperties(userE, userDO);
return userRepository.updatePassword(userDO);
}
@Override
@Transactional
public void updateXgf(UserE userE, Long id) {
if (StringUtils.isEmpty(userE.getUsername())) {
userE.setUsername(userE.getPhone());
}
Integer flowFlag = userE.getFlowFlag();
//修改所有手机号的信息
userE.resetPassword();
userE.setEmploymentFlag(null);
userE.setFlowFlag(null);
this.updateByPhone(userE);
//修改.状态为在职
if(id!= null){
userE.setId(id);
}
userE.setEmploymentFlag(UserEmploymentFlagEnum.ON.getCode());
userE.setFlowFlag(flowFlag);
this.update(userE);
userRepository.updateXgf(userE);
}
}

View File

@ -88,5 +88,7 @@ public interface UserRepository extends BaseRepository<UserDO> {
List<UserCorpInfoDO> getListByUserIds(List<Long> userIds);
List<UserDO> getByIdCard(String userIdCard, List<Integer> employmentFlagList);
void updateXgf(UserE userE);
}

View File

@ -22,10 +22,8 @@ import com.jjb.saas.message.client.todotask.facade.BusTodoTaskFacade;
import com.jjb.saas.system.client.role.facade.RoleFacade;
import com.jjb.saas.system.client.role.response.RoleCO;
import com.jjb.saas.system.client.user.facade.UserFacade;
import com.jjb.saas.system.client.user.request.RoleDeptAddCmd;
import com.jjb.saas.system.client.user.request.UserAddCmd;
import com.jjb.saas.system.client.user.request.UserUpdateCmd;
import com.jjb.saas.system.client.user.request.UserUpdatePasswordCmd;
import com.jjb.saas.system.client.user.request.*;
import com.jjb.saas.system.client.user.response.UserDetailCO;
import com.zcloud.basic.info.domain.enums.MenuEnum;
import com.zcloud.basic.info.domain.enums.UserEmploymentFlagEnum;
import com.zcloud.basic.info.domain.enums.UserTypeEnum;
@ -44,6 +42,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
@ -570,5 +569,43 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
public List<UserCorpInfoDO> getListByUserIds(List<Long> userIds) {
return userMapper.getListByUserIds(userIds);
}
@Override
@Transactional
public void updateXgf(UserE userE) {
SingleResponse<UserDetailCO> detail = null;
//调用底座重新入职
try {
log.info("updateXgf,GBS获取用户信息{}", userE.getId());
detail = userFacade.getDetail(userE.getId());
log.info("updateXgf,GBS获取用户信息返回: {}", JSONUtil.toJsonStr(detail));
} catch (Exception e) {
log.error("updateXgf,GBS获取用户信息失败: {}", e.getMessage());
}
if (detail != null && detail.isSuccess() && detail.getData() != null && !detail.getData().getJobStatusEnum()) {
UserUpdateQuitCmd userUpdateQuitCmd = new UserUpdateQuitCmd();
userUpdateQuitCmd.setId(userE.getId());
log.info("updateXgf,GBS恢复用户入职请求: {}", JSONUtil.toJsonStr(userUpdateQuitCmd));
Response response = userFacade.restoreJob(userUpdateQuitCmd);
log.info("updateXgf,GBS恢复用户入职返回: {}", JSONUtil.toJsonStr(response));
} else {
com.jjb.saas.system.client.user.request.UserAddCmd userAddCmd = new com.jjb.saas.system.client.user.request.UserAddCmd();
userAddCmd.setAccount(userE.getUsername());
userAddCmd.setName(userE.getName());
RoleDeptAddCmd roleDeptAddCmd = new RoleDeptAddCmd();
roleDeptAddCmd.setRoleId(userE.getRoleId());
roleDeptAddCmd.setDeptId(userE.getDepartmentId());
List<RoleDeptAddCmd> roleDeptAddCmdList = Collections.singletonList(roleDeptAddCmd);
userAddCmd.setRoleDepts(roleDeptAddCmdList);
userAddCmd.setId(userE.getId());
log.info("GBS新增用户开始,用户信息:{}", JSONUtil.toJsonStr(userAddCmd));
SingleResponse<Long> gbsResult = userFacade.add(userAddCmd);
log.info("GBS新增用户结束,用户id:{},结果:{}", gbsResult.getData(), JSONUtil.toJsonStr(gbsResult));
if (!gbsResult.isSuccess()) {
throw new RuntimeException("GBS新增用户失败,用户id:" + gbsResult.getData());
}
}
}
}