From 8dd827605bef89612f23fd9064ccde6074c43f19 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Thu, 9 Mar 2023 11:39:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95-=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E5=B7=A5=E7=A8=8B=E5=B8=88=E5=AE=A1=E6=9F=A5=E9=80=80?= =?UTF-8?q?=E5=9B=9E=E3=80=81=E8=AE=A4=E8=AF=81=E5=B7=A5=E7=A8=8B=E5=B8=88?= =?UTF-8?q?=E5=AE=A1=E6=9F=A5=E9=80=9A=E8=BF=87=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CertificationInventoryFlowStatusEnum.java | 2 +- ...rojectCertificationInventoryEOService.java | 2 +- ...ctCertificationInventoryEOServiceImpl.java | 166 ++++++++++++++---- 3 files changed, 136 insertions(+), 34 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java index b9b4e088c..6e62f11ab 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationInventoryFlowStatusEnum.java @@ -17,7 +17,7 @@ public enum CertificationInventoryFlowStatusEnum { * 任务待确认 认证工程师发起责任人待确认 * 责任人拒绝 责任人拒绝 * 结果待提交 责任人接受后 未提交交付物 - * 工程师退回 责任人分发后被第二位责任人退回 + * 工程师退回 责任人分发后被第二位责任人退回 (没有该状态。) * 结果待审查 责任人提交后认证工程师未审查 * 审查通过 责任人提交后认证工程师审查通过 * 审查退回 责任人提交后认证工程师审查退回 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 511e8d7f3..ab32190f8 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 @@ -131,7 +131,7 @@ public interface IProjectCertificationInventoryEOService extends IService saveBatch(JSONObject json); 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 2b9f36c08..d72f852cd 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 @@ -697,6 +697,10 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl certificationReviewReturned(JSONObject json) { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + String ids = json.getString("ids"); + if(StringUtils.isEmpty(ids)){ + throw new JeroBootException("至少选择一条数据进行操作!"); + } + List idList = Arrays.asList(ids.split(",")); + + List flowStatusList = new ArrayList<>(); + flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList); + queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); + List projectCertificationInventoryEOList = this.list(queryWrapper); + + if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){ + throw new JeroBootException("至少选择一条数据流程状态为'结果待审查'的数据!"); + } + + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue()); + } + + ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); + + try { + // 更新数据状态为 审查退回 + this.updateBatchById(projectCertificationInventoryEOList); + + List flowStatus = new ArrayList<>(); + flowStatus.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()); + + // 更新该项目认证流程中,认证工程师的任务状态。 + // 如果还有 结果待审查 的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 flowStatus + this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSSC.getKey(),flowStatus); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("认证工程师-审批退回失败:" + ex.getMessage()); + throw new JeroBootException("审批退回失败!"); + } + + return Result.OK("审批退回成功!"); + } + + /** + * 认证工程师审查通过 + * @param json + * @return + */ + private Result certificationReviewThrough(JSONObject json) { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + String ids = json.getString("ids"); + if(StringUtils.isEmpty(ids)){ + throw new JeroBootException("至少选择一条数据进行操作!"); + } + List idList = Arrays.asList(ids.split(",")); + + List flowStatusList = new ArrayList<>(); + flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList); + queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); + List projectCertificationInventoryEOList = this.list(queryWrapper); + + if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){ + throw new JeroBootException("至少选择一条数据流程状态为'结果待审查'的数据!"); + } + + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue()); + } + + ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); + + try { + // 更新数据状态为 审查通过 + this.updateBatchById(projectCertificationInventoryEOList); + + List flowStatus = new ArrayList<>(); + flowStatus.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()); + + // 更新该项目认证流程中,认证工程师的任务状态。 + // 如果还有 结果待审查 的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 flowStatus + this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSSC.getKey(),flowStatus); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("认证工程师-审批通过失败:" + ex.getMessage()); + throw new JeroBootException("审批通过失败!"); + } + + + return Result.OK("审批通过成功!"); + } + + /** + * 更新任务状态为已办 + * @param projectLibraryBase + */ + private void updateProcessInfoDetailStatus(ProjectLibraryBase projectLibraryBase,String taskDefinitionKey,List flowStatusList) { + + QueryWrapper queryCountWrap = new QueryWrapper<>(); + queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryBase.getId()); + queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); + int notDoneCount = this.count(queryCountWrap); + + if(notDoneCount == 0){ + QueryWrapper detailQueryWrapper = new QueryWrapper<>(); + detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId()); + detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,taskDefinitionKey); + List detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper); + + for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) { + processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue()); + } + + this.processInfoDetailEOService.updateBatchById(detailEOList); + } + } + /** * 责任人提交任务 @@ -971,23 +1103,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl queryCountWrap = new QueryWrapper<>(); - queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryBase.getId()); - queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); - int notDoneCount = this.count(queryCountWrap); // 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 - if(notDoneCount == 0){ - QueryWrapper detailQueryWrapper = new QueryWrapper<>(); - detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); - detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey()); - List detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper); - - for (ProcessInfoDetailEO detailEO : detailEOList) { - detailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue()); - } - - this.processInfoDetailEOService.updateBatchById(detailEOList); - } + this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList); }catch (Exception ex){ ex.printStackTrace(); log.error("认证工程师-退回认证清单任务失败:" + ex.getMessage()); @@ -1047,23 +1164,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl queryCountWrap = new QueryWrapper<>(); - queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryBase.getId()); - queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); - int notDoneCount = this.count(queryCountWrap); // 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 - if(notDoneCount == 0){ - QueryWrapper detailQueryWrapper = new QueryWrapper<>(); - detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); - detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey()); - List detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper); - - for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) { - processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue()); - } - - this.processInfoDetailEOService.updateBatchById(detailEOList); - } + this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList); }catch (Exception ex){ ex.printStackTrace(); log.error("认证工程师-发起认证清单任务失败:" + ex.getMessage());