/**擷取發起人
* @param PROC_INST_ID_ //流程執行個體ID
* @from fhadmin.cn
*/
protected String getInitiator(String PROC_INST_ID_) {
HistoricProcessInstance hip = historyService.createHistoricProcessInstanceQuery().processInstanceId(PROC_INST_ID_).singleResult(); //擷取曆史流程執行個體
List<HistoricActivityInstance> hais = historyService.createHistoricActivityInstanceQuery().processInstanceId(PROC_INST_ID_)
.orderByHistoricActivityInstanceId().asc().list(); //擷取流程中已經執行的節點,按照執行先後順序排序
BpmnModel bpmnModel = repositoryService.getBpmnModel(hip.getProcessDefinitionId()); // 擷取bpmnModel
List<FlowNode> historicFlowNodeList = new LinkedList<FlowNode>(); //全部活動執行個體
for(HistoricActivityInstance hai : hais) {
historicFlowNodeList.add((FlowNode) bpmnModel.getMainProcess().getFlowElement(hai.getActivityId(), true));
if(hai.getAssignee() != null) {
return hai.getAssignee(); //不為空的第一個節點辦理人就是發起人
}
}
return null;
}