相关方入职离职

dev_xiangguanfang
zhaokai 2025-12-29 16:14:50 +08:00
parent d7cca04f8f
commit b78a92f630
5 changed files with 102 additions and 155 deletions

View File

@ -319,14 +319,6 @@ public class UserAddExe {
throw new BizException("保存失败");
}
if(UserFlowFlagEnum.FLOW.getCode().equals(cmd.getFlowFlag())){
//流动人员
UserCorpE userCorpE = new UserCorpE();
// BeanUtils.copyProperties(userE, userCorpE);
// userCorpE.setCorpinfoId(tenantId);
userCorpE.initAdd(tenantId, userE);
userCorpGateway.add(userCorpE);
}
//页面相关保存user_corp
/**
*

View File

@ -26,14 +26,8 @@ import com.zcloud.gbscommon.zcloudhidden.face.ZcloudHiddenFacade;
import com.zcloud.gbscommon.zcloudhidden.request.HiddenStatisticsListQry;
import com.zcloud.gbscommon.zcloudhidden.request.HiddenUpdateCmd;
import com.zcloud.gbscommon.zcloudhidden.response.HiddenListByUserCO;
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.request.ZcloudUserJobQry;
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserJobCo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.User;
@ -193,28 +187,18 @@ public class UserUpdateExe {
BeanUtils.copyProperties(cmd, userDO);
return userRepository.updateFaceUrl(userDO);
}
@Transactional(rollbackFor = Exception.class)
public void executeResignation(UserResignationCmd userResignationCmd) {
//获取用户信息,并更新离职状态为离职
UserDO userDO = userRepository.getInfoById(userResignationCmd.getUserId());
//
UserE userE = null;
Long corpinfoId = userResignationCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : userResignationCmd.getCorpinfoId();
Integer employmentFlagBefore;
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
UserCorpDO userCorpDO = userCorpRepository.getInfoByUserId(userDO.getId(), corpinfoId);
if (userCorpDO == null) {
return;
}
employmentFlagBefore = userCorpDO.getEmploymentFlag();
userE = userCorpRepository.executeResignation(userCorpDO, corpinfoId, UserEmploymentFlagEnum.RESIGNATION.getCode());
} else {
userE = new UserE();
BeanUtils.copyProperties(userDO, userE);
employmentFlagBefore = userDO.getEmploymentFlag();
Integer employmentFlagBefore = userDO.getEmploymentFlag();
userE.setEmploymentFlag(UserEmploymentFlagEnum.RESIGNATION.getCode());
userGateway.update(userE);
}
if (userE == null) {
return;
}
@ -253,6 +237,7 @@ public class UserUpdateExe {
}
@Transactional(rollbackFor = Exception.class)
public void executeReviewStatus(UserReviewStatusCmd userReviewStatusCmd) {
//获取用户信息,并更新审核状态
UserDO userDO = userRepository.getInfoById(userReviewStatusCmd.getUserId());
@ -278,17 +263,17 @@ public class UserUpdateExe {
Integer employmentFlag = UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus) ? UserEmploymentFlagEnum.RESIGNATION.getCode() : UserEmploymentFlagEnum.ON.getCode();
UserE userE = null;
Long corpinfoId = userReviewStatusCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : userReviewStatusCmd.getCorpinfoId();
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
/* if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
userE = userCorpRepository.executeReviewStatus(userDO.getId(), corpinfoId, employmentFlag);
} else {
} else {*/
userE = new UserE();
BeanUtils.copyProperties(userDO, userE);
userE.setEmploymentFlag(employmentFlag);
userGateway.update(userE);
}
if (userE == null) {
return;
}
// }
// if (userE == null) {
// return;
// }
UserE userEOld = new UserE();
BeanUtils.copyProperties(userDO, userEOld);
if (UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus)) {
@ -344,14 +329,14 @@ public class UserUpdateExe {
Integer employmentFlag = UserChangeRecordStatusEnum.APPROVED.getCode().equals(reviewStatus) ? UserEmploymentFlagEnum.ON.getCode() : UserEmploymentFlagEnum.NOT_ON.getCode();
UserE userE = null;
Long corpinfoId = userReviewStatusCmd.getCorpinfoId() == null ? AuthContext.getTenantId() : userReviewStatusCmd.getCorpinfoId();
if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
/* if (UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())) {
userE = userCorpRepository.executeReviewStatus(userDO.getId(), corpinfoId, employmentFlag);
} else {
} else {*/
userE = new UserE();
BeanUtils.copyProperties(userDO, userE);
userE.setEmploymentFlag(employmentFlag);
userGateway.update(userE);
}
// }
if (userE == null) {
return;
}
@ -385,7 +370,8 @@ public class UserUpdateExe {
userAddCmd.setRoleDepts(roleDeptAddCmdList);
// userAddCmd.setTenantId(userDO.getCorpinfoId());
userAddCmd.setPassword(userDO.getPassword());
log.info("GBS入职处理开始,用户id:{}", userDO.getId());
userAddCmd.setId(userDO.getId());
log.info("GBS入职处理开始,用户id:{},请求参数:{}", userDO.getId(), JSONUtil.toJsonStr(userAddCmd));
SingleResponse<Long> gbsResult = userFacade.add(userAddCmd);
log.info("GBS入职处理结束,用户id:{},结果:{}", userDO.getId(), JSONUtil.toJsonStr(gbsResult));
userDO.setId(gbsResult.getData());
@ -523,14 +509,14 @@ public class UserUpdateExe {
userJobHandoverRepository.processUserJobHandover(info.getUserChangeRecordId());
//隐患出异常是直接抛异常
break;
case RISK:
ListManagerStatusUpdateCmd riskCmd = new ListManagerStatusUpdateCmd();
riskCmd.setUserId(info.getUserId());
riskCmd.setCorpinfoId(info.getCorpinfoId());
zcloudRiskFacade.updateListManagerStatusByUserId(riskCmd);
userJobHandoverRepository.processUserJobHandover(info.getUserChangeRecordId());
// case RISK:
// ListManagerStatusUpdateCmd riskCmd = new ListManagerStatusUpdateCmd();
// riskCmd.setUserId(info.getUserId());
// riskCmd.setCorpinfoId(info.getCorpinfoId());
// zcloudRiskFacade.updateListManagerStatusByUserId(riskCmd);
// userJobHandoverRepository.processUserJobHandover(info.getUserChangeRecordId());
//风险辨识检查出异常是直接抛异常
break;
// break;
}
});

