From a50d46a4309f6c5d084fde9da0eadb7d6f9bb603 Mon Sep 17 00:00:00 2001 From: lyh2668 <6520076+lyh2668@user.noreply.gitee.com> Date: Fri, 1 Apr 2022 12:08:06 +0000 Subject: [PATCH] =?UTF-8?q?!16=20=E4=BC=98=E5=8C=96WfTaskService=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20*=20fix:=20=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=B1=BB=E5=9E=8B=20*=20feat:=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BB=A3=E5=8A=9E=E3=80=81=E5=B7=B2=E5=8A=9E=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=8F=98=E9=87=8F=E5=8F=82=E6=95=B0=EF=BC=8C=E4=BB=8E?= =?UTF-8?q?=E8=80=8C=E5=8F=AF=E4=BB=A5=E5=AE=9E=E7=8E=B0=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=BD=A2=E5=BC=8F=E5=85=B3=E8=81=94=E4=B8=9A=E5=8A=A1=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=20*=20fix:=20=E4=BC=98=E5=8C=96IService=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E6=96=B9=E6=B3=95=E7=9A=84=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/workflow/WfTaskController.java | 6 ++-- .../workflow/service/IWfTaskService.java | 10 +++--- .../service/impl/WfTaskServiceImpl.java | 34 ++++++++++++------- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java index 5790da03..256a3103 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java @@ -3,6 +3,7 @@ package com.ruoyi.web.controller.workflow; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.workflow.domain.dto.WfNextDto; import com.ruoyi.workflow.domain.vo.WfTaskVo; import com.ruoyi.workflow.domain.bo.WfTaskBo; import com.ruoyi.workflow.service.IWfTaskService; @@ -77,7 +78,7 @@ public class WfTaskController { @ApiOperation(value = "获取流程变量", response = WfTaskVo.class) @GetMapping(value = "/processVariables/{taskId}") public R processVariables(@ApiParam(value = "流程任务Id") @PathVariable(value = "taskId") String taskId) { - return flowTaskService.processVariables(taskId); + return R.ok(flowTaskService.getProcessVariables(taskId)); } @ApiOperation(value = "审批任务") @@ -146,7 +147,8 @@ public class WfTaskController { @ApiOperation(value = "获取下一节点") @PostMapping(value = "/nextFlowNode") public R getNextFlowNode(@RequestBody WfTaskBo bo) { - return flowTaskService.getNextFlowNode(bo); + WfNextDto wfNextDto = flowTaskService.getNextFlowNode(bo); + return wfNextDto != null ? R.ok(wfNextDto) : R.ok("流程已完结", null); } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java index 6c1e81b9..3abe29bd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java @@ -1,8 +1,8 @@ package com.ruoyi.workflow.service; import com.ruoyi.common.core.domain.PageQuery; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.workflow.domain.dto.WfNextDto; import com.ruoyi.workflow.domain.vo.WfTaskVo; import com.ruoyi.workflow.domain.bo.WfTaskBo; import com.ruoyi.workflow.domain.vo.WfViewerVo; @@ -154,15 +154,15 @@ public interface IWfTaskService { /** * 获取流程变量 - * @param taskId - * @return + * @param taskId 任务ID + * @return 流程变量 */ - R processVariables(String taskId); + Map getProcessVariables(String taskId); /** * 获取下一节点 * @param bo 任务 * @return */ - R getNextFlowNode(WfTaskBo bo); + WfNextDto getNextFlowNode(WfTaskBo bo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java index e939c234..7b2b112d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java @@ -7,7 +7,6 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import com.ruoyi.common.core.domain.PageQuery; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; @@ -596,6 +595,10 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ flowTask.setStartUserId(startUser.getNickName()); flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartDeptName(startUser.getDept().getDeptName()); + + // 流程变量 + flowTask.setProcVars(this.getProcessVariables(task.getId())); + flowList.add(flowTask); } @@ -652,6 +655,10 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ flowTask.setStartUserId(startUser.getNickName()); flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartDeptName(startUser.getDept().getDeptName()); + + // 流程变量 + flowTask.setProcVars(this.getProcessVariables(histTask.getId())); + hisTaskList.add(flowTask); } page.setTotal(taskInstanceQuery.count()); @@ -893,19 +900,20 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ /** * 获取流程变量 * - * @param taskId - * @return + * @param taskId 任务ID + * @return 流程变量 */ @Override - public R processVariables(String taskId) { - // 流程变量 - HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().includeProcessVariables().finished().taskId(taskId).singleResult(); + public Map getProcessVariables(String taskId) { + HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery() + .includeProcessVariables() + .finished() + .taskId(taskId) + .singleResult(); if (Objects.nonNull(historicTaskInstance)) { - return R.ok(historicTaskInstance.getProcessVariables()); - } else { - Map variables = taskService.getVariables(taskId); - return R.ok(variables); + return historicTaskInstance.getProcessVariables(); } + return taskService.getVariables(taskId); } /** @@ -915,7 +923,7 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ * @return */ @Override - public R getNextFlowNode(WfTaskBo bo) { + public WfNextDto getNextFlowNode(WfTaskBo bo) { Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult(); WfNextDto nextDto = new WfNextDto(); if (Objects.nonNull(task)) { @@ -965,10 +973,10 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ } } } else { - return R.ok("流程已完结", null); + return null; } } - return R.ok(nextDto); + return nextDto; } /**