From ca902b3949d31073ee818a965620e0e565da8e21 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 19 Oct 2023 17:44:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E5=9E=8B=E5=BA=93=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BC=96=E8=BE=91-=E7=BC=96=E8=BE=91=E4=B8=BB=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=97=B6=E5=90=8C=E6=AD=A5=E4=BF=AE=E6=94=B9=E5=AD=90?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=9A=84studio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProjectLibraryBaseServiceImpl.java | 648 ++++++++++++------ 1 file changed, 450 insertions(+), 198 deletions(-) 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 82169557c..40a6bfd2a 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 @@ -468,35 +468,49 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectLibraryBaseList = new ArrayList<>(); + projectLibraryBaseList.add(libraryBase); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectLibraryBase::getParentId,libraryBase.getId()); + List libraryBaseList = this.list(wrapper); + if(ObjectUtils.isNotEmpty(libraryBaseList)){ + for (ProjectLibraryBase libraryBaseTemp : libraryBaseList) { + libraryBaseTemp.setStudioEngineer(libraryBase.getStudioEngineer()); + } + projectLibraryBaseList.addAll(libraryBaseList); } - checkExitData(projectLibraryBase); - saveOrUpdate(projectLibraryBase); - checkVersionOrder(projectLibraryBase.getParentId(),projectLibraryBase.getProjectVersion(),projectLibraryBase.getId()); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) { + Date now = new Date(); + projectLibraryBase.setUpdateTime(now); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + projectLibraryBase.setUpdateBy(sysUser.getUsername()); - // 删除当前项目的studio与项目库 角色关系 - QueryWrapper deleteLibraryRoleRelWrapper = new QueryWrapper<>(); - deleteLibraryRoleRelWrapper.lambda().eq(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId()); - projectLibraryRoleRelEOService.remove(deleteLibraryRoleRelWrapper); - //删除当前项目studio项目权限 - QueryWrapper delStudioPermission = new QueryWrapper<>(); - delStudioPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); - projectUserPermissionService.remove(delStudioPermission); - //删除当前项目certification engineer项目权限 - QueryWrapper delCertificationPermission = new QueryWrapper<>(); - delCertificationPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); - projectUserPermissionService.remove(delCertificationPermission); + ProjectLibraryBase original = baseMapper.selectById(projectLibraryBase.getId()); + + // 如果studio编辑了认证工程师,需要给旧的认证工程师发送认证清单任务消息 + if(StringUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer()) && StringUtils.isNotEmpty(original.getCertificationEngineer())){ + this.editCertificationEngineer(projectLibraryBase, original); + } + + checkExitData(projectLibraryBase); + saveOrUpdate(projectLibraryBase); + checkVersionOrder(projectLibraryBase.getParentId(),projectLibraryBase.getProjectVersion(),projectLibraryBase.getId()); + + // 删除当前项目的studio与项目库 角色关系 + QueryWrapper deleteLibraryRoleRelWrapper = new QueryWrapper<>(); + deleteLibraryRoleRelWrapper.lambda().eq(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId()); + projectLibraryRoleRelEOService.remove(deleteLibraryRoleRelWrapper); + //删除当前项目studio项目权限 + QueryWrapper delStudioPermission = new QueryWrapper<>(); + delStudioPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); + projectUserPermissionService.remove(delStudioPermission); + //删除当前项目certification engineer项目权限 + QueryWrapper delCertificationPermission = new QueryWrapper<>(); + delCertificationPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); + projectUserPermissionService.remove(delCertificationPermission); /*// 初始化当前项目的studio与项目库 角色关系 ProjectLibraryRoleRelEO projectLibraryRoleRelEO = new ProjectLibraryRoleRelEO(); @@ -505,197 +519,198 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectLibraryRoleRelEOList = new ArrayList<>(); - //初始化当前项目的studio与项目库 法规清单 角色关系 - ProjectLibraryRoleRelEO lawsInventoryRoleRelEO = new ProjectLibraryRoleRelEO(); - lawsInventoryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); - lawsInventoryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); - lawsInventoryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); - lawsInventoryRoleRelEO.setModelType(RoleRelModelTypeEnum.LAWS_INVENTORY.getValue()); - projectLibraryRoleRelEOList.add(lawsInventoryRoleRelEO); + List projectLibraryRoleRelEOList = new ArrayList<>(); + //初始化当前项目的studio与项目库 法规清单 角色关系 + ProjectLibraryRoleRelEO lawsInventoryRoleRelEO = new ProjectLibraryRoleRelEO(); + lawsInventoryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); + lawsInventoryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); + lawsInventoryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); + lawsInventoryRoleRelEO.setModelType(RoleRelModelTypeEnum.LAWS_INVENTORY.getValue()); + projectLibraryRoleRelEOList.add(lawsInventoryRoleRelEO); - // 初始化当前项目的studio与项目库 认证清单 角色关系 - ProjectLibraryRoleRelEO certificationInventoryRoleRelEO = new ProjectLibraryRoleRelEO(); - certificationInventoryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); - certificationInventoryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); - certificationInventoryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); - certificationInventoryRoleRelEO.setModelType(RoleRelModelTypeEnum.CERTIFICATION_INVENTORY.getValue()); - projectLibraryRoleRelEOList.add(certificationInventoryRoleRelEO); - this.projectLibraryRoleRelEOService.saveBatch(projectLibraryRoleRelEOList); + // 初始化当前项目的studio与项目库 认证清单 角色关系 + ProjectLibraryRoleRelEO certificationInventoryRoleRelEO = new ProjectLibraryRoleRelEO(); + certificationInventoryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); + certificationInventoryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); + certificationInventoryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); + certificationInventoryRoleRelEO.setModelType(RoleRelModelTypeEnum.CERTIFICATION_INVENTORY.getValue()); + projectLibraryRoleRelEOList.add(certificationInventoryRoleRelEO); + this.projectLibraryRoleRelEOService.saveBatch(projectLibraryRoleRelEOList); - //重新设置当前项目studio项目权限 - List engineers = new ArrayList<>(); - ProjectUserPermission studioPermission = new ProjectUserPermission(); - studioPermission.setProjectId(projectLibraryBase.getId()); - studioPermission.setUserId(projectLibraryBase.getStudioEngineer()); - studioPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); - studioPermission.setCreateTime(now); - studioPermission.setUpdateTime(now); - engineers.add(studioPermission); - //重新设置当前项目certification engineer项目权限 - if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) { - for (String certificationEngineer : projectLibraryBase.getCertificationEngineer().split(",")) { - ProjectUserPermission certificationPermission = new ProjectUserPermission(); - certificationPermission.setProjectId(projectLibraryBase.getId()); - certificationPermission.setUserId(certificationEngineer); - certificationPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); - certificationPermission.setCreateTime(now); - certificationPermission.setUpdateTime(now); - engineers.add(certificationPermission); - } - } - if (ObjectUtils.isNotEmpty(engineers)) { - projectUserPermissionService.saveBatch(engineers); - } - - //编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师 - List result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(), - DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null,null); - //项目的认证工程师 - String certificationEngineer = projectLibraryBase.getCertificationEngineer(); - //一个都不选的情况下 - if ("".equals(certificationEngineer)) { - //删除当前项目的相关人员名单中认证工程师权限 - QueryWrapper delWrapper = new QueryWrapper<>(); - delWrapper.eq("project_id", projectLibraryBase.getId()) - .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); - projectUserPermissionService.remove(delWrapper); - //删除当前项目的法规清单中认证工程师权限 - QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); - delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()) - .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); - projectUserPermissionService.remove(delLawInventoryWrapper); - } - //选择了其他工程师 - if(StringUtils.isNotBlank(certificationEngineer)){ - if(StringUtils.isNotEmpty(original.getCertificationEngineer())){ - for (String id : original.getCertificationEngineer().split(",")) { - if (!certificationEngineer.contains(id)) { - //如果原来的认证工程师被删除了,则需要同步删除当前项目的相关人员名单中该认证工程师权限 - QueryWrapper delWrapper = new QueryWrapper<>(); - delWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). - eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); - projectUserPermissionService.remove(delWrapper); - //如果原来的认证工程师被删除了,则需要同步删除当前项目的法规清单中该认证工程师权限 - QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); - delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). - eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); - projectUserPermissionService.remove(delLawInventoryWrapper); - } + //重新设置当前项目studio项目权限 + List engineers = new ArrayList<>(); + ProjectUserPermission studioPermission = new ProjectUserPermission(); + studioPermission.setProjectId(projectLibraryBase.getId()); + studioPermission.setUserId(projectLibraryBase.getStudioEngineer()); + studioPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); + studioPermission.setCreateTime(now); + studioPermission.setUpdateTime(now); + engineers.add(studioPermission); + //重新设置当前项目certification engineer项目权限 + if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) { + for (String certificationEngineer : projectLibraryBase.getCertificationEngineer().split(",")) { + ProjectUserPermission certificationPermission = new ProjectUserPermission(); + certificationPermission.setProjectId(projectLibraryBase.getId()); + certificationPermission.setUserId(certificationEngineer); + certificationPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); + certificationPermission.setCreateTime(now); + certificationPermission.setUpdateTime(now); + engineers.add(certificationPermission); } } + if (ObjectUtils.isNotEmpty(engineers)) { + projectUserPermissionService.saveBatch(engineers); + } - - for (ProjectRelatedPersonnel projectRelatedPersonnel : result) { - //相关人员名单的认证工程师 - String certificationEngineerTemp = projectRelatedPersonnel.getCertificationEngineer(); - if(StringUtils.isNotBlank(certificationEngineerTemp)){ - StringBuilder sb = new StringBuilder(); - for (String s : certificationEngineerTemp.split(",")) { - if(certificationEngineer.contains(s)){ - sb.append(s + ","); + //编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师 + List result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(), + DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null,null); + //项目的认证工程师 + String certificationEngineer = projectLibraryBase.getCertificationEngineer(); + //一个都不选的情况下 + if ("".equals(certificationEngineer)) { + //删除当前项目的相关人员名单中认证工程师权限 + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.eq("project_id", projectLibraryBase.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + projectUserPermissionService.remove(delWrapper); + //删除当前项目的法规清单中认证工程师权限 + QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); + delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); + projectUserPermissionService.remove(delLawInventoryWrapper); + } + //选择了其他工程师 + if(StringUtils.isNotBlank(certificationEngineer)){ + if(StringUtils.isNotEmpty(original.getCertificationEngineer())){ + for (String id : original.getCertificationEngineer().split(",")) { + if (!certificationEngineer.contains(id)) { + //如果原来的认证工程师被删除了,则需要同步删除当前项目的相关人员名单中该认证工程师权限 + QueryWrapper delWrapper = new QueryWrapper<>(); + delWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). + eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); + projectUserPermissionService.remove(delWrapper); + //如果原来的认证工程师被删除了,则需要同步删除当前项目的法规清单中该认证工程师权限 + QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); + delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). + eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); + projectUserPermissionService.remove(delLawInventoryWrapper); } } - String substring = ""; - if(StringUtils.isNotBlank(sb)){ - substring = sb.substring(0, sb.length() - 1); - } - projectRelatedPersonnel.setCertificationEngineer(substring); } - } - //批量修改相关人员名单信息中的认证工程师 - projectRelatedPersonnelService.updateBatchById(result); - } - /** - *法规清单发起任务前或任务结束后修改studio或者修改认证工程师时, - *如果设计符合性确认、Pre-Homo确认、 验证符合性确认中的发起人跟责任人引用到了这两人, - *而且这两个人不属于相关人员名单的工程接口人和法规工程师,同步删除这两人的权限 - */ - List belongs = new ArrayList<>(); - belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); - belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); - belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); - belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); - belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); - belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("project_library_id", projectLibraryBase.getId()); - List list = projectLawsInventoryEOService.list(queryWrapper); - if (ObjectUtils.isNotEmpty(list)) { - for (ProjectLawsInventoryEO lawsInventoryEO : list) { - boolean boo = false; - //发起任务前 - if (TaskAffirmStatusEnum.NOT_STARTED.getValue().equals(lawsInventoryEO.getTaskAffirmStatus())) { - boo = true; - } - //任务结束后 - if (!boo) { - int count = 0; - QueryWrapper taskInventoryQueryWrapper = new QueryWrapper<>(); - taskInventoryQueryWrapper.eq("project_laws_inventory_id",lawsInventoryEO.getId()); - List taskInventoryRecords = projectTaskInventoryEOMapper.selectList(taskInventoryQueryWrapper); - for (ProjectTaskInventoryEO taskInventoryRecord : taskInventoryRecords) { - String designStatus = taskInventoryRecord.getDesignStatus(); - String verifyStatus = taskInventoryRecord.getVerifyStatus(); - String prehomoStatus = taskInventoryRecord.getPrehomoStatus(); - boolean designStatusFlag = StringUtils.isBlank(designStatus) || designStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); - boolean verifyStatusFlag = StringUtils.isBlank(verifyStatus) || verifyStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); - boolean prehomoStatusFlag = StringUtils.isBlank(prehomoStatus) || prehomoStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); - if (designStatusFlag && verifyStatusFlag && prehomoStatusFlag) { - count++; + for (ProjectRelatedPersonnel projectRelatedPersonnel : result) { + //相关人员名单的认证工程师 + String certificationEngineerTemp = projectRelatedPersonnel.getCertificationEngineer(); + if(StringUtils.isNotBlank(certificationEngineerTemp)){ + StringBuilder sb = new StringBuilder(); + for (String s : certificationEngineerTemp.split(",")) { + if(certificationEngineer.contains(s)){ + sb.append(s + ","); + } } + String substring = ""; + if(StringUtils.isNotBlank(sb)){ + substring = sb.substring(0, sb.length() - 1); + } + projectRelatedPersonnel.setCertificationEngineer(substring); } - if (count == 3) { + } + //批量修改相关人员名单信息中的认证工程师 + projectRelatedPersonnelService.updateBatchById(result); + } + /** + *法规清单发起任务前或任务结束后修改studio或者修改认证工程师时, + *如果设计符合性确认、Pre-Homo确认、 验证符合性确认中的发起人跟责任人引用到了这两人, + *而且这两个人不属于相关人员名单的工程接口人和法规工程师,同步删除这两人的权限 + */ + + List belongs = new ArrayList<>(); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); + belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("project_library_id", projectLibraryBase.getId()); + List list = projectLawsInventoryEOService.list(queryWrapper); + if (ObjectUtils.isNotEmpty(list)) { + for (ProjectLawsInventoryEO lawsInventoryEO : list) { + boolean boo = false; + //发起任务前 + if (TaskAffirmStatusEnum.NOT_STARTED.getValue().equals(lawsInventoryEO.getTaskAffirmStatus())) { boo = true; } - } - if (boo) { - QueryWrapper personnelQueryWrapper = new QueryWrapper<>(); - personnelQueryWrapper.eq("duty_territory", lawsInventoryEO.getDutyTerritory()).eq("project_id", projectLibraryBase.getId()); - List personnels = projectRelatedPersonnelService.list(personnelQueryWrapper); - - if (!original.getStudioEngineer().equals(projectLibraryBase.getStudioEngineer())) { - StringBuilder participator = new StringBuilder(); - if (ObjectUtils.isNotEmpty(personnels)) { - if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { - participator.append(personnels.get(0).getLawEngineer() + ","); - } - if (ObjectUtils.isNotEmpty(personnels.get(0).getCertificationEngineer())) { - participator.append(personnels.get(0).getCertificationEngineer() + ","); - } - if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { - participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); + //任务结束后 + if (!boo) { + int count = 0; + QueryWrapper taskInventoryQueryWrapper = new QueryWrapper<>(); + taskInventoryQueryWrapper.eq("project_laws_inventory_id",lawsInventoryEO.getId()); + List taskInventoryRecords = projectTaskInventoryEOMapper.selectList(taskInventoryQueryWrapper); + for (ProjectTaskInventoryEO taskInventoryRecord : taskInventoryRecords) { + String designStatus = taskInventoryRecord.getDesignStatus(); + String verifyStatus = taskInventoryRecord.getVerifyStatus(); + String prehomoStatus = taskInventoryRecord.getPrehomoStatus(); + boolean designStatusFlag = StringUtils.isBlank(designStatus) || designStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + boolean verifyStatusFlag = StringUtils.isBlank(verifyStatus) || verifyStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + boolean prehomoStatusFlag = StringUtils.isBlank(prehomoStatus) || prehomoStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + if (designStatusFlag && verifyStatusFlag && prehomoStatusFlag) { + count++; } } - if (!participator.toString().contains(original.getStudioEngineer())) { - //删除当前studio在法规清单中的人员权限 - QueryWrapper del = new QueryWrapper<>(); - del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getStudioEngineer()).in("belong",belongs). - eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); - projectUserPermissionService.remove(del); + if (count == 3) { + boo = true; } } - if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) { - for (String id : original.getCertificationEngineer().split(",")) { - if (!certificationEngineer.contains(id)) { - StringBuilder participator = new StringBuilder(); - if (ObjectUtils.isNotEmpty(personnels)) { - if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { - participator.append(personnels.get(0).getLawEngineer() + ","); - } - if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { - participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); - } + if (boo) { + QueryWrapper personnelQueryWrapper = new QueryWrapper<>(); + personnelQueryWrapper.eq("duty_territory", lawsInventoryEO.getDutyTerritory()).eq("project_id", projectLibraryBase.getId()); + List personnels = projectRelatedPersonnelService.list(personnelQueryWrapper); + + if (!original.getStudioEngineer().equals(projectLibraryBase.getStudioEngineer())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(personnels)) { + if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { + participator.append(personnels.get(0).getLawEngineer() + ","); } - participator.append(original.getStudioEngineer()); - if (!participator.toString().contains(id)) { - //删除当前studio在法规清单中的人员权限 - QueryWrapper del = new QueryWrapper<>(); - del.eq("project_id", projectLibraryBase.getId()).eq("user_id", id).in("belong",belongs). - eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); - projectUserPermissionService.remove(del); + if (ObjectUtils.isNotEmpty(personnels.get(0).getCertificationEngineer())) { + participator.append(personnels.get(0).getCertificationEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { + participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); + } + } + if (!participator.toString().contains(original.getStudioEngineer())) { + //删除当前studio在法规清单中的人员权限 + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getStudioEngineer()).in("belong",belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) { + for (String id : original.getCertificationEngineer().split(",")) { + if (!certificationEngineer.contains(id)) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(personnels)) { + if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { + participator.append(personnels.get(0).getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { + participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); + } + } + participator.append(original.getStudioEngineer()); + if (!participator.toString().contains(id)) { + //删除当前studio在法规清单中的人员权限 + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", id).in("belong",belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } } } } @@ -703,8 +718,245 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl deleteLibraryRoleRelWrapper = new QueryWrapper<>(); +// deleteLibraryRoleRelWrapper.lambda().eq(ProjectLibraryRoleRelEO::getProjectLibraryId,projectLibraryBase.getId()); +// projectLibraryRoleRelEOService.remove(deleteLibraryRoleRelWrapper); +// //删除当前项目studio项目权限 +// QueryWrapper delStudioPermission = new QueryWrapper<>(); +// delStudioPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); +// projectUserPermissionService.remove(delStudioPermission); +// //删除当前项目certification engineer项目权限 +// QueryWrapper delCertificationPermission = new QueryWrapper<>(); +// delCertificationPermission.eq("project_id", projectLibraryBase.getId()).eq("belong", ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); +// projectUserPermissionService.remove(delCertificationPermission); +// +// /*// 初始化当前项目的studio与项目库 角色关系 +// ProjectLibraryRoleRelEO projectLibraryRoleRelEO = new ProjectLibraryRoleRelEO(); +// projectLibraryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); +// projectLibraryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); +// projectLibraryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); +// projectLibraryRoleRelEOService.add(projectLibraryRoleRelEO);*/ +// +// List projectLibraryRoleRelEOList = new ArrayList<>(); +// //初始化当前项目的studio与项目库 法规清单 角色关系 +// ProjectLibraryRoleRelEO lawsInventoryRoleRelEO = new ProjectLibraryRoleRelEO(); +// lawsInventoryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); +// lawsInventoryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); +// lawsInventoryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); +// lawsInventoryRoleRelEO.setModelType(RoleRelModelTypeEnum.LAWS_INVENTORY.getValue()); +// projectLibraryRoleRelEOList.add(lawsInventoryRoleRelEO); +// +// // 初始化当前项目的studio与项目库 认证清单 角色关系 +// ProjectLibraryRoleRelEO certificationInventoryRoleRelEO = new ProjectLibraryRoleRelEO(); +// certificationInventoryRoleRelEO.setProjectLibraryId(projectLibraryBase.getId()); +// certificationInventoryRoleRelEO.setUserId(projectLibraryBase.getStudioEngineer()); +// certificationInventoryRoleRelEO.setRoleCode(ProjectRoleEnum.STUDIO_ENGINEER.getValue()); +// certificationInventoryRoleRelEO.setModelType(RoleRelModelTypeEnum.CERTIFICATION_INVENTORY.getValue()); +// projectLibraryRoleRelEOList.add(certificationInventoryRoleRelEO); +// this.projectLibraryRoleRelEOService.saveBatch(projectLibraryRoleRelEOList); +// +// //重新设置当前项目studio项目权限 +// List engineers = new ArrayList<>(); +// ProjectUserPermission studioPermission = new ProjectUserPermission(); +// studioPermission.setProjectId(projectLibraryBase.getId()); +// studioPermission.setUserId(projectLibraryBase.getStudioEngineer()); +// studioPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_STUDIO.getValue()); +// studioPermission.setCreateTime(now); +// studioPermission.setUpdateTime(now); +// engineers.add(studioPermission); +// //重新设置当前项目certification engineer项目权限 +// if (ObjectUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())) { +// for (String certificationEngineer : projectLibraryBase.getCertificationEngineer().split(",")) { +// ProjectUserPermission certificationPermission = new ProjectUserPermission(); +// certificationPermission.setProjectId(projectLibraryBase.getId()); +// certificationPermission.setUserId(certificationEngineer); +// certificationPermission.setBelong(ProjectUserLocationEnum.PROJECT_ADD_CERTIFICATION.getValue()); +// certificationPermission.setCreateTime(now); +// certificationPermission.setUpdateTime(now); +// engineers.add(certificationPermission); +// } +// } +// if (ObjectUtils.isNotEmpty(engineers)) { +// projectUserPermissionService.saveBatch(engineers); +// } +// +// //编辑时如果认证工程师发生变化,同步修改相关人员名单中的认证工程师 +// List result = projectRelatedPersonnelMapper.queryPageList(projectLibraryBase.getId(), +// DictCodeEnum.DUTY_TERRITORY.getValue(), null, null, null, null,null); +// //项目的认证工程师 +// String certificationEngineer = projectLibraryBase.getCertificationEngineer(); +// //一个都不选的情况下 +// if ("".equals(certificationEngineer)) { +// //删除当前项目的相关人员名单中认证工程师权限 +// QueryWrapper delWrapper = new QueryWrapper<>(); +// delWrapper.eq("project_id", projectLibraryBase.getId()) +// .eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); +// projectUserPermissionService.remove(delWrapper); +// //删除当前项目的法规清单中认证工程师权限 +// QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); +// delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()) +// .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); +// projectUserPermissionService.remove(delLawInventoryWrapper); +// } +// //选择了其他工程师 +// if(StringUtils.isNotBlank(certificationEngineer)){ +// if(StringUtils.isNotEmpty(original.getCertificationEngineer())){ +// for (String id : original.getCertificationEngineer().split(",")) { +// if (!certificationEngineer.contains(id)) { +// //如果原来的认证工程师被删除了,则需要同步删除当前项目的相关人员名单中该认证工程师权限 +// QueryWrapper delWrapper = new QueryWrapper<>(); +// delWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). +// eq("belong", ProjectUserLocationEnum.PROJECT_DETAIL_RELEVANT_PERSONNEL_CERTIFICATION.getValue()); +// projectUserPermissionService.remove(delWrapper); +// //如果原来的认证工程师被删除了,则需要同步删除当前项目的法规清单中该认证工程师权限 +// QueryWrapper delLawInventoryWrapper = new QueryWrapper<>(); +// delLawInventoryWrapper.eq("project_id", projectLibraryBase.getId()).eq("user_id",id). +// eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()); +// projectUserPermissionService.remove(delLawInventoryWrapper); +// } +// } +// } +// +// +// for (ProjectRelatedPersonnel projectRelatedPersonnel : result) { +// //相关人员名单的认证工程师 +// String certificationEngineerTemp = projectRelatedPersonnel.getCertificationEngineer(); +// if(StringUtils.isNotBlank(certificationEngineerTemp)){ +// StringBuilder sb = new StringBuilder(); +// for (String s : certificationEngineerTemp.split(",")) { +// if(certificationEngineer.contains(s)){ +// sb.append(s + ","); +// } +// } +// String substring = ""; +// if(StringUtils.isNotBlank(sb)){ +// substring = sb.substring(0, sb.length() - 1); +// } +// projectRelatedPersonnel.setCertificationEngineer(substring); +// } +// } +// //批量修改相关人员名单信息中的认证工程师 +// projectRelatedPersonnelService.updateBatchById(result); +// } +// /** +// *法规清单发起任务前或任务结束后修改studio或者修改认证工程师时, +// *如果设计符合性确认、Pre-Homo确认、 验证符合性确认中的发起人跟责任人引用到了这两人, +// *而且这两个人不属于相关人员名单的工程接口人和法规工程师,同步删除这两人的权限 +// */ +// +// List belongs = new ArrayList<>(); +// belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue()); +// belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue()); +// belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue()); +// belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue()); +// belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue()); +// belongs.add(ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue()); +// +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("project_library_id", projectLibraryBase.getId()); +// List list = projectLawsInventoryEOService.list(queryWrapper); +// if (ObjectUtils.isNotEmpty(list)) { +// for (ProjectLawsInventoryEO lawsInventoryEO : list) { +// boolean boo = false; +// //发起任务前 +// if (TaskAffirmStatusEnum.NOT_STARTED.getValue().equals(lawsInventoryEO.getTaskAffirmStatus())) { +// boo = true; +// } +// //任务结束后 +// if (!boo) { +// int count = 0; +// QueryWrapper taskInventoryQueryWrapper = new QueryWrapper<>(); +// taskInventoryQueryWrapper.eq("project_laws_inventory_id",lawsInventoryEO.getId()); +// List taskInventoryRecords = projectTaskInventoryEOMapper.selectList(taskInventoryQueryWrapper); +// for (ProjectTaskInventoryEO taskInventoryRecord : taskInventoryRecords) { +// String designStatus = taskInventoryRecord.getDesignStatus(); +// String verifyStatus = taskInventoryRecord.getVerifyStatus(); +// String prehomoStatus = taskInventoryRecord.getPrehomoStatus(); +// boolean designStatusFlag = StringUtils.isBlank(designStatus) || designStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); +// boolean verifyStatusFlag = StringUtils.isBlank(verifyStatus) || verifyStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); +// boolean prehomoStatusFlag = StringUtils.isBlank(prehomoStatus) || prehomoStatus.equals(DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); +// if (designStatusFlag && verifyStatusFlag && prehomoStatusFlag) { +// count++; +// } +// } +// if (count == 3) { +// boo = true; +// } +// } +// if (boo) { +// QueryWrapper personnelQueryWrapper = new QueryWrapper<>(); +// personnelQueryWrapper.eq("duty_territory", lawsInventoryEO.getDutyTerritory()).eq("project_id", projectLibraryBase.getId()); +// List personnels = projectRelatedPersonnelService.list(personnelQueryWrapper); +// +// if (!original.getStudioEngineer().equals(projectLibraryBase.getStudioEngineer())) { +// StringBuilder participator = new StringBuilder(); +// if (ObjectUtils.isNotEmpty(personnels)) { +// if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { +// participator.append(personnels.get(0).getLawEngineer() + ","); +// } +// if (ObjectUtils.isNotEmpty(personnels.get(0).getCertificationEngineer())) { +// participator.append(personnels.get(0).getCertificationEngineer() + ","); +// } +// if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { +// participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); +// } +// } +// if (!participator.toString().contains(original.getStudioEngineer())) { +// //删除当前studio在法规清单中的人员权限 +// QueryWrapper del = new QueryWrapper<>(); +// del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getStudioEngineer()).in("belong",belongs). +// eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); +// projectUserPermissionService.remove(del); +// } +// } +// if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) { +// for (String id : original.getCertificationEngineer().split(",")) { +// if (!certificationEngineer.contains(id)) { +// StringBuilder participator = new StringBuilder(); +// if (ObjectUtils.isNotEmpty(personnels)) { +// if (ObjectUtils.isNotEmpty(personnels.get(0).getLawEngineer())) { +// participator.append(personnels.get(0).getLawEngineer() + ","); +// } +// if (ObjectUtils.isNotEmpty(personnels.get(0).getEngineeringInterfacePerson())) { +// participator.append(personnels.get(0).getEngineeringInterfacePerson() + ","); +// } +// } +// participator.append(original.getStudioEngineer()); +// if (!participator.toString().contains(id)) { +// //删除当前studio在法规清单中的人员权限 +// QueryWrapper del = new QueryWrapper<>(); +// del.eq("project_id", projectLibraryBase.getId()).eq("user_id", id).in("belong",belongs). +// eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); +// projectUserPermissionService.remove(del); +// } +// } +// } +// } +// } +// } +// } +// +// } /** * 编辑认证工程师逻辑处理