增加未完成的工作

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