diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudUserFacadeImpl.java b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudUserFacadeImpl.java index 460820fe..15724769 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudUserFacadeImpl.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/facade/ZcloudUserFacadeImpl.java @@ -156,6 +156,9 @@ public class ZcloudUserFacadeImpl implements ZcloudUserFacade { if (userDO != null && !StringUtils.hasText(userUpdateCmd.getUserId())) { userUpdateCmd.setUserId(userDO.getUserId()); } + if (userDO != null && !StringUtils.hasText(userUpdateCmd.getName())) { + userUpdateCmd.setName(userDO.getName()); + } if (userDO != null && !StringUtils.hasText(userUpdateCmd.getPhone())) { userUpdateCmd.setPhone(userDO.getPhone()); } diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java index c5911334..fe2be1d0 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/UserController.java @@ -76,6 +76,11 @@ public class UserController { public PageResponse pageByNopermission(@RequestBody UserPageQry qry) { return userService.pageByNopermission(qry); } + @ApiOperation("其他页面的用户分页,不需要权限控制,查询所有用户包括已离职和删除用户") + @PostMapping("/pageByNopermissionAll") + public PageResponse pageByNopermissionAll(@RequestBody UserPageQry qry) { + return userService.pageByNopermissionAll(qry); + } @ApiOperation("所有数据") @GetMapping("/listAll") diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/HumanUserUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/HumanUserUpdateExe.java index 023f2edb..9150b8d3 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/HumanUserUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/HumanUserUpdateExe.java @@ -380,6 +380,7 @@ public class HumanUserUpdateExe { userChangeRecordE.setDepartmentNameBefore(resolveDepartmentName(oldUserDO)); userChangeRecordE.setPostIdBefore(oldUserDO.getPostId()); userChangeRecordE.setPostNameBefore(oldUserDO.getPostName()); + userChangeRecordE.setUserNameBefore(oldUserDO.getName()); userChangeRecordE.setUserStatusBefore(oldUserDO.getEmploymentFlag()); userChangeRecordE.setCorpinfoIdAfter(userUpdateCmd.getCorpinfoId()); @@ -388,6 +389,7 @@ public class HumanUserUpdateExe { userChangeRecordE.setDepartmentNameAfter(resolveChangedDepartmentName(userUpdateCmd, oldUserDO)); userChangeRecordE.setPostIdAfter(userUpdateCmd.getPostId()); userChangeRecordE.setPostNameAfter(resolveChangedPostName(userUpdateCmd, oldUserDO)); + userChangeRecordE.setUserNameAfter(resolveChangedUserName(userUpdateCmd, oldUserDO)); userChangeRecordE.setUserStatusAfter(UserEmploymentFlagEnum.ON.getCode()); userChangeRecordE.setStatus(UserChangeRecordStatusEnum.PENDING.getCode()); return userChangeRecordE; @@ -412,6 +414,8 @@ public class HumanUserUpdateExe { userChangeRecordENew.setId(null); userChangeRecordENew.setUserChangeRecordId(null); userChangeRecordENew.setUserId(userId); + userChangeRecordENew.setUserNameBefore(userChangeRecordE.getUserNameBefore()); + userChangeRecordENew.setUserNameAfter(userChangeRecordE.getUserNameAfter()); userChangeRecordENew.setStatus(UserChangeRecordStatusEnum.APPROVED.getCode()); userChangeRecordGateway.add(userChangeRecordENew); log.info("跨企业变更新企业入职完成,原用户id:{}, 新用户id:{}, 新企业id:{}", @@ -419,6 +423,22 @@ public class HumanUserUpdateExe { return userId; } + /** + * 解析跨企业变更后的用户姓名。 + * 如果人资本次传入了新姓名,则以新姓名为准; + * 否则继续沿用原用户姓名,避免变更记录中的姓名字段为空。 + * + * @param userUpdateCmd 人资变更命令 + * @param oldUserDO 原用户信息 + * @return 变更后的用户姓名 + */ + private String resolveChangedUserName(UserUpdateCmd userUpdateCmd, UserDO oldUserDO) { + if (StringUtils.hasText(userUpdateCmd.getName())) { + return userUpdateCmd.getName(); + } + return oldUserDO == null ? null : oldUserDO.getName(); + } + /** * 使用原用户基础资料和变更记录中的 after 信息组装新企业入职命令。 * @@ -437,7 +457,9 @@ public class HumanUserUpdateExe { userAddCmd.setPostName(userChangeRecordE.getPostNameAfter()); userAddCmd.setUsername(oldUserDO.getUsername()); userAddCmd.setPhone(oldUserDO.getPhone()); - userAddCmd.setName(oldUserDO.getName()); + userAddCmd.setName(StringUtils.hasText(userChangeRecordE.getUserNameAfter()) + ? userChangeRecordE.getUserNameAfter() + : oldUserDO.getName()); userAddCmd.setUserId(oldUserDO.getUserId()); return userAddCmd; } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/UserChangeRecordWorkChangeExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/UserChangeRecordWorkChangeExe.java index d7516e1a..7200a81b 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/UserChangeRecordWorkChangeExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/UserChangeRecordWorkChangeExe.java @@ -629,7 +629,9 @@ public class UserChangeRecordWorkChangeExe { userAddCmd.setUserId(oldUserDO.getUserId()); userAddCmd.setUsername(oldUserDO.getUsername()); userAddCmd.setPhone(oldUserDO.getPhone()); - userAddCmd.setName(oldUserDO.getName()); + userAddCmd.setName(StringUtils.hasText(userChangeRecordDO.getUserNameAfter()) + ? userChangeRecordDO.getUserNameAfter() + : oldUserDO.getName()); userAddCmd.setCorpinfoId(userChangeRecordDO.getCorpinfoIdAfter()); userAddCmd.setCorpinfoName(userChangeRecordDO.getCorpinfoNameAfter()); userAddCmd.setDepartmentId(userChangeRecordDO.getDepartmentIdAfter()); diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/UserQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/UserQueryExe.java index 7796bbe6..eabc7fb2 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/UserQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/UserQueryExe.java @@ -370,5 +370,15 @@ public class UserQueryExe { public List listBase64ByUrl(Map map){ return userRepository.listBase64ByUrl(map); } + + public PageResponse pageByNopermissionAll(UserPageQry userPageQry) { + Map params = PageQueryHelper.toHashMap(userPageQry); + UserE userE = new UserE(); + userE.dataProcessingRights(AuthContext.getTenantId(), params); + PageResponse pageResponse = userRepository.pageByNopermissionAll(params); + List examCenterCOS = userCoConvertor.converDOsToCOs(pageResponse.getData()); + + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } } diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java index 47806a22..6872fa19 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/basic/info/service/UserServiceImpl.java @@ -273,5 +273,10 @@ public class UserServiceImpl implements UserServiceI { public SingleResponse updateHumanUser(UserUpdateCmd userUpdateCmd) { return humanUserUpdateExe.updateHumanUser(userUpdateCmd); } + + @Override + public PageResponse pageByNopermissionAll(UserPageQry qry) { + return userQueryExe.pageByNopermissionAll(qry); + } } diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java index 5b2d5a0c..3ec1da70 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java +++ b/web-client/src/main/java/com/zcloud/basic/info/api/UserServiceI.java @@ -106,5 +106,7 @@ public interface UserServiceI { SingleResponse addHumanUser(UserAddCmd cmd); SingleResponse updateHumanUser(UserUpdateCmd userUpdateCmd); + + PageResponse pageByNopermissionAll(UserPageQry qry); } 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 5dc94e3e..dd715e43 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 @@ -53,6 +53,8 @@ public class UserChangeRecordCO extends ClientObject { //变更前负责岗位名称 @ApiModelProperty(value = "变更前负责岗位名称") private String postNameBefore; + @ApiModelProperty(value = "变更前用户名称") + private String userNameBefore; //变更前状态 @ApiModelProperty(value = "变更前状态") private Integer userStatusBefore; @@ -74,6 +76,8 @@ public class UserChangeRecordCO extends ClientObject { //变更后负责岗位名称 @ApiModelProperty(value = "变更后负责岗位名称") private String postNameAfter; + @ApiModelProperty(value = "变更后用户名称") + private String userNameAfter; //变更后状态 @ApiModelProperty(value = "变更后状态") private Integer userStatusAfter; diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/enums/UserEmploymentFlagEnum.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/enums/UserEmploymentFlagEnum.java index 27104233..b5b72b1d 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/enums/UserEmploymentFlagEnum.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/enums/UserEmploymentFlagEnum.java @@ -3,13 +3,13 @@ package com.zcloud.basic.info.domain.enums; import lombok.Getter; /** - * 入入职状态,0-离职, 1-在职, 2-信息变更中, 3-未入职, 4-实习生, 5-实习结束, 6-退休, 7-劳务派遣, 8-劳务派遣结束, 11-入职待审核, 10-离职待审核', - * + * 入职状态,0-离职,1-在职,2-信息变更中,3-未入职,4-实习生,5-实习结束, + * 6-退休,7-劳务派遣,8-劳务派遣结束,11-入职待审核,10-离职待审核。 */ @Getter public enum UserEmploymentFlagEnum { /** - * 枚举值 + * 离职 */ RESIGNATION(0, "离职"), ON(1, "在职"), @@ -21,8 +21,8 @@ public enum UserEmploymentFlagEnum { LABOR_DISPATCH(7, "劳务派遣"), END_OF_LABOR_DISPATCH(8, "劳务派遣结束"), ENTRY_AUDIT(11, "入职待审核"), - RESIGNATION_AUDIT(10, "离职待审核"), - ; + RESIGNATION_AUDIT(10, "离职待审核"); + private final Integer code; private final String desc; @@ -30,7 +30,13 @@ public enum UserEmploymentFlagEnum { this.code = code; this.desc = desc; } - //根据code获取枚举值 + + /** + * 根据编码获取枚举。 + * + * @param code 状态编码 + * @return 对应枚举 + */ public static UserEmploymentFlagEnum getByCode(Integer code) { for (UserEmploymentFlagEnum item : values()) { if (item.getCode().equals(code)) { @@ -40,7 +46,12 @@ public enum UserEmploymentFlagEnum { return null; } - //根据枚举获取code + /** + * 根据描述获取枚举编码。 + * + * @param desc 状态描述 + * @return 对应枚举 + */ public static UserEmploymentFlagEnum getByDesc(String desc) { for (UserEmploymentFlagEnum item : values()) { if (item.getDesc().equals(desc)) { diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java index 174ffd59..894b4abf 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java @@ -38,6 +38,8 @@ public class UserChangeRecordE extends BaseE { private Long postIdBefore; //变更前负责岗位名称 private String postNameBefore; + //变更前用户名 + private String userNameBefore; //变更前状态 private Integer userStatusBefore; //变更后企业id @@ -52,6 +54,8 @@ public class UserChangeRecordE extends BaseE { private Long postIdAfter; //变更后负责岗位名称 private String postNameAfter; + //变更后用户名 + private String userNameAfter; //变更后状态 private Integer userStatusAfter; // @@ -66,6 +70,7 @@ public class UserChangeRecordE extends BaseE { this.setDepartmentNameAfter(departmentName); this.setPostIdAfter(userE.getPostId()); this.setPostNameAfter(userE.getPostName()); + this.setUserNameAfter(userE.getName()); this.setUserStatusAfter(UserEmploymentFlagEnum.ON.getCode()); this.setStatus(UserChangeRecordStatusEnum.APPROVED.getCode()); } @@ -79,6 +84,7 @@ public class UserChangeRecordE extends BaseE { this.setDepartmentNameAfter(departmentName); this.setPostIdAfter(userE.getPostId()); this.setPostNameAfter(userE.getPostName()); + this.setUserNameAfter(userE.getName()); this.setUserStatusAfter(UserEmploymentFlagEnum.ON.getCode()); this.setStatus(UserChangeRecordStatusEnum.PENDING.getCode()); } @@ -122,6 +128,7 @@ public class UserChangeRecordE extends BaseE { this.setDepartmentNameBefore(oldUserE.getDepartmentName()); this.setPostIdBefore(oldUserE.getPostId()); this.setPostNameBefore(oldUserE.getPostName()); + this.setUserNameBefore(oldUserE.getName()); this.setUserStatusBefore(oldUserE.getEmploymentFlag()); this.setCorpinfoIdAfter(userE.getCorpinfoId()); this.setCorpinfoNameAfter(corpName); @@ -129,6 +136,7 @@ public class UserChangeRecordE extends BaseE { this.setDepartmentNameAfter(name); this.setPostIdAfter(userE.getPostId()); this.setPostNameAfter(userE.getPostName()); + this.setUserNameAfter(userE.getName()); this.setUserStatusAfter(oldUserE.getEmploymentFlag()); this.setStatus(UserChangeRecordStatusEnum.APPROVED.getCode()); } @@ -206,4 +214,3 @@ public class UserChangeRecordE extends BaseE { } } - 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 4e68eb36..41467575 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 @@ -50,6 +50,9 @@ public class UserChangeRecordDO extends BaseDO { //变更前负责岗位名称 @ApiModelProperty(value = "变更前负责岗位名称") private String postNameBefore; + //变更前用户名称 + @ApiModelProperty(value = "变更前用户名称") + private String userNameBefore; //变更前状态 @ApiModelProperty(value = "变更前状态") private Integer userStatusBefore; @@ -71,6 +74,9 @@ public class UserChangeRecordDO extends BaseDO { //变更后负责岗位名称 @ApiModelProperty(value = "变更后负责岗位名称") private String postNameAfter; + //变更后用户名称 + @ApiModelProperty(value = "变更后用户名称") + private String userNameAfter; //变更后状态 @ApiModelProperty(value = "变更后状态") private Integer userStatusAfter; diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java index 35407e2b..fd8553be 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/UserMapper.java @@ -55,5 +55,7 @@ public interface UserMapper extends BaseMapper { List listBase64ByUrl(@Param("params") Map params); void updateEmploymentFlagAndDeleteEnum(Long userId, Integer employmentFlag, String deleteEnum); + + IPage pageByNopermissionAll(IPage iPage, @Param("ew") QueryWrapper queryWrapper); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java index 72d7c950..5bd53dca 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/UserRepository.java @@ -116,5 +116,7 @@ public interface UserRepository extends BaseRepository { List listUserByInfo(Map parmas); void updateEmploymentFlagAndDeleteEnum(Long id, Integer code, String aTrue); + + PageResponse pageByNopermissionAll(Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java index 00c4a9e1..291f4e0b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/UserRepositoryImpl.java @@ -157,6 +157,39 @@ public class UserRepositoryImpl extends BaseRepositoryImpl i return PageHelper.pageToResponse(result, result.getRecords()); } + @Override + public PageResponse pageByNopermissionAll(Map params) { + if (params.get("inDepartmentId") != null) { + Long[] inDepartmentIds = (Long[]) params.get("inDepartmentId"); + if (inDepartmentIds == null || inDepartmentIds.length == 0) { + params.remove("inDepartmentId"); + } + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + List enterpriseType = CorpTypeEnum.getCodesByEnterpriseType((Integer) params.get("enterpriseType")); + if (CollUtil.isNotEmpty(enterpriseType)) { + params.remove("enterpriseType"); + queryWrapper.in("c.type", enterpriseType); + queryWrapper.eq("c.use_flag", 1); + } + List inType = (List) params.get("inType"); + if (CollUtil.isNotEmpty(inType)) { + queryWrapper.in("c.type", inType); + queryWrapper.eq("c.use_flag", 1); + } + params.remove("inType"); + IPage iPage = new Query().getPage(params); + + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "u."); + queryWrapper.apply("(u.employment_flag = 0 OR u.delete_enum = 'FALSE')"); + if (!ObjectUtils.isEmpty(params.get("noMain"))) { + queryWrapper.apply("u.id != u.corpinfo_id"); + } + queryWrapper.orderByAsc("c.corp_order").orderByAsc("u.sort").orderByDesc("u.create_time"); + IPage result = userMapper.pageByNopermissionAll(iPage, queryWrapper); + return PageHelper.pageToResponse(result, result.getRecords()); + } + @DubboReference private ZcloudImgFilesFacade zcloudImgFilesFacade; diff --git a/web-infrastructure/src/main/resources/mapper/UserMapper.xml b/web-infrastructure/src/main/resources/mapper/UserMapper.xml index 9612a9a9..9456a6c2 100644 --- a/web-infrastructure/src/main/resources/mapper/UserMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/UserMapper.xml @@ -605,5 +605,81 @@ delete_enum = #{deleteEnum} WHERE id = #{userId} + +