Merge remote-tracking branch 'origin/main' into main

main
SondonYong 2025-12-05 17:35:35 +08:00
commit 842264c192
7 changed files with 63 additions and 26 deletions

View File

@ -6,6 +6,7 @@ import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.security.starter.api.co.DecryptCmd;
import com.zcloud.basic.info.api.CorpInfoServiceI;
import com.zcloud.basic.info.dto.*;
import com.zcloud.basic.info.dto.clientobject.*;
@ -61,12 +62,7 @@ public class CorpInfoController {
}
return SingleResponse.of(corpInfoService.info(id));
}
@ApiOperation("根据登录人密码获取企业手机号相关信息")
@PostMapping("/getEncryInfo/{id}")
public SingleResponse<CorpInfoEncryCO> getEncryInfo(@Validated @RequestBody UserCheckPassWordCmd userCheckPassWordCmd) {
return SingleResponse.of(corpInfoService.getEncryInfo(userCheckPassWordCmd));
}
@ApiOperation("删除")
@PostMapping("/remove/{id}")
@ -125,6 +121,11 @@ public class CorpInfoController {
public SingleResponse<Boolean> verifyCorpInfo() {
return SingleResponse.of(corpInfoService.verifyCorpInfo());
}
@ApiOperation("根据登录人密码获取相关信息")
@PostMapping("/getEncryInfo")
public SingleResponse<DecryptCmd> getEncryInfo(@Validated @RequestBody UserCheckPassWordCmd userCheckPassWordCmd) {
return SingleResponse.of(corpInfoService.getEncryInfo(userCheckPassWordCmd));
}
}

View File

