From 7b841a1a5aff31e0fbd940d46a0652c1dc67ff6e Mon Sep 17 00:00:00 2001 From: zhaokai Date: Fri, 5 Dec 2025 10:55:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=BB=E8=81=8C=E5=85=A5=E8=81=8C=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zcloud/basic/info/command/UserAddExe.java | 25 ++++++++++------- .../basic/info/command/UserUpdateExe.java | 28 +++++++++++++------ .../src/main/resources/mapper/UserMapper.xml | 2 ++ 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java index f1f0951..7e657d5 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserAddExe.java @@ -146,20 +146,20 @@ public class UserAddExe { @Transactional(rollbackFor = Exception.class) public boolean executeOnboarding(AppUserOnboardingCmd cmd) { - // 如果是流动人员, 判断user_corp表是否有未离职的数据, 如果有则不能入职(0-离职) - /** - * 如果是离职的话, 则将离职改为入职 - */ - List userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), 0); + //// 如果是流动人员, 判断user_corp表是否有未离职的数据, 如果有则不能入职(1-离职) + List userCorpDOS = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), UserEmploymentFlagEnum.RESIGNATION.getCode()); if(CollUtil.isNotEmpty(userCorpDOS)){ throw new BizException("该用户在当前企业存在未离职信息,无法入职"); } + /** + * 如果是离职的话, 则将离职改为入职 + */ + // 把user表和user_corp表相关企业,部门,岗位数据补充完整 UserE userE = new UserE(); BeanUtils.copyProperties(cmd, userE); - userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); - userGateway.update(userE); + // 查询用户信息, 获取是否流动人员 UserDO userDO = userRepository.getById(cmd.getId()); @@ -167,8 +167,7 @@ public class UserAddExe { throw new BizException("用户不存在"); } if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){ - // - List userCorpList = userCorpRepository.listByUserIdAndCorpIdAndNoStatus(cmd.getId(), cmd.getCorpinfoId(), 0); + List userCorpList = userCorpRepository.listByUserIdAndCorpIdAndStatus(cmd.getId(), cmd.getCorpinfoId(), UserEmploymentFlagEnum.RESIGNATION.getCode()); if(CollUtil.isNotEmpty(userCorpList)){ if(userCorpList.size() > 1){ throw new BizException("用户在当前企业存在多条离职数据,请联系管理员。"); @@ -191,8 +190,14 @@ public class UserAddExe { userCorpE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); userCorpGateway.add(userCorpE); } + }else{ + userE.setEmploymentFlag(UserEmploymentFlagEnum.ENTRY_AUDIT.getCode()); + // + if(userDO.getCorpinfoId()!=null){ + throw new BizException("用户已存在企业信息,请勿重复入职"); + } } - + userGateway.update(userE); // 插入user_corp_record表 UserCorpRecordE userCorpRecordE = new UserCorpRecordE(); userCorpRecordE.initAddFromApp(userE, cmd.getCorpinfoName(), cmd.getDepartmentName()); diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java index 2b22682..e4be2f6 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserUpdateExe.java @@ -34,6 +34,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -243,10 +244,10 @@ public class UserUpdateExe { userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore); userChangeRecordGateway.add(userChangeRecordE); //TODO 处理未完成工作 - List allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); - userJobHandoverRepository.saveBatch(allJob); - //TODO 离职发送,循环调用,失败的话,返回失败, - ResignatioChangeJob(allJob); +// List allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); +// userJobHandoverRepository.saveBatch(allJob); +// //TODO 离职发送,循环调用,失败的话,返回失败, +// ResignatioChangeJob(allJob); } @@ -314,7 +315,7 @@ public class UserUpdateExe { //处理未完成的工作 //获取未完成工作 List allJob = userJobHandoverRepository.getListByChangerRecordId(userChangeRecordE.getUserChangeRecordId()); - ResignatioChangeJob(allJob); +// ResignatioChangeJob(allJob); } else { //驳回 @@ -354,16 +355,25 @@ public class UserUpdateExe { if (UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)) { //增加企业入职记录 //增加用户入职企业. 驳回不增加下边信息 - CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId()); + /* CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId()); DepartmentDO departmentDO = departmentRepository.getById(userE.getDepartmentId()); UserCorpRecordE userCorpRecordE = new UserCorpRecordE(); BeanUtils.copyProperties(userDO, userCorpRecordE); 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.executeReviewStatus(userE, UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode()); + userCorpRecordE.setStartTime( LocalDateTime.now()); userChangeRecordGateway.add(userChangeRecordE); } else { @@ -412,8 +422,8 @@ public class UserUpdateExe { userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(), UserChangeRecordStatusEnum.PENDING.getCode(), employmentFlagBefore); userChangeRecordGateway.add(userChangeRecordE); //TODO 处理未完成工作 - List allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); - userJobHandoverRepository.saveBatch(allJob); +// List allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); +// userJobHandoverRepository.saveBatch(allJob); } private List getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) { diff --git a/web-infrastructure/src/main/resources/mapper/UserMapper.xml b/web-infrastructure/src/main/resources/mapper/UserMapper.xml index 5da62b1..9e23056 100644 --- a/web-infrastructure/src/main/resources/mapper/UserMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/UserMapper.xml @@ -333,6 +333,8 @@ OR u.id != u.corpinfo_id ) + + AND u.delete_enum = 'FALSE' AND (