话不多说,直接上代码,这是项目目录结构,DDD领域驱动模型,任务实例单独一个package

查询我的待办代码如下,如要传入参数为用户id,
@PostMapping("listTodo")
public ResultDTO<TaskInstanceDTO> listTodo(String userId){
ResultDTO<TaskInstanceDTO> resultDTO = new ResultDTO<>(ReturnCode.SUCCESS, "查询成功");
List<Task> taskList = taskInstanceApplicationService.listTodo(userId);
if (CollUtil.isEmpty(taskList)) {
return new ResultDTO<>(ReturnCode.FAIL, "查询无数据");
}
List<HistoricProcessInstance> historicProcessInstanceList = processInstanceApplicationService.listHistoryProcessInstanceByTaskList(taskList);
if (CollUtil.isEmpty(historicProcessInstanceList)) {
return new ResultDTO<>(ReturnCode.FAIL, "查询无数据");
}
resultDTO.setDataList(TaskInstanceAssembler.convertToTaskInstanceDTO(taskList, historicProcessInstanceList));
return resultDTO;
}
下面是swagger接口测试:

根据我们之前配置的流程定义,第一个任务节点应该是张三

查询张三的待办任务,可以查询到张三有一个刚刚发起的流程实例下面的待办,因为我有很多测试数据,这边就只截了一个

完成待办代码如下:
@PostMapping("complete")
public ResultDTO<TaskInstanceDTO> complete(String taskId, String userId){
ResultDTO<TaskInstanceDTO> resultDTO = new ResultDTO<>(ReturnCode.SUCCESS, "审批成功");
Boolean flag = taskInstanceApplicationService.complete(taskId, userId);
if(!flag){
return new ResultDTO<>(ReturnCode.FAIL, "审批失败");
}
return resultDTO;
}
下面是swagger接口测试,把刚刚查到的taskId当做参数传入:

点击execute

接口调用成功,完成待办。
原文:https://www.cnblogs.com/songci/p/14616646.html