View File

@ -63,7 +63,6 @@ public class UserCorpRecordQueryExe {
return null;
}
UserCorpRecordCO userCorpRecordCO = userCorpRecordCoConvertor.convertDOToCO(userCorpRecordDO);
//补充用户信息
Long userId = userCorpRecordDO.getUserId();
UserDO userDO = userRepository.getInfoById(userId);

View File

@ -1,5 +1,6 @@
package com.zcloud.basic.info.persistence.repository.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
@ -303,22 +304,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
if (StringUtils.isEmpty(userDO.getUsername())) {
userDO.setUsername(userDO.getPhone());
}
//TODO 流动人员同步gbs需要指定特殊tenantId
// if(UserFlowFlagEnum.FLOW.getCode().equals(userDO.getFlowFlag())){
// FacadeUserRegisterCmd facadeUserRegisterCmd = new FacadeUserRegisterCmd();
// facadeUserRegisterCmd.setAccount(userDO.getUsername());
// facadeUserRegisterCmd.setName(userDO.getName());
// facadeUserRegisterCmd.setMobile(userDO.getPhone());
// facadeUserRegisterCmd.setPassword(userDO.getPassword());
// facadeUserRegisterCmd.setTenantId(1111111L);
// facadeUserRegisterCmd.setAppKey("");
// facadeUserRegisterCmd.setOrgId(11111L);
//// facadeUserRegisterCmd.setRoleCodes(Collections.singletonList(userDO.getRoleId()));
//
// SingleResponse<Long> register = userFacade.register(facadeUserRegisterCmd);
// userDO.setId(register.getData());
// userDO.setCorpinfoId(null);
// }else{
UserAddCmd userAddCmd = new UserAddCmd();
userAddCmd.setAccount(userDO.getUsername());
userAddCmd.setName(userDO.getName());
@ -329,7 +315,6 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
userAddCmd.setRoleDepts(roleDeptAddCmdList);
SingleResponse<Long> gbsResult = userFacade.add(userAddCmd);
userDO.setId(gbsResult.getData());
// }
if (userDO.getSort() == null) {
userDO.setSort(9999);
@ -361,18 +346,36 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
@Override
public void changePassword(Long id, String password) {
//修改这个手机号下所有密码
UserDO userDO = getById( id);
if(userDO==null){
return;
}
String phone = userDO.getPhone();
if(StringUtils.isEmpty( phone)){
userChangePassword(id, password);
}else{
List<UserDO> userDOList = list(new QueryWrapper<UserDO>().eq("phone", phone));
for (UserDO userDO1 : userDOList) {
userChangePassword(userDO1.getId(), password);
}
}
}
private void userChangePassword(Long id, String password) {
//更新本地密码
UserDO userDOUpdate = new UserDO();
userDOUpdate.setId(id);
userDOUpdate.setPassword(password);
updateById(userDOUpdate);
//更新gbs密码
UserUpdatePasswordCmd userUpdatePasswordCmd = new UserUpdatePasswordCmd();
userUpdatePasswordCmd.setId(id);
userUpdatePasswordCmd.setPassword(password);
log.info("更新用户密码id{}", id);
Response response = userFacade.updatePassword(userUpdatePasswordCmd);
log.info("更新密码结果:{}", response);
}
@Override
@ -432,7 +435,18 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
return Response.buildFailure("原密码不正确");
}
}
//更新本地密码
//修改多个密码
String phone = userDO.getPhone();
if(StringUtils.isEmpty( phone)){
userChangePassword(userDO.getId(), userDO.getNewPassword());
}else{
List<UserDO> userDOList = list(new QueryWrapper<UserDO>().eq("phone", phone));
for (UserDO userDO1 : userDOList) {
userChangePassword(userDO1.getId(), userDO.getNewPassword());
}
}
return Response.buildSuccess();
/* //更新本地密码
UserDO userDOUpdate = new UserDO();
userDOUpdate.setId(userDO.getId());
userDOUpdate.setPassword(userDO.getNewPassword());
@ -442,7 +456,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> i
UserUpdatePasswordCmd userUpdatePasswordCmd = new UserUpdatePasswordCmd();
userUpdatePasswordCmd.setId(userDO.getId());
userUpdatePasswordCmd.setPassword(userDO.getNewPassword());
return userFacade.updatePassword(userUpdatePasswordCmd);
return userFacade.updatePassword(userUpdatePasswordCmd);*/
}
@Override

