开发中,我们有这样一种需求,
当流程实例完成后,我们要查下流程活动具体的执行情况,比如这个流程实例什么时候开始的,什么时候结束的,
以及中间具体的执行步骤,这时候,我们需要查询历史流程活动执行表,act_hi_actinst
/**
* 历史活动查询
*/
@Test
public void historyActInstanceList(){
List<HistoricActivityInstance> list=processEngine.getHistoryService() // 历史任务Service
.createHistoricActivityInstanceQuery() // 创建历史活动实例查询
.processInstanceId("27501") // 指定流程实例id
.finished() // 查询已经完成的任务
.list();
for(HistoricActivityInstance hai:list){
System.out.println("任务ID:"+hai.getId());
System.out.println("流程实例ID:"+hai.getProcessInstanceId());
System.out.println("活动名称:"+hai.getActivityName());
System.out.println("办理人:"+hai.getAssignee());
System.out.println("开始时间:"+hai.getStartTime());
System.out.println("结束时间:"+hai.getEndTime());
System.out.println("===========================");
}
运行结果:
任务ID:27502
流程实例ID:27501
活动名称:Start
办理人:null
开始时间:Sun Jul 02 10:50:13 CST 2017
结束时间:Sun Jul 02 10:50:13 CST 2017
===========================
任务ID:27503
流程实例ID:27501
活动名称:学生
办理人:张三
开始时间:Sun Jul 02 10:50:13 CST 2017
结束时间:Sun Jul 02 10:53:27 CST 2017
===========================
任务ID:30001
流程实例ID:27501
活动名称:班长审批
办理人:李四
开始时间:Sun Jul 02 10:53:27 CST 2017
结束时间:Sun Jul 02 10:54:32 CST 2017
===========================
任务ID:32501
流程实例ID:27501
活动名称:班主任审批
办理人:王五
开始时间:Sun Jul 02 10:54:32 CST 2017
结束时间:Sun Jul 02 10:55:56 CST 2017
===========================
任务ID:35001
流程实例ID:27501
活动名称:End
办理人:null
开始时间:Sun Jul 02 10:55:56 CST 2017
结束时间:Sun Jul 02 10:55:56 CST 2017
===========================