Merge branch 'feature/REQ-1309' into dev
This commit is contained in:
commit
dbeb503d9a
@ -2,6 +2,7 @@ package cn.axzo.workflow.common.enums;
|
||||
|
||||
|
||||
public enum BpmnFlowNodeMode {
|
||||
STARTNODE("STARTNODE", "发起节点"),
|
||||
GENERAL("GENERAL", "普通"),
|
||||
OR("OR", "或签"),
|
||||
AND("AND", "会签");
|
||||
|
||||
@ -46,6 +46,7 @@ import org.flowable.bpmn.model.Pool;
|
||||
import org.flowable.bpmn.model.SequenceFlow;
|
||||
import org.flowable.bpmn.model.ServiceTask;
|
||||
import org.flowable.bpmn.model.SignalEventDefinition;
|
||||
import org.flowable.bpmn.model.StartEvent;
|
||||
import org.flowable.bpmn.model.SubProcess;
|
||||
import org.flowable.bpmn.model.TextAnnotation;
|
||||
import org.flowable.bpmn.model.TimerEventDefinition;
|
||||
@ -558,9 +559,10 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
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());
|
||||
List<ProcessNodeDetailVO> resultList = new ArrayList<>(flowElements.size() + 1);
|
||||
flowElements.forEach(i -> {
|
||||
UserTask userTask = (UserTask) i;
|
||||
ProcessNodeDetailVO node = new ProcessNodeDetailVO().setId(userTask.getId())
|
||||
@ -574,15 +576,28 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
private List<String> gatherCompletedFlows(Set<String> completedActivityInstances,
|
||||
Set<String> currentActivityinstances, BpmnModel pojoModel) {
|
||||
Set<String> currentActivityInstances, BpmnModel pojoModel) {
|
||||
|
||||
List<String> completedFlows = new ArrayList<>();
|
||||
List<String> activities = new ArrayList<>(completedActivityInstances);
|
||||
activities.addAll(currentActivityinstances);
|
||||
activities.addAll(currentActivityInstances);
|
||||
|
||||
// TODO: not a robust way of checking when parallel paths are active, should be revisited
|
||||
// Go over all activities and check if it's possible to match any outgoing paths against the activities
|
||||
|
||||
Loading…
Reference in New Issue
Block a user