一、获取已办任务
通过historyService进行获取已办任务
首先获取登录人的username
//获取登录人的username
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser sysUser = loginUser.getSysUser();
securityUtil.logInAs(sysUser.getUserName());
通过history根据获取到的username来获取已经完成的task列表
//通过historyServce获取任务列表
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
//添加审批人username获取特定task
.taskAssignee(sysUser.getUserName())
//获取已经完成的任务
.finished()
//根据结束时间进行倒序排序
.orderByHistoricTaskInstanceEndTime()
.desc()
//进行分页操作
.list();
可以通过流来过滤掉主动撤销的完成任务
List<HistoricTaskInstance> collect = list.stream().filter(ht -> {
//deleteReason为空时,表示没有撤销
return ht.getDeleteReason() == null;
}).collect(Collectors.toList());
通过查出的task中的instanceId可以获取创建人id
//获取历史流程
HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(item.getProcessInstanceId()).singleResult();
//获取流程创建人id
String startUserId = processInstance.getStartUserId();