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 ff2340860..6a2bed01d 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 @@ -102,7 +102,7 @@ public interface IProjectCertificationInventoryEOService extends IService processInfoDetailEOList, ProcessInfoEO processInfoEO); + void addProcessInfoDetailEO(List processInfoDetailEOList, String processInfoId, String taskDefinitionKey); Result> getRoleByUserId(Map params); 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 370ef55f1..1d9bbca81 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 @@ -342,12 +342,20 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 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); this.updateBatchById(projectCertificationInventoryEOList); return Result.OK("发布成功!"); } @@ -366,6 +374,9 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl deleteWrap = new QueryWrapper<>(); deleteWrap.lambda().eq(ProcessInfoEO::getId,projectLibraryId); this.processInfoEOService.remove(deleteWrap); @@ -375,19 +386,28 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl processInfoDetailEOList,ProcessInfoEO processInfoEO){ + public void addProcessInfoDetailEO(List processInfoDetailEOList,String processInfoId,String taskDefinitionKey){ processInfoDetailEOList.forEach(detail -> { + detail.setActiProcInstId(processInfoId); + detail.setProcessInfoId(processInfoId); detail.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue()); + detail.setTaskDefinitionKey(taskDefinitionKey); + detail.setStatus(TaskStatusEnum.NOT_DONE.getValue()); +// detail.setEndTime(DateUtils.str2Date(endTime,DateUtils.date_sdf.get())); + detail.setCreateTime(new Date()); + detail.setStatus(TaskStatusEnum.NOT_DONE.getValue()); }); - // 删除该项目数据的待办任务,key为 认证工程师接受任务的数据 - QueryWrapper deleteDetailWrap = new QueryWrapper<>(); - deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoEO.getId()); - deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey()); - this.processInfoDetailEOService.remove(deleteDetailWrap); + List userIdList = processInfoDetailEOList.stream().map(ProcessInfoDetailEO::getUserId).distinct().collect(Collectors.toList()); + QueryWrapper removeWrap = new QueryWrapper<>(); + removeWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoId); + removeWrap.lambda().in(ProcessInfoDetailEO::getUserId,userIdList); + // 删除用户在这个认证清单流程中其它的待办任务 + this.processInfoDetailEOService.remove(removeWrap); + this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); } @@ -650,14 +670,14 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl certificationReturnedStudioTask(JSONObject json) { + 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.LIST_TO_BE_CHECKED.getValue()); + flowStatusList.add(CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.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); + if (StringUtils.isEmpty(projectLibraryBase.getStudioEngineer())) { + throw new JeroBootException("该项目的studio为空,请维护studio后再进行退回操作!"); + } + + // 给studio分配待办中心任务 + List processInfoDetailEOList = new ArrayList<>(); + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(projectLibraryBase.getStudioEngineer()); + processInfoDetailEOList.add(processInfoDetailEO); + this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.STUDIOFQ.getKey()); + + try { + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { + projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue()); + } + // 认证工程师发起任务,将数据的状态更新为 任务待确认。 + this.updateBatchById(projectCertificationInventoryEOList); + }catch (Exception ex){ + ex.printStackTrace(); + log.error("认证工程师-退回认证清单任务失败:" + ex.getMessage()); + throw new JeroBootException("退回任务失败!"); + } + + return Result.OK("退回任务成功!"); + } + /** * 认证工程师发起任务 * @param json @@ -700,10 +766,45 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl 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); + 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); }catch (Exception ex){ 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 d85aad48a..7fdaf67df 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 @@ -203,7 +203,10 @@ where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus} ) ) - AND pi.flow_type = #{params.qdqrFlowTypeValue} + AND pi.flow_type IN + + #{item} + )temp order by temp.end_time asc diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java index f72b89ba1..6549e3e92 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/todoCenter/service/impl/ProcessInfoEOServiceImpl.java @@ -39,6 +39,7 @@ import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; import com.jero.modules.wkflow.enums.FlowTypeEnum; import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -199,11 +200,16 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl qdqrFlowTypeValue = new ArrayList<>(); + qdqrFlowTypeValue.add(FlowTypeEnum.QDQR.getValue()); + qdqrFlowTypeValue.add(FlowTypeEnum.CERTIFICATION_LC.getValue()); + params.put("qdqrFlowTypeValue",qdqrFlowTypeValue); IPage page = new Page(pageNo, pageSize); IPage result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params); @@ -304,7 +310,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl flowTypeList = new ArrayList<>(); flowTypeList.add(FlowTypeEnum.RWQRLC.getValue()); flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue()); - flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue()); + // flowTypeList.add(FlowTypeEnum.PREHOMOQRLC.getValue()); flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue()); //根据法规清单id,查询待办中心数据 @@ -396,7 +402,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl