Activiti7根据taskId获取Activity对象

  • 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); 
}

 

ZPY

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: