camunda-任务历史(待办已办)

camunda-任务历史(待办已办)

任务流经每个节点后生成的历史操作

  • 待办
  • 已办

TaskController

@RestController
public class TaskController {


    @Autowired
    private TaskService taskService;
    @Autowired
    private RuntimeService runtimeService;

    @Autowired
    private HistoryService historyService;


    /**
     * 已办(历史)
     * @param query
     * @return
     */
    @PostMapping("/process/task/his/list")
    public PageDto<TaskTodoDto> hisList(TaskHisPageQuery query) {
        int offset = (query.getPageIndex() - 1) * query.getPageSize();
        HistoricTaskInstanceQuery countHisQuery =
                historyService.createHistoricTaskInstanceQuery().taskAssignee(query.getAssignee());
        if (StringUtils.isNotBlank(query.getDefinitionId())){
            countHisQuery.caseDefinitionId(query.getDefinitionId());
        }
        long count = countHisQuery.count();
        PageDto<TaskTodoDto> page = new PageDto<>();
        page.setTotal(count);
        if (count == 0) {
            return page;
        }

        HistoricTaskInstanceQuery historicTaskInstanceQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(query.getAssignee());
        if (StringUtils.isNotBlank(query.getDefinitionId())){
            historicTaskInstanceQuery.caseDefinitionId(query.getDefinitionId());
        }
        List<HistoricTaskInstance> histories = historicTaskInstanceQuery.listPage(query.getPageIndex(), offset);
        List<TaskTodoDto> collect = histories.stream().map(t -> {
            TaskTodoDto taskTodoDto = new TaskTodoDto();
            taskTodoDto.setAssignee(t.getAssignee());
            taskTodoDto.setCreateTime(t.getStartTime());
            taskTodoDto.setDescription((String) runtimeService.getVariable(t.getExecutionId(), "title"));
            taskTodoDto.setExecutionId(t.getExecutionId());
            taskTodoDto.setProcessDefinitionId(t.getProcessDefinitionId());
            taskTodoDto.setTaskId(t.getId());
            taskTodoDto.setTaskName(t.getName());
            taskTodoDto.setTaskDefinitionKey(t.getTaskDefinitionKey());
            taskTodoDto.setProcessInstanceId(t.getProcessInstanceId());
            return taskTodoDto;
        }).collect(Collectors.toList());
        page.setData(collect);
        return page;
    }


    /**
     * 待办任务
     * @param query
     * @return
     */
    @PostMapping("/process/task/todo/list")
    public PageDto<TaskTodoDto> hisList(TodoListPageQuery query) {
        int offset = (query.getPageIndex() - 1) * query.getPageSize();
        TaskQuery countTaskQuery = taskService.createTaskQuery().taskAssignee(query.getAssignee());
        if (StringUtils.isNotBlank(query.getDefinitionId())){
            countTaskQuery.caseDefinitionId(query.getDefinitionId());
        }
        long count = countTaskQuery.count();
        PageDto<TaskTodoDto> page = new PageDto<>();
        page.setTotal(count);
        if (count == 0) {
            return page;
        }

        TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(query.getAssignee());
        if (StringUtils.isNotBlank(query.getDefinitionId())){
            taskQuery.caseDefinitionId(query.getDefinitionId());
        }
        List<Task> tasks = taskQuery.listPage(query.getPageIndex(), offset);
        List<TaskTodoDto> collect = tasks.stream().map(t -> {
            TaskTodoDto taskTodoDto = new TaskTodoDto();
            taskTodoDto.setAssignee(t.getAssignee());
            taskTodoDto.setCreateTime(t.getCreateTime());
            taskTodoDto.setDescription((String) runtimeService.getVariable(t.getExecutionId(), "title"));
            taskTodoDto.setExecutionId(t.getExecutionId());
            taskTodoDto.setProcessDefinitionId(t.getProcessDefinitionId());
            taskTodoDto.setTaskId(t.getId());
            taskTodoDto.setTaskName(t.getName());
            taskTodoDto.setTaskDefinitionKey(t.getTaskDefinitionKey());
            taskTodoDto.setProcessInstanceId(t.getProcessInstanceId());
            return taskTodoDto;
        }).collect(Collectors.toList());
        page.setData(collect);
        return page;
    }
}
TaskHisPageQuery
@Data
public class TaskHisPageQuery extends BasePage {
    /**
     * 处理人
     */
    private String assignee;

    /**
     * 流程Id
     */
    private String definitionId;

}

TodoListPageQuery
@Data
public class TodoListPageQuery extends BasePage {
    /**
     * 处理人
     */
    private String assignee;

    /**
     * 流程Id
     */
    private String definitionId;

}

@Data
public class BasePage {

    private Integer pageIndex;
    private Integer pageSize;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值