Merge branch 'feature/REQ-1309' into dev

This commit is contained in:
wangli 2023-10-11 14:30:50 +08:00
commit 6beca18575

View File

@ -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
public List<ProcessNodeDetailVO> getProcessInstanceNodeForecast(String processInstanceId,
@Nullable String tenantId) {