diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java index 7b6862cd8..7ec3d757c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java @@ -23,6 +23,8 @@ public enum OperatorTypeEnum { UPDATE_TASK_INVENTORY_DETAIL("更新法规清单明细信息","updateTaskInventoryDetail"), UPDATE_DRE_TASK_STATUS("更新法规清单明细信息,dre任务状态","updateDreTaskStatus"), + GET_CURRENT_USER_ID("获取当前登录用户id","getCurrentUserId"), + /** * 项目库 - 项目详情 统计查询 操作类型枚举 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 c92412abc..a10e5b221 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 @@ -54,6 +54,9 @@ import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.wkflow.entity.ProcessHistoryEO; +import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum; +import com.jero.modules.wkflow.enums.FlowTypeEnum; +import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl; import com.jero.modules.wkflow.service.IProcessHistoryEOService; import com.jero.modules.wkflow.service.impl.ProcessHistoryEOServiceImpl; import lombok.SneakyThrows; @@ -187,6 +190,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl taskInventoryQueryWrapper = new QueryWrapper<>(); + taskInventoryQueryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId,projectLawsInventoryEO.getId()); + ProjectTaskInventoryEO projectTaskInventoryEO = projectTaskInventoryEOService.getBaseMapper().selectOne(taskInventoryQueryWrapper); + if(projectTaskInventoryEO != null){ + String designPId = projectTaskInventoryEO.getDesignPId(); + if(StringUtils.isNotEmpty(designPId)){ + updateFlowAssignee(projectLawsInventoryEO,projectTaskInventoryEO,designPId, FlowTypeEnum.SJFHXSHLC.getValue()); + } + + String verifyPId = projectTaskInventoryEO.getVerifyPId(); + if(StringUtils.isNotEmpty(verifyPId)){ + updateFlowAssignee(projectLawsInventoryEO,projectTaskInventoryEO,verifyPId, FlowTypeEnum.YZFHXSCLC.getValue()); + } + + String prehomoPId = projectTaskInventoryEO.getPrehomoPId(); + if(StringUtils.isNotEmpty(prehomoPId)){ + updateFlowAssignee(projectLawsInventoryEO,projectTaskInventoryEO,prehomoPId, FlowTypeEnum.PREHOMOQRLC.getValue()); + } + } + } + } + + /** + * 更新流程办理人 + * @param projectLawsInventoryEO 法规清单数据 + * @param projectTaskInventoryEO 任务清单数据 + * @param pId 流程实例id + * @param flowType 流程类型 + */ + public void updateFlowAssignee(ProjectLawsInventoryEO projectLawsInventoryEO,ProjectTaskInventoryEO projectTaskInventoryEO,String pId,String flowType){ + QueryWrapper taskInventoryDetailWrapper = new QueryWrapper<>(); + taskInventoryDetailWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectTaskInventoryEO.getProjectLawsInventoryId()); + taskInventoryDetailWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getActiProcInstId,pId); + taskInventoryDetailWrapper.lambda().eq(ProjectTaskInventoryDetailEO::getFlowType,flowType); + List taskInventoryDetailList = projectTaskInventoryDetailEOService.getBaseMapper().selectList(taskInventoryDetailWrapper); + + if(CollectionUtils.isNotEmpty(taskInventoryDetailList)){ + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : taskInventoryDetailList) { + if(StringUtils.equals(projectTaskInventoryDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + projectTaskInventoryDetailEO.setUserId(projectLawsInventoryEO.getDesignDutyId()); + } + if(StringUtils.equals(projectTaskInventoryDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + projectTaskInventoryDetailEO.setUserId(projectLawsInventoryEO.getDesignInitiatorId()); + } + this.projectTaskInventoryDetailEOService.updateById(projectTaskInventoryDetailEO); + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.PREHOMOQRLC.getValue())){ + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : taskInventoryDetailList) { + if(StringUtils.equals(projectTaskInventoryDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + projectTaskInventoryDetailEO.setUserId(projectLawsInventoryEO.getPrehomoDutyId()); + } + if(StringUtils.equals(projectTaskInventoryDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + projectTaskInventoryDetailEO.setUserId(projectLawsInventoryEO.getPrehomoInitiatorId()); + } + this.projectTaskInventoryDetailEOService.updateById(projectTaskInventoryDetailEO); + } + }else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : taskInventoryDetailList) { + if(StringUtils.equals(projectTaskInventoryDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.THE_RESPONSIBLE_PERSON_HANDLES_THE_TASK.getKey())){ + //更新责任人的任务 + projectTaskInventoryDetailEO.setUserId(projectLawsInventoryEO.getVerifyDutyId()); + } + if(StringUtils.equals(projectTaskInventoryDetailEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.SPONSOR_REVIEW.getKey())){ + //更新发起人的任务 + projectTaskInventoryDetailEO.setUserId(projectLawsInventoryEO.getVerifyInitiatorId()); + } + this.projectTaskInventoryDetailEOService.updateById(projectTaskInventoryDetailEO); + } + } + } + } + /** * 通过id删除 * @@ -1210,7 +1307,20 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl objectResult = new Result<>(); + try { + String projectLawsInventoryId = jsonObject.getString("projectLawsInventoryId"); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(ProjectLawsInventoryEO::getId,projectLawsInventoryId); + ProjectLawsInventoryEO projectLawsInventoryEO = this.baseMapper.selectOne(queryWrapper); + objectResult.setResult(projectLawsInventoryEO); + objectResult.setSuccess(true); + }catch (Exception ex){ + objectResult.setSuccess(false); + ex.printStackTrace(); + log.error("工作流后端查询法规清单失败:" + ex.getMessage()); + } + return objectResult; } if(StringUtils.equals(operatorType,OperatorTypeEnum.SEND_MSG.getValue())){ workFlowSendMsg(jsonObject); @@ -1643,17 +1753,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl change(Map parmas) { - List idList = Arrays.asList(parmas.get("ids").toString().split(",")); - if(CollectionUtils.isNotEmpty(idList)){ + String ids = parmas.get("ids").toString(); + if(StringUtils.isNotEmpty(ids)){ + List idList = Arrays.asList(ids.split(",")); + String projectLawsInventoryIds = ids; + String pIds = ""; + QueryWrapper updateLawsInventoryWrapper = new QueryWrapper<>(); updateLawsInventoryWrapper.lambda().in(ProjectLawsInventoryEO::getId,idList); ProjectLawsInventoryEO projectLawsInventoryEO = new ProjectLawsInventoryEO(); @@ -2437,6 +2551,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectTaskInventoryEOList = new ArrayList<>(); @@ -2461,9 +2576,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl projectTaskInventoryFeedbackEOList = projectTaskInventoryFeedbackEOService.getBaseMapper().selectList(queryTaskInventoryFeedbackWrapper); List feedbackIdList = projectTaskInventoryFeedbackEOList.stream().map(ProjectTaskInventoryFeedbackEO::getId).distinct().collect(Collectors.toList()); - QueryWrapper deleteFeedbackHistoryWrapper = new QueryWrapper<>(); - deleteFeedbackHistoryWrapper.lambda().in(FeedbackHistory::getFeedbackId,feedbackIdList); - feedbackHistoryService.remove(deleteFeedbackHistoryWrapper); + if(CollectionUtils.isNotEmpty(feedbackIdList)){ + QueryWrapper deleteFeedbackHistoryWrapper = new QueryWrapper<>(); + deleteFeedbackHistoryWrapper.lambda().in(FeedbackHistory::getFeedbackId,feedbackIdList); + feedbackHistoryService.remove(deleteFeedbackHistoryWrapper); + } //删除反馈意见数据 QueryWrapper deleteTaskInventoryFeedbackWrapper = new QueryWrapper<>(); @@ -2474,6 +2591,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl deleteConditionAssessmentWrapper = new QueryWrapper<>(); deleteConditionAssessmentWrapper.lambda().in(ConditionAssessmentEO::getProjectLawsInventoryId,idList); this.conditionAssessmentEOService.remove(deleteConditionAssessmentWrapper); + + Map params = new HashMap<>(); + params.put("projectLawsInventoryIds",projectLawsInventoryIds); + params.put("pIds",pIds); + //根据流程实例id 、 法规清单id 删除相关流程。 + workFlowFeignClient.deleteProcessInstanceByProjectLawsInventoryIds(params); } return Result.OK("变更成功!"); } 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 cef4706ae..fd6bd457f 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 @@ -363,7 +363,7 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectDetailsStatisticsGroupByTerritory(Map params) { String operatorType = (String) params.get("operatorType"); String projectLibraryId = (String) params.get("projectLibraryId"); - if(org.apache.commons.lang3.StringUtils.isEmpty(projectLibraryId)){ + if(StringUtils.isEmpty(projectLibraryId)){ throw new JeroBootException("项目库id不能为空!"); } String cut = (String) params.get("cut"); @@ -553,7 +553,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl completeTaskByUserId(@RequestBody BusMes busMes){ + if(StringUtils.isEmpty(busMes.getUserId())){ + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + busMes.setUserId(currentUser.getId()); + } Result str = workFlowFeignClient.completeTaskByUserId(busMes); if(str.getCode() == 500){ str.setSuccess(false); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java index ce81e57d2..54850b646 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/WorkFlowFeignClient.java @@ -79,6 +79,14 @@ public interface WorkFlowFeignClient { @RequestMapping(value = "/bat-wkflow/deleteProcessInstance",method = RequestMethod.GET) Result deleteProcessInstance(@RequestParam("pId") String pId); + /** + * 根据法规清单id删除流程 + * @param params + * @return + */ + @RequestMapping(value = "/bat-wkflow/deleteProcessInstanceByProjectLawsInventoryIds",method = RequestMethod.GET) + Result deleteProcessInstanceByProjectLawsInventoryIds(@RequestParam Map params); + /** * 流程实例明细列表 * @param prcNum diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java index a79bf2d65..f41e56c44 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/wkflow/feginClient/impl/WorkFlowFeignClientImpl.java @@ -96,6 +96,15 @@ public class WorkFlowFeignClientImpl{ return workFlowFeignClient.deleteProcessInstance(pId); } + /** + * 根据法规清单id删除流程 + * @param params + * @return + */ + public Result deleteProcessInstanceByProjectLawsInventoryIds(@RequestParam Map params){ + return workFlowFeignClient.deleteProcessInstanceByProjectLawsInventoryIds(params); + } + /** * 流程实例明细列表 * @param prcNum