@Test
public void queryHistoricVariables1() {
List<FlowNode> list = getNextNode("127507");
for (FlowNode flowNode : list) {
if (flowNode instanceof UserTask) {
UserTask userTask = (UserTask)flowNode;
List<String> candidateGroups = userTask.getCandidateGroups();
System.out.println(candidateGroups);
}
System.out.println(flowNode.getId());
System.out.println(flowNode.getName());
}
System.out.println(list);
}
public List<FlowNode> getNextNode(String taskid) {
HistoricTaskInstance myTask = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskId(taskid).singleResult();
String processDefinitionId = myTask.getProcessDefinitionId();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
String myActivityId = myTask.getTaskDefinitionKey();
if (StringUtils.isEmpty(myActivityId)) {
return Lists.newArrayList();
}
List<FlowNode> flowNodeList = Lists.newArrayList();
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(myActivityId);
List<FlowNode> flowNodes = Lists.newArrayList();
flowNodes.add(flowNode);
addNextNode(flowNodes, flowNodeList);
return flowNodeList;
}
private void addNextNode(List<FlowNode> list, List<FlowNode> flowNodeList) {
if (CollectionUtils.isEmpty(list)) {
return;
}
List<FlowNode> flowNodeList1 = Lists.newArrayList();
for (FlowNode flowNode : list) {
List<SequenceFlow> sequenceFlows = flowNode.getOutgoingFlows();
for (SequenceFlow sequenceFlow : sequenceFlows) {
FlowNode flowNode1 = (FlowNode) sequenceFlow.getTargetFlowElement();
if (flowNode1 == null) {
continue;
}
if (flowNode1 instanceof UserTask) {
if (flowNode1.getName() == null) {
flowNode1.setName(" ");
}
flowNodeList.add(flowNode1);
} else if (flowNode1 instanceof EndEvent) {
flowNode1.setName("结束");
flowNodeList.add(flowNode1);
} else if (flowNode1 instanceof StartEvent) {
flowNode1.setName("开始");
flowNodeList.add(flowNode1);
} else {
flowNodeList1.add(flowNode1);
}
}
}
addNextNode(flowNodeList1, flowNodeList);
}