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