diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/util/StringUtils.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/util/StringUtils.java index 2bdee5f69..0b16825d9 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/util/StringUtils.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/util/StringUtils.java @@ -5,6 +5,7 @@ import org.apache.commons.collections.CollectionUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * @Author: liyawei @@ -129,5 +130,18 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { return String.valueOf(param); } } + + /** + * 字符串去重 + * @param values + * @return + */ + public static String strDistinct(String values){ + String result = ""; + if (StringUtils.isNotEmpty(values)) { + result = Arrays.asList(values.split(",")).stream().distinct().collect(Collectors.joining(",")); + } + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java index 9cb232dbd..1f69ce4a9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsManifestEOService.java @@ -1,5 +1,6 @@ package com.jero.modules.cert.collect.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -107,4 +108,10 @@ public interface IParamsManifestEOService extends IService { * @return */ List getUserDutyTerritoryList(Map params); + + /** + * 替换用户 + * @param json + */ + void replacementUser(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java index 0ed131daf..1f2dfcac3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsManifestEOServiceImpl.java @@ -2,6 +2,7 @@ package com.jero.modules.cert.collect.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -1151,7 +1152,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl pcmQueryWrap = new QueryWrapper<>(); pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmEoIdList); pcmQueryWrap.and(pcmQuery -> { - pcmQuery.lambda().eq(ParamsCollectManifestEO::getDre,userName).or().like(ParamsCollectManifestEO::getSdt,userName); + pcmQuery.lambda().eq(ParamsCollectManifestEO::getDre,userName).or().eq(ParamsCollectManifestEO::getSdt,userName); }); List pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap); if(CollectionUtils.isNotEmpty(pcmEoList)){ @@ -1171,4 +1172,48 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl> replacementUserList = (List>) json.get("replacementUserList"); + + QueryWrapper pmQueryWrap = new QueryWrapper<>(); + pmQueryWrap.lambda().like(ParamsManifestEO::getProjectId,projectLibraryId); + List pmEoList = this.list(pmQueryWrap); + if (CollectionUtils.isNotEmpty(pmEoList)) { + List pmEoIdList = pmEoList.stream().map(ParamsManifestEO::getId).distinct().collect(Collectors.toList()); + QueryWrapper pcmQueryWrap = new QueryWrapper<>(); + pcmQueryWrap.lambda().in(ParamsCollectManifestEO::getParamsManifestId,pmEoIdList); + List pcmEoList = this.paramsCollectManifestEOService.list(pcmQueryWrap); + if(CollectionUtils.isNotEmpty(pcmEoList)){ + List updateEoList = new ArrayList<>(); + for (Map replacementUserMap : replacementUserList) { + String dutyTerritory = (String) replacementUserMap.get("dutyTerritory"); + String newUserName = (String) replacementUserMap.get("newUserName"); + if (StringUtils.isNotEmpty(newUserName)) { + for (ParamsCollectManifestEO pcmEo : pcmEoList) { + if (StringUtils.equals(pcmEo.getDutyTerritory(), dutyTerritory) && !StringUtils.equals(pcmEo.getState(),CollectManifestStateEnum.SYNC_REPORT.getValue())) { + if (StringUtils.equals(pcmEo.getDre(), userName)) { + pcmEo.setDre(newUserName); + } + if (StringUtils.equals(pcmEo.getSdt(), userName)) { + pcmEo.setSdt(newUserName); + } + updateEoList.add(pcmEo); + } + } + } + } + if(CollectionUtils.isNotEmpty(updateEoList)){ + this.paramsCollectManifestEOService.updateBatchById(updateEoList); + } + } + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java index 5636ba5f1..13dc0cc81 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java @@ -300,4 +300,11 @@ public class ProjectLibraryBaseController extends JeroController resList = this.projectLibraryBaseService.getUserAllDutyTerritoryList(params); return Result.OK(resList); } + + @AutoLog(value = "全局替换用户") + @ApiOperation(value="全局替换用户", notes="全局替换用户") + @PostMapping(value = "/overallReplacementUser") + public Result overallReplacementUser(@RequestBody JSONObject json){ + return this.projectLibraryBaseService.overallReplacementUser(json); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java index 42072e6fb..de028cf67 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectCertificationInventoryEOService.java @@ -326,4 +326,10 @@ public interface IProjectCertificationInventoryEOService extends IService getUserDutyTerritoryList(Map params); + + /** + * 替换用户 + * @param json + */ + void replacementUser(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index 2f3da9490..f4e393ca5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -316,4 +316,10 @@ public interface IProjectLawsInventoryEOService extends IService getUserDutyTerritoryList(Map params); + + /*** + * 替换用户 + * @param params + */ + void replacementUser(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index c3ac81e88..b5009e368 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -1,8 +1,10 @@ package com.jero.modules.project.service; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.common.api.vo.Result; import com.jero.common.system.vo.DictModel; import com.jero.modules.project.entity.ProjectLibraryBase; @@ -175,4 +177,11 @@ public interface IProjectLibraryBaseService extends IService * @return */ List getUserAllDutyTerritoryList(Map params); + + /** + * 全局替换用户 + * @param json + * @return + */ + Result overallReplacementUser(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java index 979479e95..6e9f292bc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java @@ -1,5 +1,6 @@ package com.jero.modules.project.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.common.system.vo.DictModel; @@ -112,4 +113,10 @@ public interface IProjectRelatedPersonnelService extends IService getUserDutyTerritoryList(Map params); + + /** + * 替换用户 + * @param json + */ + void replacementUser(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/editImpl/ProjectLawsInventoryEOEditServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/editImpl/ProjectLawsInventoryEOEditServiceImpl.java index 1debeba94..90140d596 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/editImpl/ProjectLawsInventoryEOEditServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/editImpl/ProjectLawsInventoryEOEditServiceImpl.java @@ -242,65 +242,69 @@ public class ProjectLawsInventoryEOEditServiceImpl { List verifyTaskIdList = new ArrayList<>(); List updatePidEoList = new ArrayList<>(); for (ProjectLawsInventoryEO oldPliEo : oldPliEoList) { - boolean designDutyTaskFlag = ( - StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) - || StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) - || StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.INCONFORMITY.getValue()) - || StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.TO_TRACK.getValue()) - ); - // 如果旧符合性责任人不等于新的符合性责任人,并且设计符合性流程状态是 任务待确认、结果待提交、不符合、待追踪。则代表当前任务在责任人身上,需要将旧的责任人待办任务,转给新的责任人。 - if (!StringUtils.equals(newPliEo.getDesignDutyId(), oldPliEo.getDesignDutyId()) && designDutyTaskFlag) { - // 过滤出来,设计符合性流程,并且是责任人操作节点的数据,转办给新的责任人 - List designPidEoList = pidEoList.stream().filter(pidEo -> { - boolean flag = ( - StringUtils.equals(pidEo.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue()) - && ( - StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.ZRRQR.getValue()) - ||StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.DEZRRQR.getValue()) - ||StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue()) - ||StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue()) - ) - && StringUtils.equals(pidEo.getStatus(), TaskStatusEnum.NOT_DONE.getValue()) - ); - return flag; - }).collect(Collectors.toList()); - if(CollectionUtils.isNotEmpty(designPidEoList)){ - designPidEoList.forEach(designPidEo -> { - designPidEo.setUserId(newPliEo.getDesignDutyId()); - }); - updatePidEoList.addAll(designPidEoList); - designTaskIdList.addAll(designPidEoList.stream().map(ProcessInfoDetailEO::getTaskId).collect(Collectors.toList())); + if(StringUtils.isNotEmpty(newPliEo.getDesignDutyId())){ + boolean designDutyTaskFlag = ( + StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + || StringUtils.equals(oldPliEo.getDesignFlowStatus(), ComplianceFlowStatusEnum.TO_TRACK.getValue()) + ); + // 如果旧符合性责任人不等于新的符合性责任人,并且设计符合性流程状态是 任务待确认、结果待提交、不符合、待追踪。则代表当前任务在责任人身上,需要将旧的责任人待办任务,转给新的责任人。 + if (!StringUtils.equals(newPliEo.getDesignDutyId(), oldPliEo.getDesignDutyId()) && designDutyTaskFlag) { + // 过滤出来,设计符合性流程,并且是责任人操作节点的数据,转办给新的责任人 + List designPidEoList = pidEoList.stream().filter(pidEo -> { + boolean flag = ( + StringUtils.equals(pidEo.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue()) + && ( + StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.ZRRQR.getValue()) + ||StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.DEZRRQR.getValue()) + ||StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue()) + ||StringUtils.equals(pidEo.getTaskDefinitionKey(), DesignComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue()) + ) + && StringUtils.equals(pidEo.getStatus(), TaskStatusEnum.NOT_DONE.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(designPidEoList)){ + designPidEoList.forEach(designPidEo -> { + designPidEo.setUserId(newPliEo.getDesignDutyId()); + }); + updatePidEoList.addAll(designPidEoList); + designTaskIdList.addAll(designPidEoList.stream().map(ProcessInfoDetailEO::getTaskId).collect(Collectors.toList())); + } } } - boolean verifyDutyTaskFlag = ( - StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) - || StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) - || StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.INCONFORMITY.getValue()) - || StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.TO_TRACK.getValue()) - ); - // 如果验证符合性流程状态是 任务待确认、结果待提交、不符合、待追踪,则代表当前任务在责任人身上,需要将旧的责任人待办任务,转给新的责任人。 - if (!StringUtils.equals(newPliEo.getVerifyDutyId(), oldPliEo.getVerifyDutyId()) && verifyDutyTaskFlag) { - // 过滤出来,验证符合性流程,并且是责任人操作节点的数据,转办给新的责任人 - List verifyPidEoList = pidEoList.stream().filter(pidEo -> { - boolean flag = ( - StringUtils.equals(pidEo.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue()) - && ( - StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue()) - ||StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.DEZRRQR.getValue()) - ||StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue()) - ||StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue()) - ) - && StringUtils.equals(pidEo.getStatus(), TaskStatusEnum.NOT_DONE.getValue()) - ); - return flag; - }).collect(Collectors.toList()); - if(CollectionUtils.isNotEmpty(verifyPidEoList)){ - verifyPidEoList.forEach(verifyPidEo -> { - verifyPidEo.setUserId(newPliEo.getVerifyDutyId()); - }); - updatePidEoList.addAll(verifyPidEoList); - verifyTaskIdList.addAll(verifyPidEoList.stream().map(ProcessInfoDetailEO::getTaskId).collect(Collectors.toList())); + if(StringUtils.isNotEmpty(newPliEo.getVerifyDutyId())){ + boolean verifyDutyTaskFlag = ( + StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()) + || StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()) + || StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.INCONFORMITY.getValue()) + || StringUtils.equals(oldPliEo.getVerifyFlowStatus(), ComplianceFlowStatusEnum.TO_TRACK.getValue()) + ); + // 如果验证符合性流程状态是 任务待确认、结果待提交、不符合、待追踪,则代表当前任务在责任人身上,需要将旧的责任人待办任务,转给新的责任人。 + if (!StringUtils.equals(newPliEo.getVerifyDutyId(), oldPliEo.getVerifyDutyId()) && verifyDutyTaskFlag) { + // 过滤出来,验证符合性流程,并且是责任人操作节点的数据,转办给新的责任人 + List verifyPidEoList = pidEoList.stream().filter(pidEo -> { + boolean flag = ( + StringUtils.equals(pidEo.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue()) + && ( + StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue()) + ||StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.DEZRRQR.getValue()) + ||StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue()) + ||StringUtils.equals(pidEo.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue()) + ) + && StringUtils.equals(pidEo.getStatus(), TaskStatusEnum.NOT_DONE.getValue()) + ); + return flag; + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(verifyPidEoList)){ + verifyPidEoList.forEach(verifyPidEo -> { + verifyPidEo.setUserId(newPliEo.getVerifyDutyId()); + }); + updatePidEoList.addAll(verifyPidEoList); + verifyTaskIdList.addAll(verifyPidEoList.stream().map(ProcessInfoDetailEO::getTaskId).collect(Collectors.toList())); + } } } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java index c5cb6235e..35f1d62ca 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectCertificationInventoryEOServiceImpl.java @@ -6240,8 +6240,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl pciQueryWrap = new QueryWrapper<>(); pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId); pciQueryWrap.and(pciQuery -> { - pciQuery.lambda().like(ProjectCertificationInventoryEO::getDutyPerson,userId) - .or().like(ProjectCertificationInventoryEO::getSdt,userId); + pciQuery.lambda().eq(ProjectCertificationInventoryEO::getDutyPerson,userId) + .or().eq(ProjectCertificationInventoryEO::getSdt,userId); }); List pciEoList = this.list(pciQueryWrap); @@ -6265,4 +6265,48 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl> replacementUserList = (List>) json.get("replacementUserList"); + + QueryWrapper pciQueryWrap = new QueryWrapper<>(); + pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryId); + List pciEoList = this.list(pciQueryWrap); + + List updateEoList = new ArrayList<>(); + for (Map replacementUserMap : replacementUserList) { + String dutyTerritory = (String) replacementUserMap.get("dutyTerritory"); + String newUserId = (String) replacementUserMap.get("newUserId"); + if (StringUtils.isNotEmpty(newUserId)) { + for (ProjectCertificationInventoryEO pciEo : pciEoList) { + if (StringUtils.equals(pciEo.getDutyTerritory(), dutyTerritory)) { + if (StringUtils.equals(pciEo.getDutyPerson(), userId)) { + ProjectCertificationInventoryEO newPciEo = new ProjectCertificationInventoryEO(); + newPciEo.setId(pciEo.getId()); + newPciEo.setDutyPerson(newUserId); + + QueryWrapper certificationQueryWrap = new QueryWrapper<>(); + certificationQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getId,pciEo.getId()); + List oldPciEoList = this.list(certificationQueryWrap); + // 编辑责任人处理逻辑 + this.editDutyPerson(newPciEo, oldPciEoList); + + pciEo.setDutyPerson(newUserId); + } + if (StringUtils.equals(pciEo.getSdt(), userId)) { + pciEo.setSdt(newUserId); + } + updateEoList.add(pciEo); + } + } + } + } + + if (CollectionUtils.isNotEmpty(updateEoList)) { + this.updateBatchById(updateEoList); + } + } + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index a1f73b762..9c71cf3f7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -13694,9 +13694,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl pliQueryWrap = new QueryWrapper<>(); pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); pliQueryWrap.and(pliQuery -> { - pliQuery.lambda().like(ProjectLawsInventoryEO::getRegulationOwnerId,userId) - .or().like(ProjectLawsInventoryEO::getDesignDutyId,userId) - .or().like(ProjectLawsInventoryEO::getVerifyDutyId,userId); + pliQuery.lambda().eq(ProjectLawsInventoryEO::getRegulationOwnerId,userId) + .or().eq(ProjectLawsInventoryEO::getDesignDutyId,userId) + .or().eq(ProjectLawsInventoryEO::getVerifyDutyId,userId); }); List pliEoList = this.list(pliQueryWrap); if(CollectionUtils.isNotEmpty(pliEoList)){ @@ -13718,4 +13718,56 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl> replacementUserList = (List>) json.get("replacementUserList"); + + QueryWrapper pliQueryWrap = new QueryWrapper<>(); + pliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId, projectLibraryId); + List pliEoList = this.list(pliQueryWrap); + + List updateEoList = new ArrayList<>(); + for (Map replacementUserMap : replacementUserList) { + String dutyTerritory = (String) replacementUserMap.get("dutyTerritory"); + String newUserId = (String) replacementUserMap.get("newUserId"); + if (StringUtils.isNotEmpty(newUserId)) { + for (ProjectLawsInventoryEO pliEo : pliEoList) { + if (StringUtils.contains(pliEo.getDutyTerritory(), dutyTerritory)) { + QueryWrapper oldPliQueryWrap = new QueryWrapper<>(); + oldPliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getId,pliEo.getId()); + List oldPliEoList = this.list(oldPliQueryWrap); + ProjectLawsInventoryEO newPliEo = new ProjectLawsInventoryEO(); + + if (StringUtils.equals(pliEo.getRegulationOwnerId(), userId)) { + newPliEo.setRegulationOwnerId(newUserId); + // 处理编辑法规工程师的逻辑 + this.editService.updateRegulationOwner(newPliEo, oldPliEoList); + pliEo.setRegulationOwnerId(newUserId); + } + if (StringUtils.equals(pliEo.getEngineeringInterfacePerson(), userId)) { + pliEo.setEngineeringInterfacePerson(newUserId); + } + if (StringUtils.equals(pliEo.getDesignDutyId(), userId)) { + newPliEo.setDesignDutyId(newUserId); + pliEo.setDesignDutyId(newUserId); + } + if (StringUtils.equals(pliEo.getVerifyDutyId(), userId)) { + newPliEo.setVerifyDutyId(newUserId); + pliEo.setVerifyDutyId(newUserId); + } + + // 处理编辑责任人的逻辑 + this.editService.updateDutyPerson(newPliEo, oldPliEoList); + updateEoList.add(pliEo); + } + } + } + } + + if (CollectionUtils.isNotEmpty(updateEoList)) { + this.updateBatchById(updateEoList); + } + } } \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 75346a6b7..1d738151d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.api.vo.Result; import com.jero.common.constant.enums.CutEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.DictModel; @@ -2628,6 +2629,23 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl overallReplacementUser(JSONObject json) { + this.projectRelatedPersonnelService.replacementUser(json); + this.projectLawsInventoryEOService.replacementUser(json); + this.projectCertificationInventoryEOService.replacementUser(json); + String projectLibraryId = json.getString("projectLibraryId"); + ProjectLibraryBase projectLibraryBase = this.selectById(projectLibraryId); + json.put("parentId",projectLibraryBase.getParentId()); + this.paramsManifestEOService.replacementUser(json); + return Result.OK("全局替换成功!"); + } + /** * 导出法规符合性管理 * @param workbook diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index ee1097115..8dd5563f2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -1,5 +1,6 @@ package com.jero.modules.project.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -1903,13 +1904,51 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl dutyTerritorySdiList = (List) params.get("dutyTerritorySdiList"); QueryWrapper prpQueryWrap = new QueryWrapper<>(); prpQueryWrap.lambda().eq(ProjectRelatedPersonnel::getProjectId,projectLibraryId); - prpQueryWrap.and(prpQuery -> { - prpQuery.lambda().like(ProjectRelatedPersonnel::getLawEngineer,userId) - .or().like(ProjectRelatedPersonnel::getEngineerLawSet,userId) - .or().like(ProjectRelatedPersonnel::getEngineeringInterfacePerson,userId) - .or().like(ProjectRelatedPersonnel::getEngineerAttSet,userId); - }); List projectRelatedPersonnelList = this.list(prpQueryWrap); + projectRelatedPersonnelList = projectRelatedPersonnelList.stream().filter(prpEo -> { + boolean lawEngineerExistFlag = false; + if(StringUtils.isNotEmpty(prpEo.getLawEngineer())){ + String[] lawEngineerArr = prpEo.getLawEngineer().split(","); + for (String lawEngineer : lawEngineerArr) { + if(StringUtils.equals(lawEngineer,userId)){ + lawEngineerExistFlag = true; + break; + } + } + } + boolean engineerLawSetExistFlag = false; + if(StringUtils.isNotEmpty(prpEo.getEngineerLawSet())){ + String[] engineerLawSetArr = prpEo.getEngineerLawSet().split(","); + for (String engineerLaw : engineerLawSetArr) { + if(StringUtils.equals(engineerLaw,userId)){ + engineerLawSetExistFlag = true; + break; + } + } + } + boolean engineeringInterfacePersonExistFlag = false; + if(StringUtils.isNotEmpty(prpEo.getEngineeringInterfacePerson())){ + String[] engineeringInterfacePersonArr = prpEo.getEngineeringInterfacePerson().split(","); + for (String engineeringInterfacePerson : engineeringInterfacePersonArr) { + if(StringUtils.equals(engineeringInterfacePerson,userId)){ + engineeringInterfacePersonExistFlag = true; + break; + } + } + } + boolean engineerAttSetExistFlag = false; + if(StringUtils.isNotEmpty(prpEo.getEngineerAttSet())){ + String[] engineerAttSetArr = prpEo.getEngineerAttSet().split(","); + for (String engineerAttSet : engineerAttSetArr) { + if(StringUtils.equals(engineerAttSet,userId)){ + engineerAttSetExistFlag = true; + break; + } + } + } + return (lawEngineerExistFlag || engineerLawSetExistFlag || engineeringInterfacePersonExistFlag || engineerAttSetExistFlag); + }).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(projectRelatedPersonnelList)){ List dutyTerritoryIdList = projectRelatedPersonnelList.stream().map(ProjectRelatedPersonnel::getDutyTerritory).distinct().collect(Collectors.toList()); result = dutyTerritorySdiList.stream().filter(dutyTerritory -> { @@ -1926,4 +1965,46 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl> replacementUserList = (List>) json.get("replacementUserList"); + + QueryWrapper prpQueryWrap = new QueryWrapper<>(); + prpQueryWrap.lambda().eq(ProjectRelatedPersonnel::getProjectId, projectLibraryId); + List projectRelatedPersonnelList = this.list(prpQueryWrap); + List updateEoList = new ArrayList<>(); + for (Map replacementUserMap : replacementUserList) { + String dutyTerritory = (String) replacementUserMap.get("dutyTerritory"); + String newUserId = (String) replacementUserMap.get("newUserId"); + if (StringUtils.isNotEmpty(newUserId)) { + for (ProjectRelatedPersonnel prpEo : projectRelatedPersonnelList) { + if (StringUtils.equals(dutyTerritory, prpEo.getDutyTerritory())) { + if (StringUtils.contains(prpEo.getLawEngineer(), userId)) { + String lawEngineer = StringUtils.strDistinct(prpEo.getLawEngineer().replaceAll(userId, newUserId)); + prpEo.setLawEngineer(lawEngineer); + } + if (StringUtils.contains(prpEo.getEngineeringInterfacePerson(), userId)) { + String engineeringInterfacePerson = StringUtils.strDistinct(prpEo.getEngineeringInterfacePerson().replaceAll(userId, newUserId)); + prpEo.setEngineeringInterfacePerson(engineeringInterfacePerson); + } + if (StringUtils.contains(prpEo.getEngineerLawSet(), userId)) { + String engineerLawSet = StringUtils.strDistinct(prpEo.getEngineerLawSet().replaceAll(userId, newUserId)); + prpEo.setEngineerLawSet(engineerLawSet); + } + if (StringUtils.contains(prpEo.getEngineerAttSet(), userId)) { + String engineerAttSet = StringUtils.strDistinct(prpEo.getEngineerAttSet().replaceAll(userId, newUserId)); + prpEo.setEngineerAttSet(engineerAttSet); + } + updateEoList.add(prpEo); + } + } + } + } + + if (CollectionUtils.isNotEmpty(updateEoList)) { + this.updateBatchById(updateEoList); + } + } + } diff --git a/jero-web/src/views/projectManagement/ProjectDetails/index.vue b/jero-web/src/views/projectManagement/ProjectDetails/index.vue index 802fb4bf7..eb6898b4b 100644 --- a/jero-web/src/views/projectManagement/ProjectDetails/index.vue +++ b/jero-web/src/views/projectManagement/ProjectDetails/index.vue @@ -7,7 +7,7 @@ style="margin-right: 8px;font-size: 30px;color: #21c9cc;"/> - {{this.title}} + {{ this.title }}
@@ -15,7 +15,7 @@ v-has="'projectComment:list'" @click="globalReplacementClick"> - {{$t('globalReplacement')}} + {{ $t('globalReplacement') }}
@@ -29,19 +29,19 @@ v-has="'projectComment:list'" @click="todocenterClick"> - {{$t('todocenter')}} + {{ $t('todocenter') }}
- {{$t('UpdateLog')}} + {{ $t('UpdateLog') }}
- {{$t('historicalVersion')}} + {{ $t('historicalVersion') }}
- {{roleSwitchName}} + {{ roleSwitchName }} @@ -79,18 +79,18 @@ v-if="isTrue" @click="textClick(0,$t('projectDetails'))"> - {{$t('projectDetails')}} + {{ $t('projectDetails') }}
- {{$t('listOfRegulations')}} + {{ $t('listOfRegulations') }}
- {{$t('certificationList')}} + {{ $t('certificationList') }}
@@ -107,7 +107,7 @@ :title="$t('TaskParameterCollection')" @click="textClick(4,$t('TaskParameterCollection'))"> - {{$t('TaskParameterCollection')}} + {{ $t('TaskParameterCollection') }} @@ -219,573 +219,577 @@
- {{$t('cancel')}} - {{$t('submit')}} + {{ $t('cancel') }} + {{ $t('submit') }}
\ No newline at end of file