例如當前節點可以下發,審批,反饋。我怎么通過當前的節點值去獲得下發,審批,反饋這三個值
uj5u.com熱心網友回復:
public List<FlowNode> getNextNode(String taskid) {HistoricTaskInstance myTask = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskId(taskid).singleResult();
String processDefinitionId = myTask.getProcessDefinitionId();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
List<HistoricActivityInstance> haiList = historyService.createHistoricActivityInstanceQuery()
.executionId(myTask.getExecutionId()).finished().list();
String myActivityId = myTask.getTaskDefinitionKey();
if (ValidateUtil.isEmpty(myActivityId)) {
return new ArrayList();
}
List<FlowNode> flowNodeList = new ArrayList();
FlowNode flowNode = (FlowNode) bpmnModel.getMainProcess().getFlowElement(myActivityId);
List<SequenceFlow> list = flowNode.getOutgoingFlows();
for (SequenceFlow i : list) {
FlowNode flowNode1 = (FlowNode) i.getTargetFlowElement();
if (flowNode1.isExclusive()) {//TODO 如果是網關繼續下一個 不支持二級網關決議
List<SequenceFlow> seqs = flowNode1.getOutgoingFlows();
for (SequenceFlow o : seqs) {
FlowNode flowNode2 = (FlowNode) o.getTargetFlowElement();
if (flowNode2 == null || "結束".equals(flowNode2.getName())) {
continue;
}
flowNodeList.add(flowNode2);
}
} else {
if (flowNode1 == null || "結束".equals(flowNode1.getName())) {
continue;
}
flowNodeList.add(flowNode1);
}
}
return flowNodeList;
}
uj5u.com熱心網友回復:
一樓正解,親測有效轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107310.html
標籤:Web 開發
上一篇:串行回圈執行
