【入門篇】Activiti查詢指定流程定義下已完成的流程例項
阿新 • • 發佈:2019-02-18
需求
使用者和管理員有時候需要統計,有多少個業務例項通過了稽核,這個時候需要查詢指定流程下的已完成的流程例項,用做後期的統計。
涉及到的表
act_hi_procinst:流程例項歷史表
方案
根據流程定義key,依賴historyservice服務來完成
程式碼(這裡可以附加其他的條件,來細化查詢結果)
public void queryHistoryProcessInstance() { HistoryService historyService = processEngine.getHistoryService(); //建立歷史流程例項,查詢物件 HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery(); //設定查詢條件 //指定流程定義key,只查詢某個業務流程的例項 String processDefinitionKey = "purchasingflow"; historicProcessInstanceQuery.processDefinitionKey(processDefinitionKey); //設定只查詢已完成的 historicProcessInstanceQuery.finished(); //資料列表 List<HistoricProcessInstance> list = historicProcessInstanceQuery.list(); for (HistoricProcessInstance historicProcessInstance : list) { System.out.println("==================="); System.out.println("流程例項所屬流程定義id:" + historicProcessInstance.getProcessDefinitionId()); System.out.println("流程例項id:"+ historicProcessInstance.getId()); System.out.println("業務標識:" + historicProcessInstance.getBusinessKey()); System.out.println("開始執行時間:" + historicProcessInstance.getStartTime()); System.out.println("結束執行時間:" + historicProcessInstance.getEndTime()); System.out.println("執行時長:" + historicProcessInstance.getDurationInMillis()); } }