离职入职相关
parent
f2d62e3306
commit
7b841a1a5a
|
|
@ -146,20 +146,20 @@ public class UserAddExe {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean executeOnboarding(AppUserOnboardingCmd cmd) {
|
public boolean executeOnboarding(AppUserOnboardingCmd cmd) {
|
||||||
|
|
||||||
// 如果是流动人员, 判断user_corp表是否有未离职的数据, 如果有则不能入职(0-离职)
|
//// 如果是流动人员, 判断user_corp表是否有未离职的数据, 如果有则不能入职(1-离职)
|
||||||
/**
|
List<UserCorpDO> userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), UserEmploymentFlagEnum.RESIGNATION.getCode());
|
||||||
* 如果是离职的话, 则将离职改为入职
|
|
||||||
*/
|
|
||||||
List<UserCorpDO> userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), 0);
|
|
||||||
if(CollUtil.isNotEmpty(userCorpDOS)){
|
if(CollUtil.isNotEmpty(userCorpDOS)){
|
||||||
throw new BizException("该用户在当前企业存在未离职信息,无法入职");
|
throw new BizException("该用户在当前企业存在未离职信息,无法入职");
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 如果是离职的话, 则将离职改为入职
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
// 把user表和user_corp表相关企业,部门,岗位数据补充完整
|
// 把user表和user_corp表相关企业,部门,岗位数据补充完整
|
||||||
UserE userE = new UserE();
|
UserE userE = new UserE();
|
||||||
BeanUtils.copyProperties(cmd, userE);
|
BeanUtils.copyProperties(cmd, userE);
|
||||||
userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
|
||||||
userGateway.update(userE);
|
|
||||||
|
|
||||||
// 查询用户信息, 获取是否流动人员
|
// 查询用户信息, 获取是否流动人员
|
||||||
UserDO userDO = userRepository.getById(cmd.getId());
|
UserDO userDO = userRepository.getById(cmd.getId());
|
||||||
|
|
@ -167,8 +167,7 @@ public class UserAddExe {
|
||||||
throw new BizException("用户不存在");
|
throw new BizException("用户不存在");
|
||||||
}
|
}
|
||||||
if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){
|
if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){
|
||||||
//
|
List<UserCorpDO> userCorpList = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), UserEmploymentFlagEnum.RESIGNATION.getCode());
|
||||||
List<UserCorpDO> userCorpList = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), 0);
|
|
||||||
if(CollUtil.isNotEmpty(userCorpList)){
|
if(CollUtil.isNotEmpty(userCorpList)){
|
||||||
if(userCorpList.size() > 1){
|
if(userCorpList.size() > 1){
|
||||||
throw new BizException("用户在当前企业存在多条离职数据,请联系管理员。");
|
throw new BizException("用户在当前企业存在多条离职数据,请联系管理员。");
|
||||||
|
|
@ -191,8 +190,14 @@ public class UserAddExe {
|
||||||
userCorpE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
userCorpE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
||||||
userCorpGateway.add(userCorpE);
|
userCorpGateway.add(userCorpE);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
||||||
|
//
|
||||||
|
if(userDO.getCorpinfoId()!=null){
|
||||||
|
throw new BizException("用户已存在企业信息,请勿重复入职");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
userGateway.update(userE);
|
||||||
// 插入user_corp_record表
|
// 插入user_corp_record表
|
||||||
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
||||||
userCorpRecordE.initAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName());
|
userCorpRecordE.initAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName());
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -243,10 +244,10 @@ public class UserUpdateExe {
|
||||||
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore);
|
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore);
|
||||||
userChangeRecordGateway.add(userChangeRecordE);
|
userChangeRecordGateway.add(userChangeRecordE);
|
||||||
//TODO 处理未完成工作
|
//TODO 处理未完成工作
|
||||||
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
|
// List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
|
||||||
userJobHandoverRepository.saveBatch(allJob);
|
// userJobHandoverRepository.saveBatch(allJob);
|
||||||
//TODO 离职发送,循环调用,失败的话,返回失败,
|
// //TODO 离职发送,循环调用,失败的话,返回失败,
|
||||||
ResignatioChangeJob(allJob);
|
// ResignatioChangeJob(allJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -314,7 +315,7 @@ public class UserUpdateExe {
|
||||||
//处理未完成的工作
|
//处理未完成的工作
|
||||||
//获取未完成工作
|
//获取未完成工作
|
||||||
List<UserJobHandoverDO> allJob = userJobHandoverRepository.getListByChangerRecordId(userChangeRecordE.getUserChangeRecordId());
|
List<UserJobHandoverDO> allJob = userJobHandoverRepository.getListByChangerRecordId(userChangeRecordE.getUserChangeRecordId());
|
||||||
ResignatioChangeJob(allJob);
|
// ResignatioChangeJob(allJob);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//驳回
|
//驳回
|
||||||
|
|
@ -354,16 +355,25 @@ public class UserUpdateExe {
|
||||||
if (UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)) {
|
if (UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)) {
|
||||||
//增加企业入职记录
|
//增加企业入职记录
|
||||||
//增加用户入职企业. 驳回不增加下边信息
|
//增加用户入职企业. 驳回不增加下边信息
|
||||||
CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId());
|
/* CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId());
|
||||||
DepartmentDO departmentDO = departmentRepository.getById(userE.getDepartmentId());
|
DepartmentDO departmentDO = departmentRepository.getById(userE.getDepartmentId());
|
||||||
|
|
||||||
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
||||||
BeanUtils.copyProperties(userDO, userCorpRecordE);
|
BeanUtils.copyProperties(userDO, userCorpRecordE);
|
||||||
userCorpRecordE.initAdd(userE, corpInfoDO.getCorpName(), departmentDO.getName());
|
userCorpRecordE.initAdd(userE, corpInfoDO.getCorpName(), departmentDO.getName());
|
||||||
userCorpRecordGateway.add(userCorpRecordE);
|
userCorpRecordGateway.add(userCorpRecordE);*/
|
||||||
|
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.ENTRY_AUDIT.getCode());
|
||||||
|
UserCorpRecordE userCorpRecordE = new UserCorpRecordE();
|
||||||
|
if (userCorpRecordDO != null) {
|
||||||
|
BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE);
|
||||||
|
userCorpRecordE.executeEntryAudit(userCorpRecordE, userE, UserEmploymentFlagEnum.ON.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
|
||||||
|
userCorpRecordGateway.update(userCorpRecordE);
|
||||||
|
}
|
||||||
|
|
||||||
// 增加用户变更记录 ,获取变更记录
|
// 增加用户变更记录 ,获取变更记录
|
||||||
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
|
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
|
||||||
userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
|
userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
|
||||||
|
userCorpRecordE.setStartTime( LocalDateTime.now());
|
||||||
userChangeRecordGateway.add(userChangeRecordE);
|
userChangeRecordGateway.add(userChangeRecordE);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -412,8 +422,8 @@ public class UserUpdateExe {
|
||||||
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(), UserChangeRecordStatusEnum.PENDING.getCode(), employmentFlagBefore);
|
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(), UserChangeRecordStatusEnum.PENDING.getCode(), employmentFlagBefore);
|
||||||
userChangeRecordGateway.add(userChangeRecordE);
|
userChangeRecordGateway.add(userChangeRecordE);
|
||||||
//TODO 处理未完成工作
|
//TODO 处理未完成工作
|
||||||
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
|
// List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
|
||||||
userJobHandoverRepository.saveBatch(allJob);
|
// userJobHandoverRepository.saveBatch(allJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<UserJobHandoverDO> getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) {
|
private List<UserJobHandoverDO> getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) {
|
||||||
|
|
|
||||||
|
|
@ -333,6 +333,8 @@
|
||||||
OR u.id != u.corpinfo_id
|
OR u.id != u.corpinfo_id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AND u.delete_enum = 'FALSE'
|
AND u.delete_enum = 'FALSE'
|
||||||
<if test="params.eqCorpinfoId != null">
|
<if test="params.eqCorpinfoId != null">
|
||||||
AND (
|
AND (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue