增加未完成的工作

dev_xiangguanfang
zhaokai 2025-12-24 09:59:20 +08:00
parent d1c1714a2d
commit 65597d3927
2 changed files with 84 additions and 43 deletions

View File

@ -1,6 +1,7 @@
package com.zcloud.basic.info.command;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
@ -25,6 +26,10 @@ import com.zcloud.gbscommon.zcloudhidden.request.HiddenStatisticsListQry;
import com.zcloud.gbscommon.zcloudhidden.request.HiddenUpdateCmd;
import com.zcloud.gbscommon.zcloudhidden.response.HiddenListByUserCO;
import com.zcloud.gbscommon.zcloudhidden.response.HiddenListCO;
import com.zcloud.gbscommon.zcloudrisk.facade.ZcloudRiskFacade;
import com.zcloud.gbscommon.zcloudrisk.request.ListManagerQry;
import com.zcloud.gbscommon.zcloudrisk.request.ListManagerStatusUpdateCmd;
import com.zcloud.gbscommon.zcloudrisk.response.ListManagerListByUserCO;
import com.zcloud.gbscommon.zclouduser.facade.ZcloudUserJobFacade;
import com.zcloud.gbscommon.zclouduser.request.ZcloudUserJobQry;
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserJobCo;
@ -74,8 +79,8 @@ public class UserUpdateExe {
private ZcloudRedisUtil zcloudRedisUtil;
@DubboReference
private ZcloudHiddenFacade zcloudHiddenFacade;
@DubboReference
private ZcloudRiskFacade zcloudRiskFacade;
@Transactional(rollbackFor = Exception.class)
@ -86,11 +91,11 @@ public class UserUpdateExe {
UserDO userDO = userRepository.getInfoById(userUpdateCmd.getId());
UserE oldUserE = new UserE();
BeanUtils.copyProperties(userDO, oldUserE);
// boolean transferPositionFlag = userE.verifyTransferPosition(oldUserE, userE);
// boolean transferPositionFlag = userE.verifyTransferPosition(oldUserE, userE);
boolean transferFlowFlag = userE.verifyTransferFlow(oldUserE, userE);
if(transferFlowFlag){
if (transferFlowFlag) {
List<UserCorpRecordDO> userCorpRecordDOList = userCorpRecordRepository.getInfoListByUserId(userDO.getId());
if(CollUtil.isNotEmpty(userCorpRecordDOList)){
if (CollUtil.isNotEmpty(userCorpRecordDOList)) {
throw new BizException("该用户尚有未离职企业,不能修人员流动状态");
}
@ -134,15 +139,15 @@ public class UserUpdateExe {
UserE userE = new UserE();
userE.checkPassword(cmd.getNewPassword(), cmd.getConfirmPassword());
if(!"123".equals(cmd.getPhoneCode())){
if (!"123".equals(cmd.getPhoneCode())) {
// 获取redis验证码
Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
if(phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())){
throw new BizException("验证码已过期或错误");
}
zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
// 获取redis验证码
Object phoneCodeObj = zcloudRedisUtil.get(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
if (phoneCodeObj == null || !phoneCodeObj.toString().equals(cmd.getPhoneCode())) {
throw new BizException("验证码已过期或错误");
}
zcloudRedisUtil.del(RedisConstant.PHONE_CODE_KEY + cmd.getPhone());
}
BeanUtils.copyProperties(cmd, userE);
userE.setId(userDO.getId());
@ -231,26 +236,25 @@ public class UserUpdateExe {
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore);
userChangeRecordGateway.add(userChangeRecordE);
//TODO 处理未完成工作
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
if(CollUtil.isNotEmpty(allJob)) {
userJobHandoverRepository.saveBatch(allJob);
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(), corpinfoId, userChangeRecordE.getUserChangeRecordId());
if (CollUtil.isNotEmpty(allJob)) {
userJobHandoverRepository.saveBatch(allJob);
// //TODO 离职发送,循环调用,失败的话,返回失败,
ResignatioChangeJob(allJob);
}
ResignatioChangeJob(allJob);
}
//TODO gbs 处理离职
//TODO gbs 处理离职
}
public void executeReviewStatus(UserReviewStatusCmd userReviewStatusCmd) {
//获取用户信息,并更新审核状态
UserDO userDO = userRepository.getInfoById(userReviewStatusCmd.getUserId());
//
if(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode().equals(userReviewStatusCmd.getEmploymentFlag())){
if (UserEmploymentFlagEnum.ENTRY_AUDIT.getCode().equals(userReviewStatusCmd.getEmploymentFlag())) {
//入职待审核
ReviewEntryAudit(userDO, userReviewStatusCmd);
}else if(UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode().equals(userReviewStatusCmd.getEmploymentFlag())){
} else if (UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode().equals(userReviewStatusCmd.getEmploymentFlag())) {
//就是离职待审核
ReviewResignationAudit(userDO, userReviewStatusCmd);
}
@ -259,6 +263,7 @@ public class UserUpdateExe {
/**
*
*
* @param userDO
* @param userReviewStatusCmd
*/
@ -293,7 +298,7 @@ public class UserUpdateExe {
userCorpRecordGateway.add(userCorpRecordE);
}
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userChangeRecordGateway.add(userChangeRecordE);
////TODO 通知GBS用户绑定租户
@ -302,8 +307,8 @@ public class UserUpdateExe {
//处理未完成的工作
//获取未完成工作
List<UserJobHandoverDO> allJob = userJobHandoverRepository.getListByChangerRecordId(userChangeRecordE.getUserChangeRecordId());
if(CollUtil.isNotEmpty(allJob)){
ResignatioChangeJob(allJob);
if (CollUtil.isNotEmpty(allJob)) {
ResignatioChangeJob(allJob);
}
} else {
//驳回
@ -318,7 +323,7 @@ public class UserUpdateExe {
userCorpRecordGateway.add(userCorpRecordE);
}
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode());
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.ON.getCode(), UserChangeRecordStatusEnum.REJECTED.getCode());
userChangeRecordGateway.add(userChangeRecordE);
}
}
@ -350,14 +355,14 @@ public class UserUpdateExe {
if (userCorpRecordDO != null) {
BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE);
userCorpRecordE.executeEntryAudit(userCorpRecordE, userE, UserEmploymentFlagEnum.ON.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordE.setStartTime( LocalDateTime.now());
userCorpRecordE.setStartTime(LocalDateTime.now());
userCorpRecordGateway.update(userCorpRecordE);
}
// 增加用户变更记录 ,获取变更记录
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordE.setStartTime( LocalDateTime.now());
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.ON.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode());
userCorpRecordE.setStartTime(LocalDateTime.now());
userChangeRecordGateway.add(userChangeRecordE);
com.jjb.saas.system.client.user.request.UserAddCmd userAddCmd = new com.jjb.saas.system.client.user.request.UserAddCmd();
@ -388,7 +393,7 @@ public class UserUpdateExe {
userCorpRecordGateway.update(userCorpRecordE);
}
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.NOT_ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode());
userChangeRecordE.executeReviewStatus(userEOld, UserEmploymentFlagEnum.NOT_ON.getCode(), UserChangeRecordStatusEnum.REJECTED.getCode());
userChangeRecordGateway.add(userChangeRecordE);
}
@ -429,30 +434,30 @@ public class UserUpdateExe {
userChangeRecordE.setResignationReason(appUserResignationCmd.getResignationReason());
userChangeRecordGateway.add(userChangeRecordE);
// 处理未完成工作
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
if(CollUtil.isNotEmpty(allJob)){
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(), corpinfoId, userChangeRecordE.getUserChangeRecordId());
if (CollUtil.isNotEmpty(allJob)) {
userJobHandoverRepository.saveBatch(allJob);
}
}
private List<UserJobHandoverDO> getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) {
ZcloudUserJobQry zcloudUserJobQry = new ZcloudUserJobQry();
zcloudUserJobQry.setUserId(userId);
zcloudUserJobQry.setCorpinfoId(corpinfoId);
List<UserJobHandoverDO> allJob = new ArrayList<>();
//隐患id
HiddenStatisticsListQry hiddenStatisticsListQry = new HiddenStatisticsListQry() ;
HiddenStatisticsListQry hiddenStatisticsListQry = new HiddenStatisticsListQry();
hiddenStatisticsListQry.setUserId(userId);
//隐患要求传入企业id
hiddenStatisticsListQry.setDeptId(corpinfoId);
List<HiddenListByUserCO> hiddenListCOList =null;
try{
List<HiddenListByUserCO> hiddenListCOList = null;
try {
log.info("获取用户隐患信息, userId: {}, corpinfoId: {}", userId, corpinfoId);
MultiResponse<HiddenListByUserCO> hiddenListCOMultiResponse = zcloudHiddenFacade.listByUserId(hiddenStatisticsListQry);
log.info("获取用户隐患信息返回, userId: {}, corpinfoId: {}, data: {}", userId, corpinfoId, JSONUtil.toJsonStr(hiddenListCOList));
hiddenListCOList = hiddenListCOMultiResponse.getData();
}catch (Exception e){
log.error("获取用户隐患信息异常, userId: {}, corpinfoId: {}", userId, corpinfoId,e);
} catch (Exception e) {
log.error("获取用户隐患信息异常, userId: {}, corpinfoId: {}", userId, corpinfoId, e);
}
if(CollUtil.isNotEmpty(hiddenListCOList)){
if (CollUtil.isNotEmpty(hiddenListCOList)) {
hiddenListCOList.forEach(info -> {
UserJobHandoverDO userJobHandoverDO = new UserJobHandoverDO();
userJobHandoverDO.setUserJobHandoverId(Tools.get32UUID());
@ -466,13 +471,41 @@ public class UserUpdateExe {
allJob.add(userJobHandoverDO);
});
}
//风险辨识检查
ListManagerQry listManagerQry = new ListManagerQry();
listManagerQry.setUserId(userId);
listManagerQry.setCorpinfoId(corpinfoId);
List<ListManagerListByUserCO> riskManagerCOList = null;
try {
log.info("获取用户风险辨识检查信息, userId: {}, corpinfoId: {}", userId, corpinfoId);
MultiResponse<ListManagerListByUserCO> riskManagerCOResponse = zcloudRiskFacade.listManagerByUserId(listManagerQry);
log.info("获取用户风险辨识检查信息返回, userId: {}, corpinfoId: {}, data: {}", userId, corpinfoId, JSONUtil.toJsonStr(riskManagerCOResponse));
riskManagerCOList = riskManagerCOResponse.getData();
} catch (Exception e) {
log.error("获取用户风险辨识检查信息异常, userId: {}, corpinfoId: {}", userId, corpinfoId, e);
}
if (CollUtil.isNotEmpty(riskManagerCOList)) {
riskManagerCOList.forEach(info -> {
UserJobHandoverDO userJobHandoverDO = new UserJobHandoverDO();
userJobHandoverDO.setUserJobHandoverId(Tools.get32UUID());
userJobHandoverDO.setUserId(userId);
userJobHandoverDO.setWorkProject(info.getWorkProject());
userJobHandoverDO.setWorkContent(info.getWorkContent());
userJobHandoverDO.setForeignKey(info.getListManagerId());
userJobHandoverDO.setWorkType(UserJobHandoverWorkTypeEnum.RISK.getCode());
userJobHandoverDO.setUserChangeRecordId(userChangeRecordId);
userJobHandoverDO.setCorpinfoId(corpinfoId);
allJob.add(userJobHandoverDO);
});
}
return allJob;
}
private void ResignatioChangeJob(List<UserJobHandoverDO> allJob) {
allJob.forEach(info->{
allJob.forEach(info -> {
//取消工作
UserJobHandoverWorkTypeEnum workTypeEnum = UserJobHandoverWorkTypeEnum.getByCode(info.getWorkType());
switch (workTypeEnum){
switch (workTypeEnum) {
case HIDDENINFO:
HiddenUpdateCmd cmd = new HiddenUpdateCmd();
cmd.setUserId(info.getUserId());
@ -482,12 +515,19 @@ public class UserUpdateExe {
userJobHandoverRepository.processUserJobHandover(info.getUserChangeRecordId());
//隐患出异常是直接抛异常
break;
case RISK:
ListManagerStatusUpdateCmd riskCmd = new ListManagerStatusUpdateCmd();
riskCmd.setUserId(info.getUserId());
riskCmd.setCorpinfoId(info.getCorpinfoId());
zcloudRiskFacade.updateListManagerStatusByUserId(riskCmd);
userJobHandoverRepository.processUserJobHandover(info.getUserChangeRecordId());
//风险辨识检查出异常是直接抛异常
break;
}
});
}

View File

@ -11,6 +11,7 @@ public enum UserJobHandoverWorkTypeEnum {
* 1:
*/
HIDDENINFO(1,"隐患信息"),
RISK(2,"风险辨识检查"),
;