From 886907c38ab78b8f2fa0fc0fcfe9e1ecf2ccec98 Mon Sep 17 00:00:00 2001 From: gaosong Date: Wed, 25 Oct 2023 09:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E6=98=BE=E7=A4=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/enums/ProjectRoleEnum.java | 32 ++-- ...ctCertificationInventoryEOServiceImpl.java | 14 +- ...formProjectLawsInventoryEOServiceImpl.java | 14 +- ...ctCertificationInventoryEOServiceImpl.java | 148 +++++++++++++++--- .../ProjectLawsInventoryEOServiceImpl.java | 16 +- 5 files changed, 171 insertions(+), 53 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java index 858e0e1c2..b4c675812 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java @@ -6,30 +6,32 @@ import org.apache.commons.lang3.StringUtils; * 项目角色枚举类 */ public enum ProjectRoleEnum { - STUDIO_ENGINEER("studio工程师","0","R&H Studio"), - REGULATI_ENGINEER("法规工程师","1","studio"), - HOMOLOGATION_ENGINEER("认证工程师","2","homo"), - REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer"), - MANAGER("领导角色","11","R&H Manager"), - ADMIN("系统管理员","12","admin"), - VIEWER("Viewer","13","Viewer"), - BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator"), + STUDIO_ENGINEER("studio工程师","0","R&H Studio","R&H Studio"), + REGULATI_ENGINEER("法规工程师","1","studio","Regulation"), + HOMOLOGATION_ENGINEER("认证工程师","2","homo","homo"), + REGULATI_AND_HOMOLOGATION_ENGINEER("法规工程师/认证工程师","4","Regulatory Engineer/Certification Engineer","Regulatory Engineer/Certification Engineer"), + MANAGER("领导角色","11","R&H Manager","R&H Manager"), + ADMIN("系统管理员","12","admin","admin"), + VIEWER("Viewer","13","Viewer","Viewer"), + BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator","BrandAdministrator"), //法规清单使用 - INTERFACE_PERSON1("工程接口人","30","Interface person"), - PERSON_LIABLE1("责任人","31","Person liable"), + INTERFACE_PERSON1("工程接口人","30","Interface person","Interface person"), + PERSON_LIABLE1("责任人","31","Person liable","Person liable"), // 项目库-认证清单使用。 - INTERFACE_PERSON("工程接口人","20","Interface person"), - PERSON_LIABLE("责任人","21","Person liable"), + INTERFACE_PERSON("工程接口人","20","Interface person","Interface person"), + PERSON_LIABLE("责任人","21","Person liable","Person liable"), ; String name; String value; String code; + String enName; - private ProjectRoleEnum(String name, String value, String code) { + private ProjectRoleEnum(String name, String value, String code, String enName) { this.name = name; this.value = value; this.code = code; + this.enName = enName; } public static ProjectRoleEnum getByValue(String value) { @@ -77,4 +79,8 @@ public enum ProjectRoleEnum { public int getIntValue() { return Integer.valueOf(value); } + + public String getEnName() { + return enName; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java index e7fc3cdd6..27ad2eae7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java @@ -1710,7 +1710,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI if (StringUtils.equals(cut, CutEnum.CN.getValue())) { sysRole.setRoleName(com.jero.modules.system.enums.ProjectRoleEnum.REGULATI_ENGINEER.getName()); } else if (StringUtils.equals(cut, CutEnum.EN.getValue())) { - sysRole.setRoleName(com.jero.modules.system.enums.ProjectRoleEnum.REGULATI_ENGINEER.getCode()); + sysRole.setRoleName(com.jero.modules.system.enums.ProjectRoleEnum.REGULATI_ENGINEER.getEnName()); } sysRoles.add(sysRole); } @@ -1726,7 +1726,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI if (StringUtils.equals(cut, CutEnum.CN.getValue())) { sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getName()); } else if (StringUtils.equals(cut, CutEnum.EN.getValue())) { - sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getCode()); + sysRole.setRoleName(ProjectRoleEnum.INTERFACE_PERSON.getEnName()); } sysRoles.add(sysRole); } @@ -1742,7 +1742,7 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI if (StringUtils.equals(cut, CutEnum.CN.getValue())) { sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getName()); } else if (StringUtils.equals(cut, CutEnum.EN.getValue())) { - sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getCode()); + sysRole.setRoleName(ProjectRoleEnum.PERSON_LIABLE.getEnName()); } sysRoles.add(sysRole); } @@ -1774,22 +1774,22 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI } else if (StringUtils.equals(cut, CutEnum.EN.getValue())) { if (manager.size() != 0) { manager.get(0).setRoleCode(ProjectRoleEnum.MANAGER.getValue()); - manager.get(0).setRoleName(ProjectRoleEnum.MANAGER.getCode()); + manager.get(0).setRoleName(ProjectRoleEnum.MANAGER.getEnName()); sysRoles.addAll(manager); } if (admin.size() != 0) { admin.get(0).setRoleCode(ProjectRoleEnum.ADMIN.getValue()); - admin.get(0).setRoleName(ProjectRoleEnum.ADMIN.getCode()); + admin.get(0).setRoleName(ProjectRoleEnum.ADMIN.getEnName()); sysRoles.addAll(admin); } if (Viewer.size() != 0) { Viewer.get(0).setRoleCode(ProjectRoleEnum.VIEWER.getValue()); - Viewer.get(0).setRoleName(ProjectRoleEnum.VIEWER.getCode()); + Viewer.get(0).setRoleName(ProjectRoleEnum.VIEWER.getEnName()); sysRoles.addAll(Viewer); } if (brandAdministrator.size() != 0) { brandAdministrator.get(0).setRoleCode(ProjectRoleEnum.BRAND_ADMINISTRATOR.getValue()); - brandAdministrator.get(0).setRoleName(ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode()); + brandAdministrator.get(0).setRoleName(ProjectRoleEnum.BRAND_ADMINISTRATOR.getEnName()); sysRoles.addAll(brandAdministrator); } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java index 1e7e3caef..e75fcc0ab 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLawsInventoryEOServiceImpl.java @@ -8757,7 +8757,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl certificationEngineerList = new ArrayList<>(); List certificationEngineerIdList = new ArrayList<>(); if(StringUtils.isNotBlank(projectLibraryBase.getCertificationEngineer())){ @@ -3711,7 +3716,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl resetFlowHomo(JSONObject json) { + String ids = json.getString("ids"); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + String operatorType = json.getString("operatorType"); + + String projectLibraryId = json.getString("projectLibraryId"); + ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + + List certificationEngineerList = new ArrayList<>(); + List certificationEngineerIdList = new ArrayList<>(); + if(StringUtils.isNotBlank(projectLibraryBase.getCertificationEngineer())){ + certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(",")); + certificationEngineerList = this.sysUserService.querySysUserListByIdList(certificationEngineerIdList); + } + List idList = Arrays.asList(ids.split(",")); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList); + queryWrapper.lambda().ne(ProjectCertificationInventoryEO::getFlowStatus,CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + List projectCertificationInventoryEOList = this.list(queryWrapper); + + // 根据结束时间进行排序,获取最近的时间,发消息时使用。 + Collections.sort(projectCertificationInventoryEOList, new Comparator() { + @Override + public int compare(ProjectCertificationInventoryEO p1, ProjectCertificationInventoryEO p2) { + if(p1.getEndTime() != null && p2.getEndTime() != null){ + return p1.getEndTime().compareTo(p2.getEndTime()); + } + return 1; + } + }); + + try { + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + // 把交付结果、截止日期清空,流程状态 设置为 清单待发布 + LambdaUpdateWrapper updateWrap = new LambdaUpdateWrapper<>(); + updateWrap.set(ProjectCertificationInventoryEO::getDeliveryResult,null); + // 流程重置,清空截止日期, 撤回不清空。 对应禅道问题:67048 + if(StringUtils.equals(operatorType,OperatorTypeEnum.CERTIFICATION_INVENTORY_STUDIO_RESET.getValue())){ + updateWrap.set(ProjectCertificationInventoryEO::getInventoryVerifyEndTime,null); + updateWrap.set(ProjectCertificationInventoryEO::getTaskConfirmEndTime,null); + } + + updateWrap.set(ProjectCertificationInventoryEO::getFlowStatus,CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()); + updateWrap.eq(ProjectCertificationInventoryEO::getId,projectCertificationInventoryEO.getId()); + this.update(updateWrap); + } + processHistoryEOService.deleteByPId(ids); + this.saveProjectCertificationInventoryLog(projectCertificationInventoryEOList,operatorType); + + + // 删除其它用户的待办任务 + QueryWrapper detailRemoveWrap = new QueryWrapper<>(); + detailRemoveWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); + detailRemoveWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue()); + detailRemoveWrap.lambda().in(ProcessInfoDetailEO::getProjectLawsInventoryId,idList); + this.processInfoDetailEOService.remove(detailRemoveWrap); + + + List processInfoDetailEOList = new ArrayList<>(); + // 获取项目信息,获取认证工程师,给认证工程师分配待办任务 + if(ObjectUtils.isNotEmpty(projectLibraryBase)) { + // 给认证工程师分配任务 + for (String userId : certificationEngineerIdList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(userId); + processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSJSRW.getKey()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + processInfoDetailEO.setProcessInfoId(projectLibraryId); + processInfoDetailEO.setActiProcInstId(projectLibraryId); + processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue()); +// processInfoDetailEO.setEndTime(inventoryVerifyEndTime); + processInfoDetailEOList.add(processInfoDetailEO); + } + + ProcessInfoEO processInfoEO = new ProcessInfoEO(); + this.addProcessInfoEO(processInfoEO, projectLibraryId); + + // 删除该项目数据的待办任务,key为 认证工程师接受任务的数据 + QueryWrapper deleteDetailWrap = new QueryWrapper<>(); + deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, processInfoEO.getId()); + deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey, CertificationFlowNodeEnum.RZGCSJSRW.getKey()); + deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getFlowType, FlowTypeEnum.CERTIFICATION_LC.getValue()); + this.processInfoDetailEOService.remove(deleteDetailWrap); + this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); + } + + }catch (Exception ex){ + ex.printStackTrace(); + log.error("studio-流程重置失败:" + ex.getMessage()); + throw new JeroBootException("流程重置失败!"); + } + //流程重置后,将平台件关联信息删除 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,Arrays.asList(ids.split(","))); + lawsInventoryPlatformEOService.remove(wrapper); + return Result.OK("流程重置成功!"); + } @Override public Result transferTask(JSONObject json) { @@ -6986,14 +7092,20 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 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()); + ProjectLibraryBase projectLibrayBase = projectLibraryBaseMapper.selectById(projectLibraryId); + if (ObjectUtils.isNotEmpty(projectLibrayBase)) { + if(projectLibrayBase.getStudioEngineer().equals(currentUserId)){ + result = Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue()); + }else { + if(StringUtils.isNotBlank(projectLibrayBase.getCertificationEngineer())){ + String[] ceList = projectLibrayBase.getCertificationEngineer().split(","); + for (String ceStr : ceList) { + if(ceStr.equals(currentUserId)){ + result = Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue()); + break; + } + } + } } } } catch (Exception ex) { 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 d7b94aa97..09879aa99 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 @@ -8777,7 +8777,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl