1.根据流程实例id(processInstanceId)获取流程的历史记录,并按照发起时间排序
List<HistoricTaskInstance> historicTaskInstanceList = ProcessEngines.getDefaultProcessEngine().
getHistoryService().createHistoricTaskInstanceQuery().
processInstanceId(processInstanceId).
orderByTaskCreateTime().asc().list();
2.通过for each 循环遍历列表 通过historicTaskInstanceLis.get*** 方法即可取出单个历史任务的属性,并设置一个index来标记步骤的编号
index=1;
for (HistoricTaskInstance historicTaskInstance : historicTaskInstanceList) {
//父级流程任务Id
historicTaskInstance.getParentTaskId();
//taskId 活动ID
historicTaskInstance.getId();
//任务序号
processHistoryDTO.setIndexKey(index);
index+=1;
//节点ID
historicTaskInstance.getTaskDefinitionKey();
//办理时间
historicTaskInstance.getEndTime();
//接收时间
historicTaskInstance.getStartTime();
//节点名称
historicTaskInstance.getName();
//节点状态
if (endTimeDate != null) {
processHistoryDTO.setStates("已结束");
}else{
processHistoryDTO.setStates("运行中");
}
//会签、绿色通道等消息(需要取出getDescription的内容进行判断)
historicTaskInstance.getDescription()
}
本文介绍如何使用Activiti工作流引擎,通过流程实例ID获取并排序流程的历史记录,再利用foreach循环遍历这些历史任务,提取关键属性如父级流程任务ID、活动ID、任务序号等,用于业务流程监控和分析。

2937

被折叠的 条评论
为什么被折叠?