View File

@ -301,72 +301,29 @@
u.sort AS sort,
u.department_leader_flag AS departmentLeaderFlag,
u.flow_flag AS flowFlag,
cp.user_corp_id as userCorpId,
CASE
WHEN u.flow_flag = 0 THEN u.employment_flag
WHEN u.flow_flag = 1 THEN cp.employment_flag
END AS employmentFlag,
CASE
WHEN u.flow_flag = 0 THEN ud.name
WHEN u.flow_flag = 1 THEN cpd.name
END AS departmentName,
CASE
WHEN u.flow_flag = 0 THEN cu.corp_name
WHEN u.flow_flag = 1 THEN ccp.corp_name
END AS corpName,
CASE
WHEN u.flow_flag = 0 THEN u.department_id
WHEN u.flow_flag = 1 THEN cp.department_id
END AS departmentId,
CASE
WHEN u.flow_flag = 0 THEN u.corpinfo_id
WHEN u.flow_flag = 1 THEN cp.corpinfo_id
END AS corpinfoId
u.employment_flag AS employmentFlag,
ud.name AS departmentName,
cu.corp_name AS corpName,
u.department_id AS departmentId,
u.corpinfo_id AS corpinfoId
FROM
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 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
LEFT JOIN corp_info ccp ON cp.corpinfo_id = ccp.id
WHERE
(
u.corpinfo_id IS NULL
OR u.corpinfo_id = ''
OR u.id != u.corpinfo_id
)
u.id != u.corpinfo_id
AND u.delete_enum = 'FALSE'
<if test="params.eqCorpinfoId != null">
AND (
(u.flow_flag = 0 AND u.corpinfo_id = #{params.eqCorpinfoId} and u.employment_flag !='3')
OR
(u.flow_flag = 1 AND cp.corpinfo_id = #{params.eqCorpinfoId} and cp.employment_flag !='3')
)
AND u.corpinfo_id = #{params.eqCorpinfoId} and u.employment_flag !='3'
</if>
<if test="params.eqDepartmentId != null and params.eqDepartmentId != ''">
AND (
(u.flow_flag = 0 AND u.department_id = #{params.eqDepartmentId} )
OR
(u.flow_flag = 1 AND cp.id = #{params.eqDepartmentId} )
)
AND u.department_id = #{params.eqDepartmentId}
</if>
<if test="params.inDepartmentId != null and params.inDepartmentId.length > 0">
AND (
(u.flow_flag = 0 AND u.department_id IN
u.department_id IN
<foreach collection="params.inDepartmentId" item="departmentId" open="(" close=")" separator=",">
#{departmentId}
</foreach>
)
OR
(u.flow_flag = 1 AND cp.id IN
<foreach collection="params.inDepartmentId" item="departmentId" open="(" close=")" separator=",">
#{departmentId}
</foreach>
)
)
</if>
<if test="params.likeName != null and params.likeName != ''">
AND u.name LIKE CONCAT('%', #{params.likeName}, '%')
@ -378,7 +335,6 @@
AND u.employment_flag = #{params.eqEmploymentFlag}
</if>
ORDER BY
u.sort ASC, u.create_time DESC