- A+
所属分类:工作流引擎
在activiti7中,虽然没有提供直接的根据taskId获取Activity对象的方法,但是我们可以通过查询流程实例下的所有activity对象后,然后循环判断是否与给过来的taskId相同来得到对应的activity对象,是不是很简单?代码如下:
public static HistoricActivityInstance getActivityId(String taskId) {
TaskDto task = getTaskById(taskId);
// 获取historicTaskInstanceList
List<HistoricActivityInstance> historicTaskInstanceList = historyService
.createHistoricActivityInstanceQuery()
.processInstanceId(task.getProcessInstanceId())
.list();
// 从list中找到taskId匹配的Activity
return historicTaskInstanceList.stream().filter(
h -> taskId.equals(h.getTaskId())).findAny().orElse(null);
}
