diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationFlowNodeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationFlowNodeEnum.java index 0833b9b80..9925ad9f6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationFlowNodeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/CertificationFlowNodeEnum.java @@ -15,6 +15,8 @@ public enum CertificationFlowNodeEnum { ZRRJJRW ("zrrjjrw","责任人拒绝任务","The person in charge refused the assignment"), ZRRTJRW ("zrrtjrw","责任人提交任务","The responsible person submits the task"), RZGCSSC ("rzgcssc","认证工程师审查","Certified engineer review"), + RZGCSSC_TG ("rzgcssc_tg","认证工程师审查-通过","Certified engineer review through"), + RZGCSSC_TH ("rzgcssc_th","认证工程师审查-退回","Certified engineer review returned"), ; String key; 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 3aa5adf73..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 @@ -301,17 +301,27 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl idList = Arrays.asList(ids.split(",")); + List flowStatusList = new ArrayList<>(); + flowStatusList.add(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + flowStatusList.add(CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()); + // 根据页面选择的认证清单数据id,查询出状态为’清单待发布‘的数据,进行发布处理 QueryWrapper certificationQueryWrap = new QueryWrapper<>(); certificationQueryWrap.lambda().in(ProjectCertificationInventoryEO::getId,idList); - certificationQueryWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + certificationQueryWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); List projectCertificationInventoryEOList = this.list(certificationQueryWrap); if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){ - throw new JeroBootException("无法获取要发布的数据,请重新选择!"); + if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + throw new JeroBootException("Select at least one data flow whose status is' List to be released or Certification returned '!"); + }else { + throw new JeroBootException("至少选择一条数据流程状态为'清单待发布 或 认证退回'的数据!"); + } + } List processInfoDetailEOList = new ArrayList<>(); @@ -338,7 +348,6 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl removeWrap = new QueryWrapper<>(); removeWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoId); removeWrap.lambda().in(ProcessInfoDetailEO::getUserId,userIdList); + removeWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,taskDefinitionKey); // 删除用户在这个认证清单流程中其它的待办任务 this.processInfoDetailEOService.remove(removeWrap); @@ -680,14 +689,18 @@ 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); + } + } + + + /** + * 责任人提交任务 + * @param json + * @return + */ + private Result dutyPersonSubmitTask(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_SUBMITTED.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("至少选择一条数据流程状态为'结果待提交'的数据!"); + } + + ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); + + // 给认证工程师分配待办中心的任务 + String certificationEngineer = projectLibraryBase.getCertificationEngineer(); + if(StringUtils.isEmpty(certificationEngineer)){ + throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!"); + } + + List processInfoDetailEOList = new ArrayList<>(); + List certificationEngineerList = Arrays.asList(certificationEngineer.split(",")); + // 给认证工程师分配任务 + for (String userId : certificationEngineerList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(userId); + processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSSC.getKey()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId()); + processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId()); + processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue()); + processInfoDetailEOList.add(processInfoDetailEO); + } + // 数据更新为结果待审查 + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue()); + } + try { + this.updateBatchById(projectCertificationInventoryEOList); + + List certificationIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).distinct().collect(Collectors.toList()); + + // 将当前责任人的待办任务转为已办 + LambdaUpdateWrapper detailUpdateWrap = new LambdaUpdateWrapper<>(); + detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRTJRW.getKey()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getProjectLawsInventoryId,certificationIdList); + detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue()); + this.processInfoDetailEOService.update(detailUpdateWrap); + + // 给认证工程师分配待办中心的任务 认证工程师审查 + this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.RZGCSSC.getKey()); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("责任人-提交任务失败:" + ex.getMessage()); + throw new JeroBootException("提交任务失败!"); + } + + return Result.OK("提交任务成功!"); + } + + /** + * 责任人接受任务 + * @param json + * @return + */ + private Result dutyPersonAcceptTask(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.TASK_TO_BE_CONFIRMED.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("至少选择一条数据流程状态为'任务待确认'的数据!"); + } + + ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); + + List processInfoDetailEOList = new ArrayList<>(); + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue()); + + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(projectCertificationInventoryEO.getDutyPerson()); + processInfoDetailEO.setEndTime(projectCertificationInventoryEO.getEndTime()); + processInfoDetailEO.setProjectLawsInventoryId(projectCertificationInventoryEO.getId()); + processInfoDetailEOList.add(processInfoDetailEO); + } + + try { + List certificationIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).distinct().collect(Collectors.toList()); + // 将当前责任人的待办任务转为已办 + LambdaUpdateWrapper detailUpdateWrap = new LambdaUpdateWrapper<>(); + detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRJSRW.getKey()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getProjectLawsInventoryId,certificationIdList); + detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue()); + this.processInfoDetailEOService.update(detailUpdateWrap); + + // 给责任人分配待办中心的任务 (待提交) + this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.ZRRTJRW.getKey()); + + // 责任人接受任务,将数据的状态更新为 结果待提交。 + this.updateBatchById(projectCertificationInventoryEOList); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("责任人-接受任务失败:" + ex.getMessage()); + throw new JeroBootException("接受任务失败!"); + } + + return Result.OK("接受任务成功!"); + } + + /** + * 责任人拒绝任务 + * @param json + * @return + */ + private Result dutyPersonRejectTask(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.TASK_TO_BE_CONFIRMED.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("至少选择一条数据流程状态为'任务待确认'的数据!"); + } + + ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); + + // 给认证工程师分配待办中心的任务 + String certificationEngineer = projectLibraryBase.getCertificationEngineer(); + if(StringUtils.isEmpty(certificationEngineer)){ + throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!"); + } + + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()); + } + + try { + // 将当前责任人的待办任务转为已办 + LambdaUpdateWrapper detailUpdateWrap = new LambdaUpdateWrapper<>(); + detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId()); + detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRJSRW.getKey()); + detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue()); + this.processInfoDetailEOService.update(detailUpdateWrap); + + List processInfoDetailEOList = new ArrayList<>(); + List certificationEngineerList = Arrays.asList(certificationEngineer.split(",")); + // 给认证工程师分配任务 + for (String userId : certificationEngineerList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(userId); + processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSJSRW.getKey()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId()); + processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId()); + processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue()); + processInfoDetailEOList.add(processInfoDetailEO); + } + + // 删除该项目数据的待办任务,key为 认证工程师接受任务的数据 + QueryWrapper deleteDetailWrap = new QueryWrapper<>(); + deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.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); + + // 责任人接受任务,将数据的状态更新为 结果待提交。 + this.updateBatchById(projectCertificationInventoryEOList); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("责任人-拒绝任务失败:" + ex.getMessage()); + throw new JeroBootException("拒绝任务失败!"); + } + return Result.OK("拒绝任务成功!"); + } + + /** + * 认证工程师退回至studio任务 + * @param json + * @return + */ private Result certificationReturnedStudioTask(JSONObject json) { String ids = json.getString("ids"); if(StringUtils.isEmpty(ids)){ @@ -720,18 +1088,23 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl processInfoDetailEOList = new ArrayList<>(); + /*List processInfoDetailEOList = new ArrayList<>(); ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); processInfoDetailEO.setUserId(projectLibraryBase.getStudioEngineer()); processInfoDetailEOList.add(processInfoDetailEO); - this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.STUDIOFQ.getKey()); + this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.STUDIOFQ.getKey());*/ try { for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()); } - // 认证工程师发起任务,将数据的状态更新为 任务待确认。 + + // 认证工程师退回任务到studio,将数据的状态更新为 认证退回 this.updateBatchById(projectCertificationInventoryEOList); + + // 更新该项目认证流程中,认证工程师的任务状态。 + // 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 + this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList); }catch (Exception ex){ ex.printStackTrace(); log.error("认证工程师-退回认证清单任务失败:" + ex.getMessage()); @@ -773,41 +1146,26 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl processInfoDetailEOList = new ArrayList<>(); for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()); - } - // 给责任人分配待办中心的任务 - List dutyPersonList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList()); - List processInfoDetailEOList = new ArrayList<>(); - for (String dutyPerson : dutyPersonList) { ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); - processInfoDetailEO.setUserId(dutyPerson); + processInfoDetailEO.setUserId(projectCertificationInventoryEO.getDutyPerson()); + processInfoDetailEO.setEndTime(projectCertificationInventoryEO.getEndTime()); + processInfoDetailEO.setProjectLawsInventoryId(projectCertificationInventoryEO.getId()); processInfoDetailEOList.add(processInfoDetailEO); } + this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.ZRRJSRW.getKey()); - // 更新该项目认证流程中,认证工程师的任务状态。 - 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,CertificationFlowNodeEnum.RZGCSJSRW.getKey()); - List detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper); - - for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) { - processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue()); - } - - this.processInfoDetailEOService.updateBatchById(detailEOList); - } - // 认证工程师发起任务,将数据的状态更新为 任务待确认。 this.updateBatchById(projectCertificationInventoryEOList); + + // 更新该项目认证流程中,认证工程师的任务状态。 + // 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 + this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList); }catch (Exception ex){ ex.printStackTrace(); log.error("认证工程师-发起认证清单任务失败:" + ex.getMessage()); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml index 7fdaf67df..d3d4486ae 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/mapper/xml/ProcessInfoEOMapper.xml @@ -179,6 +179,34 @@ process_info_detail pid where pid.process_info_id = pi.id and pid.STATUS = 'NotDone' order by pid.end_time asc limit 1 ) as end_time, + pi.STATUS, pi.prc_num, pi.prc_name, diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index e1a9a6991..8d170f76b 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1406,4 +1406,22 @@ module.exports = { missionRejection:'Mission Rejection', turnToDo:'Turn To Do', initiateTask:'Initiate a Task', + compliancereport:'Generate compliance report', + todocenter:'To-do center', + areYouReturnToStudio:'Are you sure to return to studio?', + confirmLaunchTask:'Confirm launch task ?', + conditionsNotMet:'Conditions not met', + onlyProcessStatusReturned:'Only the data whose process status is list to be checked and rejected by the responsible person can be returned', + onlyProcessReturned:'Only data with process status of list to be checked and rejected by responsible person can be initiated', + confirmToAcceptTheTask:'Confirm to accept the task ?', + confirmRejectTask:'Confirm Reject Task ?', + onlyDataStatusConfirmedSelected:'Only data with process status of task to be confirmed can be selected', + onlyDataStatusSubmittedCanBeSelected:'Only data with process status of result to be submitted can be selected', + operationWithoutPermission:'Operation without permission', + data:"'s data", + confirmApproval:'Confirm approval?', + confirmReturnForApproval:'Confirm return for approval ?', + onlyDataStatusResultReviewedCanBeSelected:'Only data with process status of result to be reviewed can be selected', + confirmResetProcess:'Confirm reset process?', + confirmUrging:'Confirm urging ?', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 394e268a2..a26417b59 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1507,4 +1507,22 @@ module.exports = { missionRejection:'任务拒绝', turnToDo:'转办', initiateTask:'发起任务', + areYouReturnToStudio:'确认退回至studio吗?', + confirmLaunchTask:'确认发起任务?', + conditionsNotMet:'不满足条件', + onlyProcessStatusReturned:'只能退回流程状态为清单待校核和责任人拒绝的数据', + onlyProcessReturned:'只能发起流程状态为清单待校核和责任人拒绝的数据', + confirmToAcceptTheTask:'确认接受任务?', + confirmRejectTask:'确认拒绝任务?', + onlyDataStatusConfirmedSelected:'只能选择流程状态为任务待确认的数据', + onlyDataStatusSubmittedCanBeSelected:'只能选择流程状态为结果待提交的数据', + operationWithoutPermission:'没有权限操作', + data:"的数据", + compliancereport:'生成合规报告', + todocenter:'待办中心', + confirmApproval:'确认通过审批?', + confirmReturnForApproval:'确认退回审批?', + onlyDataStatusResultReviewedCanBeSelected:'只能选择流程状态为结果待审查的数据', + confirmResetProcess:'确认重置流程?', + confirmUrging:'确认催办', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/ProjectDetails/index.vue b/jero-web/src/views/projectManagement/ProjectDetails/index.vue index bc1917952..d42bea7ef 100644 --- a/jero-web/src/views/projectManagement/ProjectDetails/index.vue +++ b/jero-web/src/views/projectManagement/ProjectDetails/index.vue @@ -11,18 +11,19 @@
+ + + + + + +
- - {{$t('comment')}} -
-
- - {{$t('historicalVersion')}} + @click="todocenterClick"> + + {{$t('todocenter')}}
{{$t('UpdateLog')}}
+
+ + {{$t('historicalVersion')}} +
@@ -241,6 +248,9 @@ } else if (this.$route.query.type == '105') { this.textColor(this.$t('TaskParameterCollection')) this.textTitle = this.$t('TaskParameterCollection') + }else if (this.$route.query.type == '106') { + this.textColor(this.$t('certificationList')) + this.textTitle = this.$t('certificationList') } } else { if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) { @@ -308,6 +318,10 @@ text[i].classList.add('Virtual-detail-left-text-color') } } + }, + //待办中心跳转 + todocenterClick(){ + }, UpdateLogClick() { this.$refs.updateLogRef.getList({ projectLibraryId: this.$route.query.id }) diff --git a/jero-web/src/views/projectManagement/components/certificationList/index.vue b/jero-web/src/views/projectManagement/components/certificationList/index.vue index ee810677a..9372e9d99 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/index.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/index.vue @@ -117,7 +117,7 @@