add - 新增流程推算执行顺序的节点信息
This commit is contained in:
parent
dd0c109633
commit
da04016617
@ -534,46 +534,6 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ProcessNodeDetailVO> getProcessNodes(String processInstanceId, @Nullable String tenantId) {
|
|
||||||
HistoricProcessInstance instance =
|
|
||||||
historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
|
||||||
if (Objects.isNull(instance)) {
|
|
||||||
throw new WorkflowEngineException(PROCESS_INSTANCE_ID_NOT_EXISTS, processInstanceId);
|
|
||||||
}
|
|
||||||
BpmnModel bpmnModel = repositoryService.getBpmnModel(instance.getProcessDefinitionId());
|
|
||||||
|
|
||||||
List<FlowElement> flowElements =
|
|
||||||
bpmnModel.getMainProcess().getFlowElements().stream().filter(UserTask.class::isInstance).collect(Collectors.toList());
|
|
||||||
List<ProcessNodeDetailVO> resultList = new ArrayList<>(flowElements.size() + 1);
|
|
||||||
flowElements.forEach(i -> {
|
|
||||||
UserTask userTask = (UserTask) i;
|
|
||||||
ProcessNodeDetailVO node = new ProcessNodeDetailVO().setId(userTask.getId())
|
|
||||||
.setName(userTask.getName())
|
|
||||||
.setFormKey(userTask.getFormKey());
|
|
||||||
if (userTask.getBehavior() instanceof MultiInstanceActivityBehavior) {
|
|
||||||
MultiInstanceActivityBehavior behavior = (MultiInstanceActivityBehavior) userTask.getBehavior();
|
|
||||||
node.setNodeMode(Objects.equals(AND_SIGN_EXPRESSION, behavior.getCompletionCondition()) ? AND : OR);
|
|
||||||
} else if (userTask.getBehavior() instanceof UserTaskActivityBehavior) {
|
|
||||||
node.setNodeMode(BpmnFlowNodeMode.GENERAL);
|
|
||||||
}
|
|
||||||
resultList.add(node);
|
|
||||||
});
|
|
||||||
|
|
||||||
// 处理发起节点
|
|
||||||
List<FlowElement> startNodes =
|
|
||||||
bpmnModel.getMainProcess().getFlowElements().stream().filter(StartEvent.class::isInstance).collect(Collectors.toList());
|
|
||||||
startNodes.forEach(i -> {
|
|
||||||
StartEvent startEvent = (StartEvent) i;
|
|
||||||
ProcessNodeDetailVO node = new ProcessNodeDetailVO()
|
|
||||||
.setId(startEvent.getId())
|
|
||||||
.setName(startEvent.getName())
|
|
||||||
.setFormKey(startEvent.getFormKey())
|
|
||||||
.setNodeMode(BpmnFlowNodeMode.STARTNODE);
|
|
||||||
resultList.add(0, node);
|
|
||||||
});
|
|
||||||
return resultList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ProcessNodeDetailVO> getProcessInstanceNodeForecast(String processInstanceId,
|
public List<ProcessNodeDetailVO> getProcessInstanceNodeForecast(String processInstanceId,
|
||||||
@Nullable String tenantId) {
|
@Nullable String tenantId) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user