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 b6cdb9ca7..3bce43455 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 @@ -514,25 +514,27 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl 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); } } - 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); - } } } } 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 6d24a4aec..0859081ac 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 @@ -15,14 +15,12 @@ import com.jero.common.util.TokenUtils; import com.jero.modules.dummy.service.impl.DummyInventoryInfoEOServiceImpl; import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.ocr.entity.User; -import com.jero.modules.project.entity.ProjectLibraryBase; -import com.jero.modules.project.entity.ProjectRelatedPersonnel; -import com.jero.modules.project.entity.ProjectUserPermission; -import com.jero.modules.project.enums.PermissionDescriptionEnum; -import com.jero.modules.project.enums.ProjectInventoryFieldEnum; -import com.jero.modules.project.enums.ProjectRoleEnum; -import com.jero.modules.project.enums.ProjectUserLocationEnum; +import com.jero.modules.project.entity.*; +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.mapper.ProjectTaskInventoryEOMapper; +import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectRelatedPersonnelService; import com.jero.modules.project.service.IProjectUserPermissionService; import com.jero.modules.system.entity.SysDictItem; @@ -101,6 +99,15 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl 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()); + setLawsInventoryPermission(projectRelatedPersonnel.getProjectId(), belongs, projectRelatedPersonnel, original, projectLibraryBase); } @@ -1062,6 +1081,14 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl addPermission = new ArrayList<>(); Date now = new Date(); + //修改当前属于当前责任领域的法规清单的人员权限 + 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()); for (ProjectRelatedPersonnel projectRelatedPersonnel:records) { String relatedPersonnelId = ""; @@ -1312,6 +1339,13 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl belongs, ProjectRelatedPersonnel projectRelatedPersonnel, ProjectRelatedPersonnel original, ProjectLibraryBase projectLibraryBase) { + QueryWrapper lawsInventoryWrapper = new QueryWrapper<>(); + lawsInventoryWrapper.eq("project_library_id", projectId).eq("duty_territory", projectRelatedPersonnel.getDutyTerritory()); + List list = projectLawsInventoryEOService.list(lawsInventoryWrapper); + 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) { + if (projectRelatedPersonnel.getLawEngineer() != null) { + //判断三个符合性确认的发起人跟责任人中是否有当前法规工程师,且该用户不为相关人员名单中的认证工程师、工程接口人、studio + if (ObjectUtils.isNotEmpty(original.getLawEngineer())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + participator.append(projectRelatedPersonnel.getEngineeringInterfacePerson() + ","); + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + participator.append(projectRelatedPersonnel.getCertificationEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase)) { + participator.append(projectLibraryBase.getStudioEngineer()); + } + for (String lawEngineer : original.getLawEngineer().split(",")) { + if (!projectRelatedPersonnel.getLawEngineer().contains(lawEngineer)) { + //删除法规清单中法规工程师权限 + QueryWrapper LawEngineerPermissionDel = new QueryWrapper<>(); + LawEngineerPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue()) + .eq("user_id", lawEngineer); + projectUserPermissionService.remove(LawEngineerPermissionDel); + //删除三个符合性确认中发起人/责任人权限 + if (!participator.toString().contains(lawEngineer)) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", lawEngineer).in("belong", belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + + } + if (projectRelatedPersonnel.getEngineeringInterfacePerson() != null) { + //判断三个符合性确认的发起人跟责任人中是否有当前工程接口人,且该用户不为相关人员名单中的法规工程师、认证工程师、studio + if (ObjectUtils.isNotEmpty(original.getEngineeringInterfacePerson())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + participator.append(projectRelatedPersonnel.getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineer())) { + participator.append(projectRelatedPersonnel.getCertificationEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase)) { + participator.append(projectLibraryBase.getStudioEngineer()); + } + for (String interfacePerson : original.getEngineeringInterfacePerson().split(",")) { + if (!projectRelatedPersonnel.getEngineeringInterfacePerson().contains(interfacePerson)) { + //删除法规清单中工程接口人权限 + QueryWrapper interfacePersonPermissionDel = new QueryWrapper<>(); + interfacePersonPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue()) + .eq("user_id", interfacePerson); + projectUserPermissionService.remove(interfacePersonPermissionDel); + //删除三个符合性确认中发起人/责任人权限 + if (!participator.toString().contains(interfacePerson)) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", interfacePerson).in("belong", belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + } + if (projectRelatedPersonnel.getCertificationEngineer() != null) { + //判断三个符合性确认的发起人跟责任人中是否有当前认证工程师,且该用户不为相关人员名单中的法规工程师、工程接口人、studio + if (ObjectUtils.isNotEmpty(original.getCertificationEngineer())) { + StringBuilder participator = new StringBuilder(); + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())) { + participator.append(projectRelatedPersonnel.getLawEngineer() + ","); + } + if (ObjectUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePerson())) { + participator.append(projectRelatedPersonnel.getEngineeringInterfacePerson() + ","); + } + if (ObjectUtils.isNotEmpty(projectLibraryBase)) { + participator.append(projectLibraryBase.getStudioEngineer()); + } + if (!projectRelatedPersonnel.getCertificationEngineer().equals(original.getCertificationEngineer())) { + //删除法规清单中认证工程师权限 + QueryWrapper certificationPermissionDel = new QueryWrapper<>(); + certificationPermissionDel.eq("project_id", projectRelatedPersonnel.getProjectId()) + .eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()) + .eq("belong", ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue()) + .eq("user_id", original.getCertificationEngineer()); + projectUserPermissionService.remove(certificationPermissionDel); + //删除三个符合性确认中发起人/责任人权限 + if (!participator.toString().contains(original.getCertificationEngineer())) { + QueryWrapper del = new QueryWrapper<>(); + del.eq("project_id", projectLibraryBase.getId()).eq("user_id", original.getCertificationEngineer()).in("belong", belongs). + eq("description", PermissionDescriptionEnum.PROJECT_LAWS_INVENTORY.getValue() + lawsInventoryEO.getId()); + projectUserPermissionService.remove(del); + } + } + } + } + } + } + } + } + /** * 验证导入的相关人员 * @param userList 所有的用户