Compare commits
No commits in common. "9da2de53407b05621b0bee873dddbb81cbeb0208" and "297bee4a1d9dded9c903dad6b4a23d3110be1b3d" have entirely different histories.
9da2de5340
...
297bee4a1d
|
|
@ -33,7 +33,10 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -175,84 +178,21 @@ public class UserAddExe {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean executeOnboarding(AppUserOnboardingCmd cmd) {
|
public boolean executeOnboarding(AppUserOnboardingCmd cmd) {
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. 根据id,查询用户信息
|
|
||||||
* 2. 如果该用户没有企业id,则正常入职
|
|
||||||
* 3. 如果该用户有企业id,并且在当前企业没有账号,则创建一条新user数据
|
|
||||||
* 3.1 如果在当前企业有账号,则判断有未离职信息则提示
|
|
||||||
* 4. 新user数据的基础信息通过手机号查询该用户的其他全的信息获取过来(有身份证信息的取第一个)
|
|
||||||
*/
|
|
||||||
|
|
||||||
UserDO userDO = userRepository.getById(cmd.getId());
|
UserDO userDO = userRepository.getById(cmd.getId());
|
||||||
|
|
||||||
if(userDO == null){
|
if(userDO == null){
|
||||||
throw new BizException("用户不存在");
|
throw new BizException("用户不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
UserE userE = new UserE();
|
// 校验是否存在未离职信息(不包括未入职状态)
|
||||||
|
List<UserDO> userDOS = userRepository.listByPhone(userDO.getUsername());
|
||||||
|
if(CollUtil.isNotEmpty(userDOS)){
|
||||||
if(userDO.getCorpinfoId() == null){
|
userDOS.forEach(u -> {
|
||||||
BeanUtils.copyProperties(cmd, userE);
|
|
||||||
|
|
||||||
// user表状态变为入职待审核
|
|
||||||
userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
|
||||||
userGateway.update(userE);
|
|
||||||
|
|
||||||
|
|
||||||
}else {
|
|
||||||
String username = userDO.getUsername();
|
|
||||||
List<UserDO> userDOS = userRepository.listByPhone(username);
|
|
||||||
boolean corpFlag = false;
|
|
||||||
for (UserDO u : userDOS) {
|
|
||||||
if(cmd.getCorpinfoId().equals(u.getCorpinfoId())){
|
|
||||||
// 在当前企业有账号
|
|
||||||
if(!UserEmploymentFlagEnum.NOT_ON.getCode().equals(u.getEmploymentFlag()) && !UserEmploymentFlagEnum.RESIGNATION.getCode().equals(u.getEmploymentFlag())){
|
if(!UserEmploymentFlagEnum.NOT_ON.getCode().equals(u.getEmploymentFlag()) && !UserEmploymentFlagEnum.RESIGNATION.getCode().equals(u.getEmploymentFlag())){
|
||||||
throw new BizException("该用户在当前企业存在未离职信息,无法重新入职");
|
throw new BizException("该用户存在未离职信息,无法入职");
|
||||||
}
|
}
|
||||||
// user表状态变为入职待审核
|
});
|
||||||
u.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
|
||||||
BeanUtils.copyProperties(u, userE);
|
|
||||||
userGateway.update(userE);
|
|
||||||
corpFlag = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(!corpFlag){
|
|
||||||
// 在当前企业没有账号
|
|
||||||
// 找到第一个 userIdCard 有值(非空且非空字符串)的数据
|
|
||||||
Optional<UserDO> firstUserWithIdCard = userDOS.stream()
|
|
||||||
.filter(user -> user.getUserIdCard() != null && !user.getUserIdCard().trim().isEmpty())
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if (firstUserWithIdCard.isPresent()) {
|
|
||||||
UserDO user = firstUserWithIdCard.get();
|
|
||||||
BeanUtils.copyProperties(user, userE);
|
|
||||||
userE.setId(null);
|
|
||||||
userE.setUserId(UuidUtil.get32UUID());
|
|
||||||
userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
|
||||||
userE.setCorpinfoId(cmd.getCorpinfoId());
|
|
||||||
userE.setDepartmentId(cmd.getDepartmentId());
|
|
||||||
userE.setPostName(cmd.getPostName());
|
|
||||||
userRepository.saveOnboardingUser(userE);
|
|
||||||
} else {
|
|
||||||
// 没有找到符合条件的用户
|
|
||||||
throw new BizException("当前用户不存在完整用户信息");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo
|
|
||||||
// 插入user_corp_record表
|
|
||||||
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
|
||||||
userCorpRecordE.initAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName());
|
|
||||||
userCorpRecordGateway.add(userCorpRecordE);
|
|
||||||
|
|
||||||
// 插入user_change_record表
|
|
||||||
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
|
|
||||||
userChangeRecordE.initUserAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName());
|
|
||||||
userChangeRecordGateway.add(userChangeRecordE);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 判断user表是否有未离职的数据, 如果有则不能入职(1-离职)
|
// 判断user表是否有未离职的数据, 如果有则不能入职(1-离职)
|
||||||
|
|
@ -265,7 +205,8 @@ public class UserAddExe {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 把user表相关企业,部门,岗位数据补充完整
|
// 把user表相关企业,部门,岗位数据补充完整
|
||||||
|
UserE userE = new UserE();
|
||||||
|
BeanUtils.copyProperties(cmd, userE);
|
||||||
|
|
||||||
|
|
||||||
// 12.29 相关方逻辑修改,暂时注释,后续无用再删除
|
// 12.29 相关方逻辑修改,暂时注释,后续无用再删除
|
||||||
|
|
@ -308,7 +249,18 @@ public class UserAddExe {
|
||||||
// userE.setCorpinfoId(cmd.getCorpinfoId());
|
// userE.setCorpinfoId(cmd.getCorpinfoId());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// user表状态变为入职待审核
|
||||||
|
userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
||||||
|
userGateway.update(userE);
|
||||||
|
// 插入user_corp_record表
|
||||||
|
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
||||||
|
userCorpRecordE.initAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName());
|
||||||
|
userCorpRecordGateway.add(userCorpRecordE);
|
||||||
|
|
||||||
|
// 插入user_change_record表
|
||||||
|
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
|
||||||
|
userChangeRecordE.initUserAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName());
|
||||||
|
userChangeRecordGateway.add(userChangeRecordE);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,8 +47,6 @@ public interface UserRepository extends BaseRepository<UserDO> {
|
||||||
|
|
||||||
void saveRegisterUser(UserDO userDO);
|
void saveRegisterUser(UserDO userDO);
|
||||||
|
|
||||||
void saveOnboardingUser(UserE userE);
|
|
||||||
|
|
||||||
void updateInfoById(UserDO userDO);
|
void updateInfoById(UserDO userDO);
|
||||||
|
|
||||||
void deleteUserById(Long id);
|
void deleteUserById(Long id);
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ 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.UserUpdatePasswordCmd;
|
||||||
import com.zcloud.basic.info.domain.enums.MenuEnum;
|
import com.zcloud.basic.info.domain.enums.MenuEnum;
|
||||||
import com.zcloud.basic.info.domain.enums.UserEmploymentFlagEnum;
|
import com.zcloud.basic.info.domain.enums.UserEmploymentFlagEnum;
|
||||||
import com.zcloud.basic.info.domain.enums.UserTypeEnum;
|
|
||||||
import com.zcloud.basic.info.domain.model.UserE;
|
import com.zcloud.basic.info.domain.model.UserE;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.DepartmentLeaderStatictiscDO;
|
import com.zcloud.basic.info.persistence.dataobject.DepartmentLeaderStatictiscDO;
|
||||||
import com.zcloud.basic.info.persistence.dataobject.UserCorpInfoDO;
|
import com.zcloud.basic.info.persistence.dataobject.UserCorpInfoDO;
|
||||||
|
|
@ -299,18 +298,6 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
|
||||||
userDO.setUserId(Tools.get32UUID());
|
userDO.setUserId(Tools.get32UUID());
|
||||||
// 相关方
|
// 相关方
|
||||||
userDO.setCorpinfoId(null);
|
userDO.setCorpinfoId(null);
|
||||||
// 默认是相关方
|
|
||||||
userDO.setUserType(UserTypeEnum.XGF.getCode());
|
|
||||||
save(userDO);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void saveOnboardingUser(UserE userE) {
|
|
||||||
if (StringUtils.isEmpty(userE.getUsername())) {
|
|
||||||
userE.setUsername(userE.getPhone());
|
|
||||||
}
|
|
||||||
UserDO userDO = new UserDO();
|
|
||||||
BeanUtils.copyProperties(userE, userDO);
|
|
||||||
save(userDO);
|
save(userDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue