!16 优化WfTaskService方法

* fix: 修改接口返回类型
* feat: 增加代办、已办流程变量参数,从而可以实现参数形式关联业务表单
* fix: 优化IService两个方法的返回
This commit is contained in:
lyh2668
2022-04-01 12:08:06 +00:00
committed by KonBAI
parent b5b687f65f
commit a50d46a430
3 changed files with 30 additions and 20 deletions

View File

@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.workflow;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; 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.vo.WfTaskVo;
import com.ruoyi.workflow.domain.bo.WfTaskBo; import com.ruoyi.workflow.domain.bo.WfTaskBo;
import com.ruoyi.workflow.service.IWfTaskService; import com.ruoyi.workflow.service.IWfTaskService;
@@ -77,7 +78,7 @@ public class WfTaskController {
@ApiOperation(value = "获取流程变量", response = WfTaskVo.class) @ApiOperation(value = "获取流程变量", response = WfTaskVo.class)
@GetMapping(value = "/processVariables/{taskId}") @GetMapping(value = "/processVariables/{taskId}")
public R processVariables(@ApiParam(value = "流程任务Id") @PathVariable(value = "taskId") String taskId) { public R processVariables(@ApiParam(value = "流程任务Id") @PathVariable(value = "taskId") String taskId) {
return flowTaskService.processVariables(taskId); return R.ok(flowTaskService.getProcessVariables(taskId));
} }
@ApiOperation(value = "审批任务") @ApiOperation(value = "审批任务")
@@ -146,7 +147,8 @@ public class WfTaskController {
@ApiOperation(value = "获取下一节点") @ApiOperation(value = "获取下一节点")
@PostMapping(value = "/nextFlowNode") @PostMapping(value = "/nextFlowNode")
public R getNextFlowNode(@RequestBody WfTaskBo bo) { public R getNextFlowNode(@RequestBody WfTaskBo bo) {
return flowTaskService.getNextFlowNode(bo); WfNextDto wfNextDto = flowTaskService.getNextFlowNode(bo);
return wfNextDto != null ? R.ok(wfNextDto) : R.ok("流程已完结", null);
} }
/** /**

View File

@@ -1,8 +1,8 @@
package com.ruoyi.workflow.service; package com.ruoyi.workflow.service;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; 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.vo.WfTaskVo;
import com.ruoyi.workflow.domain.bo.WfTaskBo; import com.ruoyi.workflow.domain.bo.WfTaskBo;
import com.ruoyi.workflow.domain.vo.WfViewerVo; import com.ruoyi.workflow.domain.vo.WfViewerVo;
@@ -154,15 +154,15 @@ public interface IWfTaskService {
/** /**
* 获取流程变量 * 获取流程变量
* @param taskId * @param taskId 任务ID
* @return * @return 流程变量
*/ */
R processVariables(String taskId); Map<String, Object> getProcessVariables(String taskId);
/** /**
* 获取下一节点 * 获取下一节点
* @param bo 任务 * @param bo 任务
* @return * @return
*/ */
R getNextFlowNode(WfTaskBo bo); WfNextDto getNextFlowNode(WfTaskBo bo);
} }

View File

@@ -7,7 +7,6 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.ruoyi.common.core.domain.PageQuery; 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.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
@@ -596,6 +595,10 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
flowTask.setStartUserId(startUser.getNickName()); flowTask.setStartUserId(startUser.getNickName());
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserName(startUser.getNickName());
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartDeptName(startUser.getDept().getDeptName());
// 流程变量
flowTask.setProcVars(this.getProcessVariables(task.getId()));
flowList.add(flowTask); flowList.add(flowTask);
} }
@@ -652,6 +655,10 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
flowTask.setStartUserId(startUser.getNickName()); flowTask.setStartUserId(startUser.getNickName());
flowTask.setStartUserName(startUser.getNickName()); flowTask.setStartUserName(startUser.getNickName());
flowTask.setStartDeptName(startUser.getDept().getDeptName()); flowTask.setStartDeptName(startUser.getDept().getDeptName());
// 流程变量
flowTask.setProcVars(this.getProcessVariables(histTask.getId()));
hisTaskList.add(flowTask); hisTaskList.add(flowTask);
} }
page.setTotal(taskInstanceQuery.count()); page.setTotal(taskInstanceQuery.count());
@@ -893,19 +900,20 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
/** /**
* 获取流程变量 * 获取流程变量
* *
* @param taskId * @param taskId 任务ID
* @return * @return 流程变量
*/ */
@Override @Override
public R processVariables(String taskId) { public Map<String, Object> getProcessVariables(String taskId) {
// 流程变量 HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery()
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().includeProcessVariables().finished().taskId(taskId).singleResult(); .includeProcessVariables()
.finished()
.taskId(taskId)
.singleResult();
if (Objects.nonNull(historicTaskInstance)) { if (Objects.nonNull(historicTaskInstance)) {
return R.ok(historicTaskInstance.getProcessVariables()); return historicTaskInstance.getProcessVariables();
} else {
Map<String, Object> variables = taskService.getVariables(taskId);
return R.ok(variables);
} }
return taskService.getVariables(taskId);
} }
/** /**
@@ -915,7 +923,7 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
* @return * @return
*/ */
@Override @Override
public R getNextFlowNode(WfTaskBo bo) { public WfNextDto getNextFlowNode(WfTaskBo bo) {
Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult(); Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult();
WfNextDto nextDto = new WfNextDto(); WfNextDto nextDto = new WfNextDto();
if (Objects.nonNull(task)) { if (Objects.nonNull(task)) {
@@ -965,10 +973,10 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
} }
} }
} else { } else {
return R.ok("流程已完结", null); return null;
} }
} }
return R.ok(nextDto); return nextDto;
} }
/** /**