From b42ab32a1a16e213178eab41109663e4817fb4be Mon Sep 17 00:00:00 2001 From: zhaokai Date: Fri, 5 Dec 2025 17:11:40 +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 --- .../basic/info/web/CorpInfoController.java | 11 +++--- .../basic/info/command/UserUpdateExe.java | 39 ++++++++++++++----- .../info/command/query/CorpInfoQueryExe.java | 22 ++++++++--- .../info/service/CorpInfoServiceImpl.java | 3 +- .../basic/info/api/CorpInfoServiceI.java | 3 +- .../basic/info/dto/UserCheckPassWordCmd.java | 8 ++++ .../dto/clientobject/CorpInfoEncryCO.java | 3 -- 7 files changed, 63 insertions(+), 26 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java index e10b760..360400c 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java @@ -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 getEncryInfo(@Validated @RequestBody UserCheckPassWordCmd userCheckPassWordCmd) { - return SingleResponse.of(corpInfoService.getEncryInfo(userCheckPassWordCmd)); - } @ApiOperation("删除") @PostMapping("/remove/{id}") @@ -125,6 +121,11 @@ public class CorpInfoController { public SingleResponse verifyCorpInfo() { return SingleResponse.of(corpInfoService.verifyCorpInfo()); } + @ApiOperation("根据登录人密码获取相关信息") + @PostMapping("/getEncryInfo") + public SingleResponse getEncryInfo(@Validated @RequestBody UserCheckPassWordCmd userCheckPassWordCmd) { + return SingleResponse.of(corpInfoService.getEncryInfo(userCheckPassWordCmd)); + } } 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 7e160a1..e93e61c 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 @@ -247,10 +247,12 @@ public class UserUpdateExe { userChangeRecordE.executeResignation(userE, UserEmploymentFlagEnum.RESIGNATION.getCode(), UserChangeRecordStatusEnum.APPROVED.getCode(), employmentFlagBefore); userChangeRecordGateway.add(userChangeRecordE); //TODO 处理未完成工作 -// List allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); -// userJobHandoverRepository.saveBatch(allJob); + List 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 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 allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); -// userJobHandoverRepository.saveBatch(allJob); + List allJob = getUserJob(userDO.getId(),corpinfoId,userChangeRecordE.getUserChangeRecordId()); + if(CollUtil.isNotEmpty(allJob)){ + userJobHandoverRepository.saveBatch(allJob); + } } private List getUserJob(Long userId, Long corpinfoId, String userChangeRecordId) { @@ -437,9 +446,17 @@ public class UserUpdateExe { //隐患id HiddenStatisticsListQry hiddenStatisticsListQry = new HiddenStatisticsListQry() ; hiddenStatisticsListQry.setUserId(userId); - MultiResponse hiddenListCOMultiResponse = zcloudHiddenFacade.listByUserId(hiddenStatisticsListQry); - if(CollUtil.isNotEmpty(hiddenListCOMultiResponse.getData())){ - hiddenListCOMultiResponse.getData().forEach(info -> { + //隐患要求传入企业id + hiddenStatisticsListQry.setDeptId(corpinfoId); + List hiddenListCOList =null; + try{ + MultiResponse 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()); //隐患出异常是直接抛异常 diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java index d29f430..c933ca5 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java @@ -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; } diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java index 0b09d93..dba6dc5 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java @@ -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); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java index 08613d9..8f97721 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java +++ b/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java @@ -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); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/UserCheckPassWordCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/UserCheckPassWordCmd.java index 0a5326e..ea35999 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/UserCheckPassWordCmd.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/UserCheckPassWordCmd.java @@ -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; + + } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpInfoEncryCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpInfoEncryCO.java index d0c3736..56163df 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpInfoEncryCO.java +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpInfoEncryCO.java @@ -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; }