fix -- 优化流程任务方法,统一响应格式

This commit is contained in:
hewenqiang
2022-02-11 10:58:39 +08:00
parent 3022396404
commit e6bfd5bf0a
6 changed files with 64 additions and 68 deletions

View File

@@ -1,6 +1,8 @@
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.FlowTaskDto;
import com.ruoyi.workflow.domain.vo.FlowTaskVo;
import com.ruoyi.workflow.service.IFlowTaskService;
@@ -35,42 +37,41 @@ public class FlowTaskController {
@ApiOperation(value = "我发起的流程", response = FlowTaskDto.class)
@GetMapping(value = "/myProcess")
public R myProcess(@ApiParam(value = "当前页码", required = true) @RequestParam Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam Integer pageSize) {
return flowTaskService.myProcess(pageNum, pageSize);
public TableDataInfo<FlowTaskDto> myProcess(PageQuery pageQuery) {
return flowTaskService.myProcess(pageQuery);
}
@ApiOperation(value = "取消申请", response = FlowTaskDto.class)
@PostMapping(value = "/stopProcess")
public R stopProcess(@RequestBody FlowTaskVo flowTaskVo) {
return flowTaskService.stopProcess(flowTaskVo);
flowTaskService.stopProcess(flowTaskVo);
return R.ok();
}
@ApiOperation(value = "撤回流程", response = FlowTaskDto.class)
@PostMapping(value = "/revokeProcess")
public R revokeProcess(@RequestBody FlowTaskVo flowTaskVo) {
return flowTaskService.revokeProcess(flowTaskVo);
flowTaskService.revokeProcess(flowTaskVo);
return R.ok();
}
@ApiOperation(value = "获取待办列表", response = FlowTaskDto.class)
@GetMapping(value = "/todoList")
public R todoList(@ApiParam(value = "当前页码", required = true) @RequestParam Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam Integer pageSize) {
return flowTaskService.todoList(pageNum, pageSize);
public TableDataInfo<FlowTaskDto> todoList(PageQuery pageQuery) {
return flowTaskService.todoList(pageQuery);
}
@ApiOperation(value = "获取已办任务", response = FlowTaskDto.class)
@GetMapping(value = "/finishedList")
public R finishedList(@ApiParam(value = "当前页码", required = true) @RequestParam Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam Integer pageSize) {
return flowTaskService.finishedList(pageNum, pageSize);
public TableDataInfo<FlowTaskDto> finishedList(PageQuery pageQuery) {
return flowTaskService.finishedList(pageQuery);
}
@ApiOperation(value = "流程历史流转记录", response = FlowTaskDto.class)
@GetMapping(value = "/flowRecord")
public R flowRecord(String procInsId, String deployId) {
return flowTaskService.flowRecord(procInsId,deployId);
return R.ok(flowTaskService.flowRecord(procInsId, deployId));
}
@ApiOperation(value = "获取流程变量", response = FlowTaskDto.class)
@@ -82,7 +83,8 @@ public class FlowTaskController {
@ApiOperation(value = "审批任务")
@PostMapping(value = "/complete")
public R complete(@RequestBody FlowTaskVo flowTaskVo) {
return flowTaskService.complete(flowTaskVo);
flowTaskService.complete(flowTaskVo);
return R.ok();
}
@@ -103,7 +105,7 @@ public class FlowTaskController {
@ApiOperation(value = "获取所有可回退的节点")
@PostMapping(value = "/returnList")
public R findReturnTaskList(@RequestBody FlowTaskVo flowTaskVo) {
return flowTaskService.findReturnTaskList(flowTaskVo);
return R.ok(flowTaskService.findReturnTaskList(flowTaskVo));
}
@ApiOperation(value = "删除任务")
@@ -186,6 +188,6 @@ public class FlowTaskController {
*/
@RequestMapping("/flowViewer/{procInsId}")
public R getFlowViewer(@PathVariable("procInsId") String procInsId) {
return flowTaskService.getFlowViewer(procInsId);
return R.ok(flowTaskService.getFlowViewer(procInsId));
}
}

View File

@@ -1,10 +1,17 @@
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.FlowTaskDto;
import com.ruoyi.workflow.domain.vo.FlowTaskVo;
import com.ruoyi.workflow.domain.vo.FlowViewerVo;
import org.flowable.bpmn.model.UserTask;
import org.flowable.task.api.Task;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
/**
* @author XuanXuan
@@ -17,7 +24,7 @@ public interface IFlowTaskService {
*
* @param task 请求实体参数
*/
R complete(FlowTaskVo task);
void complete(FlowTaskVo task);
/**
* 驳回任务
@@ -40,7 +47,7 @@ public interface IFlowTaskService {
* @param flowTaskVo
* @return
*/
R findReturnTaskList(FlowTaskVo flowTaskVo);
List<UserTask> findReturnTaskList(FlowTaskVo flowTaskVo);
/**
* 删除任务
@@ -80,45 +87,40 @@ public interface IFlowTaskService {
/**
* 我发起的流程
* @param pageNum
* @param pageSize
*
* @return
*/
R myProcess(Integer pageNum, Integer pageSize);
TableDataInfo<FlowTaskDto> myProcess(PageQuery pageQuery);
/**
* 取消申请
* @param flowTaskVo
* @return
*/
R stopProcess(FlowTaskVo flowTaskVo);
void stopProcess(FlowTaskVo flowTaskVo);
/**
* 撤回流程
* @param flowTaskVo
* @return
*/
R revokeProcess(FlowTaskVo flowTaskVo);
void revokeProcess(FlowTaskVo flowTaskVo);
/**
* 代办任务列表
*
* @param pageNum 当前页码
* @param pageSize 每页条数
* @return
*/
R todoList(Integer pageNum, Integer pageSize);
TableDataInfo<FlowTaskDto> todoList(PageQuery pageQuery);
/**
* 已办任务列表
*
* @param pageNum 当前页码
* @param pageSize 每页条数
* @return
*/
R finishedList(Integer pageNum, Integer pageSize);
TableDataInfo<FlowTaskDto> finishedList(PageQuery pageQuery);
/**
* 流程历史流转记录
@@ -126,7 +128,7 @@ public interface IFlowTaskService {
* @param procInsId 流程实例Id
* @return
*/
R flowRecord(String procInsId, String deployId);
Map<String, Object> flowRecord(String procInsId, String deployId);
/**
* 根据任务ID查询挂载的表单信息
@@ -148,7 +150,7 @@ public interface IFlowTaskService {
* @param procInsId
* @return
*/
R getFlowViewer(String procInsId);
FlowViewerVo getFlowViewer(String procInsId);
/**
* 获取流程变量

View File

@@ -4,9 +4,12 @@ package com.ruoyi.workflow.service.impl;
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;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.flowable.common.constant.ProcessConstants;
@@ -86,10 +89,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
*/
@Transactional(rollbackFor = Exception.class)
@Override
public R complete(FlowTaskVo taskVo) {
public void complete(FlowTaskVo taskVo) {
Task task = taskService.createTaskQuery().taskId(taskVo.getTaskId()).singleResult();
if (Objects.isNull(task)) {
return R.fail("任务不存在");
throw new ServiceException("任务不存在");
}
if (DelegationState.PENDING.equals(task.getDelegationState())) {
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment());
@@ -104,7 +107,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskService.complete(taskVo.getTaskId());
}
}
return R.ok();
}
/**
@@ -318,7 +320,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @return
*/
@Override
public R findReturnTaskList(FlowTaskVo flowTaskVo) {
public List<UserTask> findReturnTaskList(FlowTaskVo flowTaskVo) {
// 当前任务 task
Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
// 获取流程定义信息
@@ -349,7 +351,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
userTaskList.retainAll(road);
}
}
return R.ok(userTaskList);
return userTaskList;
}
/**
@@ -411,19 +413,18 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
/**
* 我发起的流程
*
* @param pageNum
* @param pageSize
* @return
*/
@Override
public R myProcess(Integer pageNum, Integer pageSize) {
public TableDataInfo<FlowTaskDto> myProcess(PageQuery pageQuery) {
Page<FlowTaskDto> page = new Page<>();
Long userId = LoginHelper.getUserId();
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
.startedBy(userId.toString())
.orderByProcessInstanceStartTime()
.desc();
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.listPage(pageNum - 1, pageSize);
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery
.listPage(pageQuery.getPageNum() - 1, pageQuery.getPageSize());
page.setTotal(historicProcessInstanceQuery.count());
List<FlowTaskDto> flowList = new ArrayList<>();
for (HistoricProcessInstance hisIns : historicProcessInstances) {
@@ -461,7 +462,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
flowList.add(flowTask);
}
page.setRecords(flowList);
return R.ok(page);
return TableDataInfo.build(page);
}
/**
@@ -471,7 +472,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @return
*/
@Override
public R stopProcess(FlowTaskVo flowTaskVo) {
public void stopProcess(FlowTaskVo flowTaskVo) {
List<Task> task = taskService.createTaskQuery().processInstanceId(flowTaskVo.getInstanceId()).list();
if (CollectionUtils.isEmpty(task)) {
throw new RuntimeException("流程未启动或已执行完成,取消申请失败");
@@ -496,8 +497,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
endId).changeState();
}
}
return R.ok();
}
/**
@@ -507,7 +506,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @return
*/
@Override
public R revokeProcess(FlowTaskVo flowTaskVo) {
public void revokeProcess(FlowTaskVo flowTaskVo) {
Task task = taskService.createTaskQuery().processInstanceId(flowTaskVo.getInstanceId()).singleResult();
if (task == null) {
throw new RuntimeException("流程未启动或已执行完成,无法撤回");
@@ -553,20 +552,15 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//记录原活动方向
List<SequenceFlow> oriSequenceFlows = new ArrayList<>(flowNode.getOutgoingFlows());
return R.ok();
}
/**
* 代办任务列表
*
* @param pageNum 当前页码
* @param pageSize 每页条数
* @return
*/
@Override
public R todoList(Integer pageNum, Integer pageSize) {
public TableDataInfo<FlowTaskDto> todoList(PageQuery pageQuery) {
Page<FlowTaskDto> page = new Page<>();
Long userId = LoginHelper.getUserId();
TaskQuery taskQuery = taskService.createTaskQuery()
@@ -575,7 +569,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
.taskCandidateOrAssigned(userId.toString())
.orderByTaskCreateTime().desc();
page.setTotal(taskQuery.count());
List<Task> taskList = taskQuery.listPage(pageNum - 1, pageSize);
List<Task> taskList = taskQuery.listPage(pageQuery.getPageNum() - 1, pageQuery.getPageSize());
List<FlowTaskDto> flowList = new ArrayList<>();
for (Task task : taskList) {
FlowTaskDto flowTask = new FlowTaskDto();
@@ -607,19 +601,17 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
page.setRecords(flowList);
return R.ok(page);
return TableDataInfo.build(page);
}
/**
* 已办任务列表
*
* @param pageNum 当前页码
* @param pageSize 每页条数
* @return
*/
@Override
public R finishedList(Integer pageNum, Integer pageSize) {
public TableDataInfo<FlowTaskDto> finishedList(PageQuery pageQuery) {
Page<FlowTaskDto> page = new Page<>();
Long userId = LoginHelper.getUserId();
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
@@ -628,7 +620,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
.taskAssignee(userId.toString())
.orderByHistoricTaskInstanceEndTime()
.desc();
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(pageNum - 1, pageSize);
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(pageQuery.getPageNum() - 1, pageQuery.getPageSize());
List<FlowTaskDto> hisTaskList = Lists.newArrayList();
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
FlowTaskDto flowTask = new FlowTaskDto();
@@ -667,7 +659,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
// Map<String, Object> result = new HashMap<>();
// result.put("result",page);
// result.put("finished",true);
return R.ok(page);
return TableDataInfo.build(page);
}
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
@@ -682,7 +674,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @return
*/
@Override
public R flowRecord(String procInsId, String deployId) {
public Map<String, Object> flowRecord(String procInsId, String deployId) {
Map<String, Object> map = new HashMap<>();
if (StringUtils.isNotBlank(procInsId)) {
List<HistoricActivityInstance> list = historyService
@@ -748,11 +740,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (StringUtils.isNotBlank(deployId)) {
SysForm sysForm = sysInstanceFormService.selectSysDeployFormByDeployId(deployId);
if (Objects.isNull(sysForm)) {
return R.fail("请先配置流程表单");
throw new ServiceException("请先配置流程表单");
}
map.put("formData", JsonUtils.parseObject(sysForm.getFormContent(), Map.class));
}
return R.ok(map);
return map;
}
/**
@@ -822,7 +814,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @return
*/
@Override
public R getFlowViewer(String procInsId) {
public FlowViewerVo getFlowViewer(String procInsId) {
// 构建查询条件
HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery()
.processInstanceId(procInsId);
@@ -835,7 +827,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
.stream().distinct().map(HistoricActivityInstance::getActivityId)
.collect(Collectors.toList());
// 构建视图类
return R.ok(new FlowViewerVo(finishedTaskList, unfinishedTaskList));
return new FlowViewerVo(finishedTaskList, unfinishedTaskList);
}
/**

View File

@@ -138,8 +138,8 @@ export default {
getList() {
this.loading = true;
finishedList(this.queryParams).then(response => {
this.finishedList = response.data.records;
this.total = response.data.total;
this.finishedList = response.rows;
this.total = response.total;
this.loading = false;
});
},

View File

@@ -215,8 +215,8 @@ export default {
getList() {
this.loading = true;
myProcessList(this.queryParams).then(response => {
this.myProcessList = response.data.records;
this.total = response.data.total;
this.myProcessList = response.rows;
this.total = response.total;
this.loading = false;
});
},

View File

@@ -135,8 +135,8 @@ export default {
getList() {
this.loading = true;
todoList(this.queryParams).then(response => {
this.todoList = response.data.records;
this.total = response.data.total;
this.todoList = response.rows;
this.total = response.total;
this.loading = false;
});
},