diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java index 7f79a896b..c943f39cb 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectCertificationInventoryEOController.java @@ -354,4 +354,16 @@ public class ProjectCertificationInventoryEOController extends JeroController queryDutyPersonByProjectId(@RequestParam Map params) { return Result.OK(this.projectCertificationInventoryEOService.queryDutyPersonByProjectId(params)); } + + /** + * 匹配相关人员 + * @param params + * @return + */ + @AutoLog(value = "项目库-认证清单表-匹配相关人员") + @ApiOperation(value="项目库-认证清单表-匹配相关人员", notes="项目库-法规清单表-匹配相关人员") + @PostMapping(value = "/matchRelevantPeople") + public Result matchRelevantPeople(@RequestBody Map params){ + return this.projectCertificationInventoryEOService.matchRelevantPeople(params); + } } 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 de028cf67..16dcdbaaf 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 @@ -332,4 +332,11 @@ public interface IProjectCertificationInventoryEOService extends IService matchRelevantPeople(Map params); } 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 263506baa..5db7c379a 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 @@ -43,6 +43,8 @@ import com.jero.modules.project.entity.ProjectCertificationInventoryLogEO; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectRelatedPersonnel; import com.jero.modules.project.enums.*; +import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; +import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper; import com.jero.modules.project.service.*; import com.jero.modules.split.common.FileUnZip; import com.jero.modules.system.enums.ProjectRoleEnum; @@ -134,6 +136,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl matchRelevantPeople(Map params) { + String projectLibraryId = (String) params.get("projectLibraryId");//项目id + + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + int isProjectRole = this.checkUserRole(projectLibraryId, currentUser.getId()); + //验证用户是否是该项目的studio工程师,或者认证工程师,才能匹配相关人员 + if (isProjectRole == Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue()) + ||isProjectRole == Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())) { + //获取当前项目中的相关人员信息 + QueryWrapper queryProjectPerson = new QueryWrapper<>(); + queryProjectPerson.lambda().eq(ProjectRelatedPersonnel::getProjectId, projectLibraryId); + List projectRelatedPersonnels = this.projectRelatedPersonnelMapper.selectList(queryProjectPerson); + + if (CollectionUtils.isNotEmpty(projectRelatedPersonnels)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId); + List certificationInventoryEOs = this.list(queryWrapper); + List updateList = new ArrayList<>(); + for (ProjectCertificationInventoryEO certificationInventoryEO : certificationInventoryEOs) { + //只留下清单状态为 未发起、认证退回的认证清单。 + if(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue().equals(certificationInventoryEO.getFlowStatus()) + ||CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue().equals(certificationInventoryEO.getFlowStatus())){ + String dutyTerritory = certificationInventoryEO.getDutyTerritory(); + if (StringUtils.isNotEmpty(dutyTerritory)) { + List projectRelatedPersonnelTempList = projectRelatedPersonnels.stream().filter(relatedPersonnel -> { + boolean flag = false; + for (String duty : dutyTerritory.split(",")) { + if (StringUtils.equals(duty, relatedPersonnel.getDutyTerritory())) { + flag = true; + } + } + return flag; + }).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(projectRelatedPersonnelTempList)) { + List relatedPerson = new ArrayList<>(); + for (ProjectRelatedPersonnel prp : projectRelatedPersonnelTempList) { + String engineeringInterfacePerson = prp.getEngineeringInterfacePerson(); + if (StringUtils.isNotEmpty(engineeringInterfacePerson)) { + for (String eip : engineeringInterfacePerson.split(",")) { + if (StringUtils.isNotEmpty(eip)) { + relatedPerson.add(eip); + } + } + } + } + if (CollectionUtils.isNotEmpty(relatedPerson) && relatedPerson.size() == 1) { + certificationInventoryEO.setSdt(relatedPerson.get(0)); + certificationInventoryEO.setDutyPerson(relatedPerson.get(0)); + updateList.add(certificationInventoryEO); + } + } + } + } + } + if(CollectionUtils.isNotEmpty(updateList)) { + this.updateBatchById(updateList); + } + } else { + throw new JeroBootException("当前项目中,未找到相关维护人员信息"); + } + } else { + throw new JeroBootException("当前操作用户不是该项目的studio工程师或认证工程师,没有权限操作!"); + } + + //更新log +// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// String username = sysUser.getUsername(); +// String contentLog = username + "带入了相关人员名单信息"; +// String enContentLog = username + " brought in the list information of relevant personnel."; +// projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId, CutEnum.CN.getValue()); +// projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId, CutEnum.EN.getValue()); + + return new Result<>().success("带入成功!"); + } + + /** + * 验证用户在该项目中的角色 + * + * @param projectLibraryId 项目库id + * @param currentUserId 登录人id + * @return + */ + public int checkUserRole(String projectLibraryId, String currentUserId) { + int result = -1; + try { + QueryWrapper projectLibraryBaseQueryWrapper = new QueryWrapper<>(); + projectLibraryBaseQueryWrapper.lambda().eq(ProjectLibraryBase::getId, projectLibraryId); + projectLibraryBaseQueryWrapper.lambda().eq(ProjectLibraryBase::getStudioEngineer, currentUserId); + Integer projectLibrayBaseCount = projectLibraryBaseMapper.selectCount(projectLibraryBaseQueryWrapper); + if (projectLibrayBaseCount > 0) { + result = Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue()); + if(result == -1){ + result = Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + } + } + } catch (Exception ex) { + log.error("验证用户在该项目中的角色失败:" + ex.getMessage()); + throw new JeroBootException("验证用户在该项目中的角色失败!"); + } + return result; + } + } 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 34093c51e..8110aa1b7 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 @@ -12608,7 +12608,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl pciQueryWrap = new QueryWrapper<>(); pciQueryWrap.lambda().in(ProjectCertificationInventoryEO::getProjectLibraryId,Arrays.asList(id.split(","))); - List pciEoList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + List pciEoList = this.projectCertificationInventoryEOService.list(pciQueryWrap).stream().filter(pciEo -> { + boolean flag = false; + if (!StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue())) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(pciEoList)){ // 认证清单-任务确认统计 List> rzTaskToConfirmMapList = this.projectCertificationInventoryEOService.getTaskToConfirmStatistics(pciEoList); @@ -2881,7 +2887,13 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl pciQueryWrap = new QueryWrapper<>(); pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryId); - List projectCertificationInventoryEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + List projectCertificationInventoryEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap).stream().filter(pciEo -> { + boolean flag = false; + if (!StringUtils.equals(pciEo.getFlowStatus(), CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue())) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); String pciDutyTerritoryStr = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyTerritory).collect(Collectors.joining(",")); List sysDictItems = new ArrayList<>(); if (StringUtils.isNotEmpty(pciDutyTerritoryStr)) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java index 301eb8142..fd57d530d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryStatisticsServiceImpl.java @@ -93,7 +93,6 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) - || StringUtils.equals(data.getDesignFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) ); return flag; }).collect(Collectors.toList()); @@ -104,7 +103,6 @@ public class ProjectLibraryStatisticsServiceImpl implements IProjectLibraryStati || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.CONFORMITY.getValue()) || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.INCONFORMITY.getValue()) || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.TO_TRACK.getValue()) - || StringUtils.equals(data.getVerifyFlowStatus(),ComplianceFlowStatusEnum.UNINVOLVED.getValue()) ); return flag; }).collect(Collectors.toList()); diff --git a/jero-web/src/views/projectManagement/components/certificationList/components/batSetting.vue b/jero-web/src/views/projectManagement/components/certificationList/components/batSetting.vue index b8f1ea628..b4d746f2f 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/components/batSetting.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/components/batSetting.vue @@ -362,6 +362,7 @@ handleChange(value) { this.formInline.sdt = undefined this.queryPersonByProject(this.formInline.dutyTerritory.join(',')) + this.formInline = {...this.formInline} }, queryPersonByProject(row) { let query = { diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/circulationHistory.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/circulationHistory.vue index 2a58e6510..0c60ff91e 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/circulationHistory.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/circulationHistory.vue @@ -306,7 +306,7 @@ } this.regulatoryCertificationTaskPlanList.forEach(val => { if (val.name == this.$t('initiatingProcess')) { - val.userName = this.$t('regulatoryEngineer') + val.userName = this.$t('Sponsor') } else if (val.name == this.$t('Taskresponsibilityrecognition')) { val.userName = this.$t('personLiable') } else if (val.name == this.$t('designComplianceReview')) {