activiti 根據 流程例項ID 獲取發起人

FH-Admin發表於2021-10-28
   /**獲取發起人
     * @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;
    }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章