Compare commits

..

No commits in common. "9da2de53407b05621b0bee873dddbb81cbeb0208" and "297bee4a1d9dded9c903dad6b4a23d3110be1b3d" have entirely different histories.

3 changed files with 24 additions and 87 deletions

View File

@ -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. iduser
* 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;
} }

View File

@ -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);

View File

@ -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);
} }