feat(user): 添加用户变更记录中的姓名字段并实现跨企业变更功能
parent
d57c5e9d1c
commit
a21668bde4
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,6 +76,11 @@ public class UserController {
|
|||
public PageResponse<UserCO> pageByNopermission(@RequestBody UserPageQry qry) {
|
||||
return userService.pageByNopermission(qry);
|
||||
}
|
||||
@ApiOperation("其他页面的用户分页,不需要权限控制,查询所有用户包括已离职和删除用户")
|
||||
@PostMapping("/pageByNopermissionAll")
|
||||
public PageResponse<UserCO> pageByNopermissionAll(@RequestBody UserPageQry qry) {
|
||||
return userService.pageByNopermissionAll(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("所有数据")
|
||||
@GetMapping("/listAll")
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -370,5 +370,15 @@ public class UserQueryExe {
|
|||
public List<UserImgDO> listBase64ByUrl(Map<String, Object> map){
|
||||
return userRepository.listBase64ByUrl(map);
|
||||
}
|
||||
|
||||
public PageResponse<UserCO> pageByNopermissionAll(UserPageQry userPageQry) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(userPageQry);
|
||||
UserE userE = new UserE();
|
||||
userE.dataProcessingRights(AuthContext.getTenantId(), params);
|
||||
PageResponse<UserDO> pageResponse = userRepository.pageByNopermissionAll(params);
|
||||
List<UserCO> examCenterCOS = userCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||
|
||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -273,5 +273,10 @@ public class UserServiceImpl implements UserServiceI {
|
|||
public SingleResponse<Long> updateHumanUser(UserUpdateCmd userUpdateCmd) {
|
||||
return humanUserUpdateExe.updateHumanUser(userUpdateCmd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<UserCO> pageByNopermissionAll(UserPageQry qry) {
|
||||
return userQueryExe.pageByNopermissionAll(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -106,5 +106,7 @@ public interface UserServiceI {
|
|||
SingleResponse<Long> addHumanUser(UserAddCmd cmd);
|
||||
|
||||
SingleResponse<Long> updateHumanUser(UserUpdateCmd userUpdateCmd);
|
||||
|
||||
PageResponse<UserCO> pageByNopermissionAll(UserPageQry qry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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 {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -55,5 +55,7 @@ public interface UserMapper extends BaseMapper<UserDO> {
|
|||
List<UserImgDO> listBase64ByUrl(@Param("params") Map<String, Object> params);
|
||||
|
||||
void updateEmploymentFlagAndDeleteEnum(Long userId, Integer employmentFlag, String deleteEnum);
|
||||
|
||||
IPage<UserDO> pageByNopermissionAll(IPage<UserDO> iPage, @Param("ew") QueryWrapper<UserDO> queryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,5 +116,7 @@ public interface UserRepository extends BaseRepository<UserDO> {
|
|||
List<UserDO> listUserByInfo(Map<String, Object> parmas);
|
||||
|
||||
void updateEmploymentFlagAndDeleteEnum(Long id, Integer code, String aTrue);
|
||||
|
||||
PageResponse<UserDO> pageByNopermissionAll(Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -157,6 +157,39 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
|
|||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<UserDO> pageByNopermissionAll(Map<String, Object> params) {
|
||||
if (params.get("inDepartmentId") != null) {
|
||||
Long[] inDepartmentIds = (Long[]) params.get("inDepartmentId");
|
||||
if (inDepartmentIds == null || inDepartmentIds.length == 0) {
|
||||
params.remove("inDepartmentId");
|
||||
}
|
||||
}
|
||||
QueryWrapper<UserDO> queryWrapper = new QueryWrapper<>();
|
||||
List<Integer> 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<Integer> inType = (List<Integer>) params.get("inType");
|
||||
if (CollUtil.isNotEmpty(inType)) {
|
||||
queryWrapper.in("c.type", inType);
|
||||
queryWrapper.eq("c.use_flag", 1);
|
||||
}
|
||||
params.remove("inType");
|
||||
IPage<UserDO> iPage = new Query<UserDO>().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<UserDO> result = userMapper.pageByNopermissionAll(iPage, queryWrapper);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@DubboReference
|
||||
private ZcloudImgFilesFacade zcloudImgFilesFacade;
|
||||
|
||||
|
|
|
|||
|
|
@ -605,5 +605,81 @@
|
|||
delete_enum = #{deleteEnum}
|
||||
WHERE id = #{userId}
|
||||
</update>
|
||||
|
||||
<select id="pageByNopermissionAll" resultType="com.zcloud.basic.info.persistence.dataobject.UserDO">
|
||||
select
|
||||
d.name as department_name,
|
||||
CASE
|
||||
WHEN c.type IN (3,4, 5) THEN u.post_name
|
||||
ELSE p.post_name
|
||||
END AS post_name,
|
||||
c.corp_name as corpinfoName,
|
||||
u.id,
|
||||
u.user_id,
|
||||
u.username,
|
||||
u.name,
|
||||
u.corpinfo_id,
|
||||
u.main_corp_flag,
|
||||
u.user_type,
|
||||
u.department_id,
|
||||
u.post_id,
|
||||
u.role_id,
|
||||
u.email,
|
||||
u.phone,
|
||||
u.personnel_type,
|
||||
u.personnel_type_name,
|
||||
u.nation,
|
||||
u.nation_name,
|
||||
u.user_id_card,
|
||||
u.user_avatar_url,
|
||||
u.current_address,
|
||||
u.location_address,
|
||||
u.rank_level,
|
||||
u.rank_level_name,
|
||||
u.sort,
|
||||
u.version,
|
||||
u.create_id,
|
||||
u.create_name,
|
||||
u.create_time,
|
||||
u.update_id,
|
||||
u.update_name,
|
||||
u.update_time,
|
||||
u.remarks,
|
||||
u.delete_enum,
|
||||
u.tenant_id,
|
||||
u.org_id,
|
||||
u.env,
|
||||
u.department_leader_flag,
|
||||
u.deputy_leader_flag,
|
||||
u.cultural_level,
|
||||
u.cultural_level_name,
|
||||
u.marital_status,
|
||||
u.marital_status_name,
|
||||
u.political_affiliation,
|
||||
u.political_affiliation_name,
|
||||
u.employment_flag,
|
||||
u.flow_flag,
|
||||
u.rz_flag,
|
||||
CASE
|
||||
WHEN LENGTH(FROM_BASE64(u.user_id_card)) > 0
|
||||
AND MOD(SUBSTRING(FROM_BASE64(u.user_id_card), 17, 1), 2) = 1 THEN
|
||||
'男'
|
||||
WHEN LENGTH(FROM_BASE64(u.user_id_card)) > 0
|
||||
AND MOD(SUBSTRING(FROM_BASE64(u.user_id_card), 17, 1), 2) = 0 THEN
|
||||
'女'
|
||||
END AS sex,
|
||||
|
||||
CASE
|
||||
WHEN LENGTH(FROM_BASE64(u.user_id_card)) > 0 THEN
|
||||
(YEAR(NOW()) - SUBSTRING(FROM_BASE64(u.user_id_card), 7, 4)) ELSE NULL
|
||||
END AS age,
|
||||
|
||||
cast(substring(FROM_BASE64(u.user_id_card), 7, 8) AS DATE) AS birthday
|
||||
from user u
|
||||
left join corp_info c on c.id = u.corpinfo_id
|
||||
left join department d on d.id = u.department_id
|
||||
left join post p on p.id = u.post_id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue