activiti 根据 流程实例ID 获取发起人

activiti 根据 流程实例ID 获取发起人

   /**获取发起人
     * @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;
    }

-------------------------fhadmin.cn-----------------------------------------自定义表单
28. 定义模版:拖拽左侧表单元素到右侧区域,编辑表单元素,保存表单模版
29. 表单模版:编辑维护表单模版,复制表单模版,修改模版类型,预览表单模版
30. 我的表单:选择表单模版,编辑表单规则,是否上传图片、附件、开启富文本、挂靠流程开关等
31. 表单数据:从我的表单进去可增删改查表单数据,修改表单规则
32. 挂靠记录:记录表单数据和流程实例ID关联记录,可删除