From 2d63d0715e86b2beb15b1356312af3950b34e679 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 4 Dec 2025 09:14:31 +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 | 3 +- .../basic/info/command/UserUpdateExe.java | 43 ++++++++++++++----- .../query/UserChangeRecordQueryExe.java | 10 ++--- .../dto/clientobject/UserChangeRecordCO.java | 6 ++- .../info/dto/clientobject/UserXmfCO.java | 2 +- .../basic/info/domain/model/UserCorpE.java | 1 + .../info/domain/model/UserCorpRecordE.java | 24 ++++++++--- .../zcloud/basic/info/domain/model/UserE.java | 4 +- .../dataobject/UserChangeRecordDO.java | 5 +++ .../mapper/UserChangeRecordMapper.java | 1 + .../UserChangeRecordRepository.java | 3 ++ .../impl/UserChangeRecordRepositoryImpl.java | 5 +++ .../mapper/UserChangeRecordMapper.xml | 11 +++++ .../src/main/resources/mapper/UserMapper.xml | 4 +- 14 files changed, 93 insertions(+), 29 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 034ea45..5fb0ce8 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 @@ -245,7 +245,8 @@ public class UserAddExe { if(UserFlowFlagEnum.FLOW.getCode().equals(cmd.getFlowFlag())){ //流动人员 UserCorpE userCorpE = new UserCorpE(); - BeanUtils.copyProperties(cmd, userCorpE); +// BeanUtils.copyProperties(userE, userCorpE); +// userCorpE.setCorpinfoId(tenantId); userCorpE.initAdd(tenantId, userE); userCorpGateway.add(userCorpE); } 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 799a017..9f4491d 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 @@ -79,7 +79,10 @@ public class UserUpdateExe { userCorpGateway.update(userCorpE); } else { UserCorpE userCorpE = new UserCorpE(); - userCorpE.initAdd(AuthContext.getTenantId(), userE); + BeanUtils.copyProperties(oldUserE, userCorpE); + BeanUtils.copyProperties(userE, userCorpE); +// userCorpE.initAdd( userE,oldUserE); + userCorpE.setId(null); userCorpGateway.add(userCorpE); BeanUtils.copyProperties(userCorpE, infoByUserId); } @@ -164,10 +167,10 @@ public class UserUpdateExe { UserCorpRecordE userCorpRecordE = new UserCorpRecordE(); if(userCorpRecordDO!=null){ BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE); - userCorpRecordE.executeResignation(userCorpRecordE,userE); + userCorpRecordE.executeResignation(userCorpRecordE,userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode()); userCorpRecordGateway.update(userCorpRecordE); }else{ - userCorpRecordE.initResignation(userE); + userCorpRecordE.initResignation(userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode()); userCorpRecordGateway.add(userCorpRecordE); } @@ -220,25 +223,32 @@ public class UserUpdateExe { } if(UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)){ //修改企业入职记录 - UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.ON.getCode()); + UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode()); UserCorpRecordE userCorpRecordE = new UserCorpRecordE(); if(userCorpRecordDO!=null){ BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE); - userCorpRecordDO.setEmploymentFlag(UserEmploymentFlagEnum.RESIGNATION.getCode()); - userCorpRecordDO.setUpdateTime(LocalDateTime.now()); - userCorpRecordRepository.updateById(userCorpRecordDO); - userCorpRecordE.executeResignation(userCorpRecordE,userE); + userCorpRecordE.executeResignation(userCorpRecordE,userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode()); userCorpRecordGateway.update(userCorpRecordE); }else{ - userCorpRecordE.initResignation(userE); + userCorpRecordE.initResignation(userE,UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode()); userCorpRecordGateway.add(userCorpRecordE); } // 增加用户变更记录 UserChangeRecordE userChangeRecordE = new UserChangeRecordE(); userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.RESIGNATION.getCode()); userChangeRecordGateway.add(userChangeRecordE); - - + }else{ + //驳回 + UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode()); + UserCorpRecordE userCorpRecordE = new UserCorpRecordE(); + if(userCorpRecordDO!=null){ + BeanUtils.copyProperties(userCorpRecordDO, userCorpRecordE); + userCorpRecordE.executeResignation(userCorpRecordE,userE,UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode()); + userCorpRecordGateway.update(userCorpRecordE); + }else{ + userCorpRecordE.initResignation(userE,UserEmploymentFlagEnum.ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode()); + userCorpRecordGateway.add(userCorpRecordE); + } } } @@ -273,6 +283,16 @@ public class UserUpdateExe { UserChangeRecordE userChangeRecordE = new UserChangeRecordE(); userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.ON.getCode()); userChangeRecordGateway.add(userChangeRecordE); + }else{ + //驳回 + //驳回 + 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.NOT_ON.getCode(),UserChangeRecordStatusEnum.REJECTED.getCode()); + userCorpRecordGateway.update(userCorpRecordE); + } } } @@ -300,6 +320,7 @@ public class UserUpdateExe { userE.setEmploymentFlag(UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode()); userGateway.update(userE); } + //插入变更记录 UserChangeRecordE userChangeRecordE = new UserChangeRecordE(); userChangeRecordE.executeResignation(userE,UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(),UserChangeRecordStatusEnum.PENDING.getCode(),employmentFlagBefore); diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/UserChangeRecordQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/UserChangeRecordQueryExe.java index 6a9b310..3d543d4 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/UserChangeRecordQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/UserChangeRecordQueryExe.java @@ -72,12 +72,10 @@ public class UserChangeRecordQueryExe { if(userChangeRecordInfoQry.getCorpinfoId() == null){ userChangeRecordInfoQry.setCorpinfoId(AuthContext.getTenantId()); } - queryWrapper.eq("corpinfo_id_before", userChangeRecordInfoQry.getCorpinfoId()); - queryWrapper.eq("user_id", userChangeRecordInfoQry.getUserId()); - queryWrapper.eq("status", UserChangeRecordStatusEnum.PENDING.getCode()); - queryWrapper.orderByDesc("create_time"); - queryWrapper.last("limit 1"); - UserChangeRecordDO userChangeRecordDO = userChangeRecordRepository.getOne(queryWrapper); + + UserChangeRecordDO userChangeRecordDO =userChangeRecordRepository.getChangerRecordInfoById(userChangeRecordInfoQry.getUserId(), userChangeRecordInfoQry.getCorpinfoId(),UserChangeRecordStatusEnum.PENDING.getCode()); + + if(userChangeRecordDO == null){ return null; } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserChangeRecordCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserChangeRecordCO.java index 6846a18..e3edd9c 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserChangeRecordCO.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserChangeRecordCO.java @@ -1,6 +1,7 @@ package com.zcloud.basic.info.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -77,7 +78,10 @@ public class UserChangeRecordCO extends ClientObject { private Integer userStatusAfter; @ApiModelProperty(value = "离职原因") private String resignationReason; - + //用户名称 + @ApiModelProperty(value = "用户名称") + @TableField(exist = false) + private String userName; @ApiModelProperty(value = "工作交接记录信息") private List userJobHandoverCOList; diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserXmfCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserXmfCO.java index 498cff5..4d96fc7 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserXmfCO.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/UserXmfCO.java @@ -161,7 +161,7 @@ public class UserXmfCO extends ClientObject { private String mappingPostName; private String mappingDeptName; // 入职状态 - @ApiModelProperty(value = "入职状态 1-在职 0-离职, 2-入职待审核, 3-离职待审核") + @ApiModelProperty(value = "入职状态,1-在职 0-离职, 11-入职待审核, 10-离职待审核") private Integer employmentFlag; // 入职状态 @ApiModelProperty(value = "是否流动人员,1-流动,0-固定人员") diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpE.java index 7089e40..d71165d 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpE.java @@ -73,6 +73,7 @@ public class UserCorpE extends BaseE { this.roleId = userE.getRoleId(); this.sort = userE.getSort(); this.departmentLeaderFlag = userE.getDepartmentLeaderFlag(); + this.employmentFlag = userE.getEmploymentFlag(); } public void initUpdate(UserE userE) { diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpRecordE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpRecordE.java index fab2179..c406322 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpRecordE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserCorpRecordE.java @@ -79,18 +79,18 @@ public class UserCorpRecordE extends BaseE { this.startTime = LocalDateTime.now(); } - public void executeResignation(UserCorpRecordE userCorpRecordE, UserE userE) { + public void executeResignation(UserCorpRecordE userCorpRecordE, UserE userE,Integer employmentFlag,Integer status) { this.corpinfoName = userCorpRecordE.getCorpinfoName(); this.departmentId = userE.getDepartmentId(); this.departmentName = userE.getDepartmentName(); this.postId = userE.getPostId(); this.postName = userE.getPostName(); - this.employmentFlag = UserEmploymentFlagEnum.RESIGNATION.getCode(); - this.status = UserChangeRecordStatusEnum.APPROVED.getCode(); + this.employmentFlag = employmentFlag; + this.status = status; this.endTime = LocalDateTime.now(); } - public void initResignation(UserE userE) { + public void initResignation(UserE userE,Integer employmentFlag,Integer status) { this.userId = userE.getId(); this.corpinfoId = userE.getCorpinfoId(); this.corpinfoName = userE.getCorpinfoName(); @@ -98,10 +98,22 @@ public class UserCorpRecordE extends BaseE { this.departmentName = userE.getDepartmentName(); this.postId = userE.getPostId(); this.postName = userE.getPostName(); - this.employmentFlag = UserEmploymentFlagEnum.RESIGNATION.getCode(); - this.status = UserChangeRecordStatusEnum.APPROVED.getCode(); + this.employmentFlag = employmentFlag; + this.status = status; this.startTime = LocalDateTime.now(); this.endTime = LocalDateTime.now(); } + + public void executeEntryAudit(UserCorpRecordE userCorpRecordE, UserE userE, Integer employmentFlag, Integer status) { + this.userId = userE.getId(); + this.corpinfoId = userE.getCorpinfoId(); + this.corpinfoName = userCorpRecordE.getCorpinfoName(); + this.departmentId = userE.getDepartmentId(); + this.departmentName = userE.getDepartmentName(); + this.postId = userE.getPostId(); + this.postName = userE.getPostName(); + this.employmentFlag = employmentFlag; + this.status = status; + } } diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java index 4abb30c..c87e044 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java @@ -156,7 +156,9 @@ public class UserE extends BaseE { public void initAdd(Long tenantId, UserE userE) { - userE.setUserId(Tools.get32UUID()); + if(StringUtils.isEmpty(userE.getUserId())){ + userE.setUserId(Tools.get32UUID()); + } userE.setTenantId(!ObjectUtils.isEmpty(userE.getTenantId()) ? userE.getTenantId() : tenantId); userE.setCorpinfoId(!ObjectUtils.isEmpty(userE.getCorpinfoId()) ? userE.getCorpinfoId() : tenantId); userE.setEmploymentFlag(1); diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserChangeRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserChangeRecordDO.java index 4c78081..4e68eb3 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserChangeRecordDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/UserChangeRecordDO.java @@ -77,6 +77,11 @@ public class UserChangeRecordDO extends BaseDO { @ApiModelProperty(value = "离职原因") private String resignationReason; + //用户名称 + @ApiModelProperty(value = "用户名称") + @TableField(exist = false) + private String userName; + public UserChangeRecordDO(String userChangeRecordId) { this.userChangeRecordId = userChangeRecordId; } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserChangeRecordMapper.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserChangeRecordMapper.java index d01259a..7e8a074 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserChangeRecordMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserChangeRecordMapper.java @@ -13,5 +13,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserChangeRecordMapper extends BaseMapper { + UserChangeRecordDO getChangerRecordInfoById(Long userId, Long corpinfoId, Integer status); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserChangeRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserChangeRecordRepository.java index 2068980..d6e968b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserChangeRecordRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserChangeRecordRepository.java @@ -21,5 +21,8 @@ public interface UserChangeRecordRepository extends BaseRepository list(Map params); SingleResponse getInfoById(Long id); + + + UserChangeRecordDO getChangerRecordInfoById(Long userId, Long corpinfoId, Integer status); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserChangeRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserChangeRecordRepositoryImpl.java index 78b7bb8..ac20a42 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserChangeRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserChangeRecordRepositoryImpl.java @@ -51,5 +51,10 @@ public class UserChangeRecordRepositoryImpl extends BaseRepositoryImpl getInfoById(Long id) { return SingleResponse.of(userChangeRecordMapper.selectById(id)); } + + @Override + public UserChangeRecordDO getChangerRecordInfoById(Long userId, Long corpinfoId, Integer status) { + return userChangeRecordMapper.getChangerRecordInfoById(userId, corpinfoId, status); + } } diff --git a/web-infrastructure/src/main/resources/mapper/UserChangeRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/UserChangeRecordMapper.xml index e1a686d..ce63667 100644 --- a/web-infrastructure/src/main/resources/mapper/UserChangeRecordMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/UserChangeRecordMapper.xml @@ -3,5 +3,16 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/web-infrastructure/src/main/resources/mapper/UserMapper.xml b/web-infrastructure/src/main/resources/mapper/UserMapper.xml index 4365ab3..5da62b1 100644 --- a/web-infrastructure/src/main/resources/mapper/UserMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/UserMapper.xml @@ -311,7 +311,7 @@ END AS corpName, CASE WHEN u.flow_flag = 0 THEN u.department_id - WHEN u.flow_flag = 1 THEN cpd.id + WHEN u.flow_flag = 1 THEN cp.department_id END AS departmentId, CASE WHEN u.flow_flag = 0 THEN u.corpinfo_id @@ -321,7 +321,7 @@ user u LEFT JOIN user_corp cp ON u.id = cp.user_id AND cp.delete_enum = 'FALSE' LEFT JOIN department ud ON u.department_id = ud.id - LEFT JOIN department cpd ON ud.parent_id = cpd.id + LEFT JOIN department cpd ON cp.department_id = cpd.id AND cpd.delete_enum = 'FALSE' AND cp.corpinfo_id = cpd.corpinfo_id LEFT JOIN corp_info cu ON u.corpinfo_id = cu.id