@ -247,10 +247,12 @@ public class UserUpdateExe {
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore);
userChangeRecordGateway.add(userChangeRecordE);
//TODO 处理未完成工作
// List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
// userJobHandoverRepository.saveBatch(allJob);
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
if(CollUtil.isNotEmpty(allJob)) {
userJobHandoverRepository.saveBatch(allJob);
// //TODO 离职发送,循环调用,失败的话,返回失败,
// ResignatioChangeJob(allJob);
ResignatioChangeJob(allJob);
}
}
@ -313,13 +315,16 @@ public class UserUpdateExe {
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.executeReviewStatus(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(),UserChangeRecordStatusEnum.APPROVED.getCode());
userChangeRecordGateway.add(userChangeRecordE);
////TODO 通知GBS用户绑定租户
// TODO 人员离职,相关工作处理,有一个失败则,审批失败
//处理未完成的工作
//获取未完成工作
List<UserJobHandoverDO> allJob = userJobHandoverRepository.getListByChangerRecordId(userChangeRecordE.getUserChangeRecordId());
// ResignatioChangeJob(allJob);
if(CollUtil.isNotEmpty(allJob)){
ResignatioChangeJob(allJob);
}
} else {
//驳回
UserCorpRecordDO userCorpRecordDO = userCorpRecordRepository.getInfoByUserId(userDO.getId(), corpinfoId, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode());
@ -379,6 +384,8 @@ public class UserUpdateExe {
userCorpRecordE.setStartTime( LocalDateTime.now());
userChangeRecordGateway.add(userChangeRecordE);
//TODO 通知GBS用户绑定租户
} else {
//驳回
//驳回
@ -425,8 +432,10 @@ public class UserUpdateExe {
userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION_AUDIT.getCode(), UserChangeRecordStatusEnum.PENDING.getCode(), employmentFlagBefore);
userChangeRecordGateway.add(userChangeRecordE);
//TODO 处理未完成工作
// List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
// userJobHandoverRepository.saveBatch(allJob);
List<UserJobHandoverDO> allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId());
if(CollUtil.isNotEmpty(allJob)){
userJobHandoverRepository.saveBatch(allJob);
}
}
private List<UserJobHandoverDO> getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) {
@ -437,9 +446,17 @@ public class UserUpdateExe {
//隐患id
HiddenStatisticsListQry hiddenStatisticsListQry = new HiddenStatisticsListQry() ;
hiddenStatisticsListQry.setUserId(userId);
MultiResponse<HiddenListByUserCO> hiddenListCOMultiResponse = zcloudHiddenFacade.listByUserId(hiddenStatisticsListQry);
if(CollUtil.isNotEmpty(hiddenListCOMultiResponse.getData())){
hiddenListCOMultiResponse.getData().forEach(info -> {
//隐患要求传入企业id
hiddenStatisticsListQry.setDeptId(corpinfoId);
List<HiddenListByUserCO> hiddenListCOList =null;
try{
MultiResponse<HiddenListByUserCO> hiddenListCOMultiResponse = zcloudHiddenFacade.listByUserId(hiddenStatisticsListQry);
hiddenListCOList = hiddenListCOMultiResponse.getData();
}catch (Exception e){
log.error("获取用户隐患信息异常, userId: {}, corpinfoId: {}", userId, corpinfoId,e);
}
if(CollUtil.isNotEmpty(hiddenListCOList)){
hiddenListCOList.forEach(info -> {
UserJobHandoverDO userJobHandoverDO = new UserJobHandoverDO();
userJobHandoverDO.setUserJobHandoverId(Tools.get32UUID());
userJobHandoverDO.setUserId(userId);
@ -476,6 +493,8 @@ public class UserUpdateExe {
case HIDDENINFO:
HiddenUpdateCmd cmd = new HiddenUpdateCmd();
cmd.setUserId(info.getUserId());
//隐患信息需要传入企业id
cmd.setDeptId(info.getCorpinfoId());
SingleResponse singleResponse = zcloudHiddenFacade.updateHiddenByUserId(cmd);
userJobHandoverRepository.processUserJobHandover(info.getUserChangeRecordId());
//隐患出异常是直接抛异常

View File

@ -1,10 +1,15 @@
package com.zcloud.basic.info.command.query;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.exception.BizException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.security.starter.api.SecurityClientApi;
import com.jjb.saas.security.starter.api.co.DecryptCmd;
import com.jjb.saas.security.starter.serialize.dto.MaskDTO;
import com.jjb.saas.security.starter.util.DesenstizationClientUtil;
import com.jjb.saas.system.client.tenant.request.TenantAddCmd;
import com.zcloud.basic.info.command.convertor.CorpInfoCoConvertor;
import com.zcloud.basic.info.domain.enums.CorpFormTypeEnum;
@ -51,6 +56,8 @@ public class CorpInfoQueryExe {
private final UserQualificationInfoRepository userQualificationInfoRepository;
private final CorpFormRepository corpFormRepository;
private final CorpInfoCoConvertor corpFormCoConvertor;
private final SecurityClientApi securityClientApi;
private final DesenstizationClientUtil desenstizationClientUtil;
/**
@ -101,7 +108,7 @@ public class CorpInfoQueryExe {
corpInfoCO.setSelectfromList(corpFormCoConvertor.converDOsToItemCOs(groupedByType.get(CorpFormTypeEnum.SELECTFROM.getCode())));
return corpInfoCO;
}
public CorpInfoEncryCO CorpInfoEncryCO(UserCheckPassWordCmd userCheckPassWordCmd) {
public DecryptCmd CorpInfoEncryCO(UserCheckPassWordCmd userCheckPassWordCmd) {
UserE userE = new UserE();
BeanUtils.copyProperties(userCheckPassWordCmd, userE);
userE.encryptionPassword();
@ -110,11 +117,14 @@ public class CorpInfoQueryExe {
if(!checkStatus){
throw new BizException("密码错误");
}
CorpInfoDO corpInfoDO = corpInfoRepository.getById(userCheckPassWordCmd.getId());
CorpInfoEncryCO corpInfoCO = new CorpInfoEncryCO();
BeanUtils.copyProperties(corpInfoDO, corpInfoCO);
return corpInfoCO;
String token = AuthContext.getToken();
DecryptCmd decryptCmd = new DecryptCmd();
decryptCmd.setExtValues(userCheckPassWordCmd.getExtValues());
decryptCmd.setFieldKey(userCheckPassWordCmd.getFieldKey());
decryptCmd.setMaskDTO(userCheckPassWordCmd.getMaskInfo());
this.securityClientApi.decrypt(userCheckPassWordCmd.getMaskInfo().getValue(), token);
DecryptCmd decryptCmdResult = desenstizationClientUtil.decryptOne(decryptCmd);
return decryptCmdResult;
}

View File

@ -3,6 +3,7 @@ package com.zcloud.basic.info.service;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.security.starter.api.co.DecryptCmd;
import com.zcloud.basic.info.api.CorpInfoServiceI;
import com.zcloud.basic.info.command.*;
import com.zcloud.basic.info.command.query.CorpInfoQueryExe;
@ -81,7 +82,7 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI {
}
@Override
public CorpInfoEncryCO getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd) {
public DecryptCmd getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd) {
return corpInfoQueryExe.CorpInfoEncryCO(userCheckPassWordCmd);
}

View File

@ -2,6 +2,7 @@ package com.zcloud.basic.info.api;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.security.starter.api.co.DecryptCmd;
import com.zcloud.basic.info.dto.*;
import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO;
import com.zcloud.basic.info.dto.clientobject.CorpInfoCO;
@ -50,6 +51,6 @@ public interface CorpInfoServiceI {
Boolean verifyCorpInfo();
CorpInfoEncryCO getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd);
DecryptCmd getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd);
}

View File

@ -1,6 +1,8 @@
package com.zcloud.basic.info.dto;
import com.alibaba.cola.dto.Command;
import com.jjb.saas.security.starter.api.co.DecryptCmd;
import com.jjb.saas.security.starter.serialize.dto.MaskDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -28,5 +30,11 @@ public class UserCheckPassWordCmd extends Command {
@NotEmpty(message = "密码不能为空")
private String password;
@ApiModelProperty(value = "加密信息", name = "isEncrypted")
private MaskDTO maskInfo;
@ApiModelProperty(value = "加密字段", name = "fieldKey")
private String fieldKey;
}

View File

@ -25,17 +25,14 @@ public class CorpInfoEncryCO implements Serializable {
//主要负责人手机号
@ApiModelProperty(value = "主要负责人手机号")
@MobilePhoneMask
private String contactsPhone;
//安全负责人手机号
@ApiModelProperty(value = "安全负责人手机号")
@MobilePhoneMask
private String safetyPhone;
//法人手机号
@ApiModelProperty(value = "法人手机号")
@MobilePhoneMask
private String lrMobile;
}