chore(build): 人资对接调整,未测试
parent
4e66d236d9
commit
c631087511
|
|
@ -193,19 +193,12 @@ public class HumanUserUpdateExe {
|
|||
* @return 新企业中的 GBS 用户 id;如果原企业仍有待交接任务,则返回原用户 id
|
||||
*/
|
||||
private Long executeChangeCorp(UserDO oldUserDO, UserUpdateCmd userUpdateCmd) {
|
||||
if (UserEmploymentFlagEnum.RESIGNATION.getCode().equals(oldUserDO.getEmploymentFlag())) {
|
||||
return addHumanUser(userUpdateCmd);
|
||||
}
|
||||
|
||||
UserE oldUserE = buildUserE(oldUserDO);
|
||||
oldUserE.setEmploymentFlag(UserEmploymentFlagEnum.INFO_CHANGE.getCode());
|
||||
oldUserE.setRzFlag(CommonFlagEnum.YES.getCode());
|
||||
markCurrentCorpRecordPending(oldUserDO);
|
||||
|
||||
UserChangeRecordE userChangeRecordE = createCrossCorpChangeRecord(oldUserDO, userUpdateCmd);
|
||||
userChangeRecordGateway.add(userChangeRecordE);
|
||||
|
||||
log.info("开始汇总跨企业变更待交接任务,用户id:{}, 原企业id:{}, 新企业id:{}, 变更记录:{}",
|
||||
log.info("开始汇总跨企业变更待交接任务,用户id:{}, 原企业id:{}, 目标企业id:{}, 变更记录id:{}",
|
||||
oldUserDO.getId(), oldUserDO.getCorpinfoId(), userUpdateCmd.getCorpinfoId(), userChangeRecordE.getUserChangeRecordId());
|
||||
List<UserJobHandoverDO> allJob = getUserJob(
|
||||
oldUserDO.getId(),
|
||||
|
|
@ -213,24 +206,14 @@ public class HumanUserUpdateExe {
|
|||
oldUserDO.getCorpinfoId(),
|
||||
userChangeRecordE.getUserChangeRecordId());
|
||||
if (CollUtil.isNotEmpty(allJob)) {
|
||||
log.info("用户{}跨企业调整存在{}条待交接任务,先挂起交接,待交接完成后再进入新企业",
|
||||
log.info("用户{}跨企业变更存在{}条待交接任务,已保存交接数据,等待人工审批后继续处理",
|
||||
oldUserDO.getId(), allJob.size());
|
||||
userJobHandoverRepository.saveBatch(allJob);
|
||||
userGateway.update(oldUserE);
|
||||
}
|
||||
|
||||
log.info("用户{}跨企业变更已记录待审批变更单,本次不自动执行离职和入职", oldUserDO.getId());
|
||||
return oldUserDO.getId();
|
||||
}
|
||||
|
||||
log.info("用户{}跨企业调整不存在待交接任务,直接完成原企业离职并在新企业入职", oldUserDO.getId());
|
||||
// oldUserE.setEmploymentFlag(UserEmploymentFlagEnum.RESIGNATION.getCode());
|
||||
// userGateway.update(oldUserE);
|
||||
userRepository.updateEmploymentFlagAndDeleteEnum(
|
||||
oldUserE.getId(),
|
||||
UserEmploymentFlagEnum.RESIGNATION.getCode(),
|
||||
"TRUE");
|
||||
completeResignation(oldUserDO, userChangeRecordE);
|
||||
return createEntryUserByChangeRecord(oldUserDO, userChangeRecordE, userUpdateCmd.getRoleId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理企业内部资料调整。
|
||||
* 调整完成后,以数据库最新结果同步任职记录和用户变更记录,避免 after 字段仍然写成旧值。
|
||||
|
|
@ -239,21 +222,19 @@ public class HumanUserUpdateExe {
|
|||
* @param userUpdateCmd 修改命令
|
||||
*/
|
||||
private void executeInsideCorpUpdate(UserDO oldUserDO, UserUpdateCmd userUpdateCmd) {
|
||||
// userUpdateCmd.setEmploymentFlag(oldUserDO.getEmploymentFlag());
|
||||
UserUpdateCmd userUpdateCmdNew = new UserUpdateCmd();
|
||||
BeanUtils.copyProperties(oldUserDO, userUpdateCmdNew);
|
||||
userUpdateCmdNew.setRzFlag(CommonFlagEnum.YES.getCode());
|
||||
userUpdateExe.execute(userUpdateCmdNew);
|
||||
updateRzFlagOnly(oldUserDO, userUpdateCmd);
|
||||
|
||||
UserDO newUserDO = userRepository.getInfoById(oldUserDO.getId());
|
||||
if (newUserDO == null) {
|
||||
throw new BizException("用户修改完成后未查询到最新数据");
|
||||
UserE oldUserE = buildUserE(oldUserDO);
|
||||
UserE newUserE = buildUserE(userUpdateCmd, oldUserDO.getId());
|
||||
String corpinfoName = resolveChangedCorpinfoName(userUpdateCmd, oldUserDO);
|
||||
String departmentName = resolveChangedDepartmentName(userUpdateCmd, oldUserDO);
|
||||
|
||||
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
|
||||
userChangeRecordE.initUserUpdate(newUserE, oldUserE, corpinfoName, departmentName,
|
||||
UserChangeRecordStatusEnum.PENDING.getCode());
|
||||
userChangeRecordGateway.add(userChangeRecordE);
|
||||
log.info("用户{}企业内资料调整已记录待审批变更单,本次仅同步rz_flag", oldUserDO.getId());
|
||||
}
|
||||
|
||||
createOrUpdateCurrentCorpRecord(buildUserE(newUserDO), resolveCorpinfoName(newUserDO), resolveDepartmentName(newUserDO));
|
||||
createUpdateChangeRecord(oldUserDO, newUserDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理人资离职。
|
||||
* 先将用户状态置为信息变更中,再汇总离职前待交接任务。
|
||||
|
|
@ -264,12 +245,6 @@ public class HumanUserUpdateExe {
|
|||
* @return true 表示已直接完成离职;false 表示已生成交接任务,等待后续交接完成
|
||||
*/
|
||||
private boolean executeHumanResignation(UserDO oldUserDO) {
|
||||
UserE oldUserE = buildUserE(oldUserDO);
|
||||
oldUserE.setEmploymentFlag(UserEmploymentFlagEnum.INFO_CHANGE.getCode());
|
||||
oldUserE.setRzFlag(CommonFlagEnum.YES.getCode());
|
||||
|
||||
markCurrentCorpRecordPending(oldUserDO);
|
||||
|
||||
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
|
||||
userChangeRecordE.executeResignation(buildUserE(oldUserDO),
|
||||
UserEmploymentFlagEnum.RESIGNATION.getCode(),
|
||||
|
|
@ -277,28 +252,34 @@ public class HumanUserUpdateExe {
|
|||
oldUserDO.getEmploymentFlag());
|
||||
userChangeRecordGateway.add(userChangeRecordE);
|
||||
|
||||
log.info("开始汇总用户离职前待交接任务,用户id:{}, 部门id:{}, 企业id:{}, 变更记录:{}",
|
||||
log.info("开始汇总用户离职前待交接任务,用户id:{}, 部门id:{}, 企业id:{}, 变更记录id:{}",
|
||||
oldUserDO.getId(), oldUserDO.getDepartmentId(), oldUserDO.getCorpinfoId(), userChangeRecordE.getUserChangeRecordId());
|
||||
List<UserJobHandoverDO> allJob = getUserJob(oldUserDO.getId(), oldUserDO.getDepartmentId(), oldUserDO.getCorpinfoId(), userChangeRecordE.getUserChangeRecordId());
|
||||
if (CollUtil.isNotEmpty(allJob)) {
|
||||
log.info("用户{}存在{}条待交接任务,保存工作交接记录并将用户状态更新为信息变更中",
|
||||
log.info("用户{}存在{}条待交接任务,已保存交接数据,等待人工审批后继续处理",
|
||||
oldUserDO.getId(), allJob.size());
|
||||
userJobHandoverRepository.saveBatch(allJob);
|
||||
userGateway.update(oldUserE);
|
||||
}
|
||||
log.info("用户{}离职变更已记录待审批变更单,本次不自动执行离职", oldUserDO.getId());
|
||||
return false;
|
||||
}
|
||||
|
||||
log.info("用户{}不存在待交接任务,直接完成离职处理", oldUserDO.getId());
|
||||
// oldUserE.setEmploymentFlag(UserEmploymentFlagEnum.RESIGNATION.getCode());
|
||||
// userGateway.update(oldUserE);
|
||||
userRepository.updateEmploymentFlagAndDeleteEnum(
|
||||
oldUserE.getId(),
|
||||
UserEmploymentFlagEnum.RESIGNATION.getCode(),
|
||||
"TRUE");
|
||||
completeResignation(oldUserDO, userChangeRecordE);
|
||||
return true;
|
||||
/**
|
||||
* 企业内资料调整时,仅允许立即同步人资标记。
|
||||
*
|
||||
* @param oldUserDO 变更前用户
|
||||
* @param userUpdateCmd 变更命令
|
||||
*/
|
||||
private void updateRzFlagOnly(UserDO oldUserDO, UserUpdateCmd userUpdateCmd) {
|
||||
if (userUpdateCmd.getRzFlag() == null || Objects.equals(userUpdateCmd.getRzFlag(), oldUserDO.getRzFlag())) {
|
||||
return;
|
||||
}
|
||||
UserE userE = new UserE();
|
||||
userE.setId(oldUserDO.getId());
|
||||
userE.setRzFlag(userUpdateCmd.getRzFlag());
|
||||
userGateway.update(userE);
|
||||
log.info("用户{}仅同步rz_flag,旧值:{}, 新值:{}", oldUserDO.getId(), oldUserDO.getRzFlag(), userUpdateCmd.getRzFlag());
|
||||
}
|
||||
|
||||
/**
|
||||
* 完成离职收口。
|
||||
* 包括更新当前任职记录、更新用户变更记录,以及调用底座离职。
|
||||
|
|
@ -1278,3 +1259,4 @@ public class HumanUserUpdateExe {
|
|||
return userJobHandoverDO;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue