7. flowable - 查询我的待办和审批通过和查询我的已办

话不多说,直接上代码,这是项目目录结构,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

 

接口调用成功,完成待办。

完成后验证是否完成,需要查询一下我的已办,代码如下:

@PostMapping("listDone")
public ResultDTO<TaskInstanceDTO> listDone(String userId) {
    ResultDTO<TaskInstanceDTO> resultDTO = new ResultDTO<>(ReturnCode.SUCCESS, "查询成功");
    List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceApplicationService.listDone(userId);
    if (CollUtil.isEmpty(historicTaskInstanceList)) {
        return new ResultDTO<>(ReturnCode.FAIL, "查询无数据");
    }
    List<HistoricProcessInstance> historicProcessInstanceList = processInstanceApplicationService.listHistoryProcessInstanceByHistoricTaskInstanceList(historicTaskInstanceList);
    if (CollUtil.isEmpty(historicProcessInstanceList)) {
        return new ResultDTO<>(ReturnCode.FAIL, "查询无数据");
    }
    resultDTO.setDataList(TaskInstanceAssembler.toDTOByHistory(historicTaskInstanceList, historicProcessInstanceList));
    return resultDTO;
}

下面是swagger接口测试,把用户id当做参数传入

 

 

 

点击execute执行

 

 

 发现确实是刚刚执行的任务,接口测试通过。

 

posted @ 2021-04-04 18:00  咕咚很困了  阅读(11681)  评论(0)    收藏  举报