From 1a14907922dff4d0e0b4eaebc8110cdaa2aa7e85 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Wed, 25 May 2022 18:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4=E6=8E=A5=E5=8F=A3=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E3=80=82=20studio=E7=BC=96=E8=BE=91=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E6=B8=85=E5=8D=95=EF=BC=8C=E5=90=8C=E6=AD=A5=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E7=AC=A6=E5=90=88=E6=80=A7=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E3=80=81prehomo=E7=A1=AE=E8=AE=A4=E6=B5=81=E7=A8=8B=E3=80=81?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=AC=A6=E5=90=88=E6=80=A7=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/enums/OperatorTypeEnum.java | 2 + .../ProjectLawsInventoryEOServiceImpl.java | 141 ++++++++++++++++-- .../impl/ProjectLibraryBaseServiceImpl.java | 5 +- .../wkflow/controller/workFlowController.java | 4 + .../feginClient/WorkFlowFeignClient.java | 8 + .../impl/WorkFlowFeignClientImpl.java | 9 ++ 6 files changed, 158 insertions(+), 11 deletions(-) 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