Browse Source

调换分支顺序,未能启动任务

master
燕鹏 2 years ago
parent
commit
98185990e8
  1. 2
      build.gradle
  2. 13
      src/main/java/com/example/demo/controller/HolidayController.java
  3. 61
      src/main/java/com/example/demo/controller/ProcessController.java
  4. 126
      src/main/java/com/example/demo/controller/WorkFlowController.java
  5. 87
      src/main/resources/bpmn/holidayEx.bpmn
  6. 145
      src/main/resources/bpmn/holidayEx.xml
  7. 145
      src/main/resources/bpmn/test.bpmn
  8. 145
      src/main/resources/bpmn/test.xml
  9. 61
      src/main/resources/bpmn/testbpmn.bpmn
  10. BIN
      src/main/resources/bpmn/testbpmn.png
  11. 61
      src/main/resources/bpmn/testbpmn.xml
  12. 145
      src/main/resources/bpmn/testex.bpmn
  13. 145
      src/main/resources/bpmn/testex.xml
  14. 145
      src/main/resources/bpmn/testex1.bpmn
  15. 145
      src/main/resources/bpmn/testex1.xml
  16. 145
      src/main/resources/bpmn/testt1.bpmn
  17. 145
      src/main/resources/bpmn/testt1.xml

2
build.gradle

@ -22,6 +22,8 @@ dependencies {
implementation 'org.activiti:activiti-spring-boot-starter:7.1.0.M3.1'
implementation 'org.activiti:activiti-image-generator:7.1.0.M3.1'
compile group: 'org.activiti', name: 'activiti-json-converter', version: '7.1.0.M3.1'
// compile group: 'org.activiti.dependencies', name: 'activiti-dependencies', version: '7.1.0.M3.1', ext: 'pom'

13
src/main/java/com/example/demo/controller/HolidayController.java

@ -16,6 +16,7 @@ import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
@ -47,7 +48,7 @@ public class HolidayController {
@GetMapping("deploy")
public void deploy() {
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deploy = repositoryService.createDeployment().addClasspathResource("bpmn/holidayEx.bpmn").name("请假申请流程").key("holidayex").deploy();
Deployment deploy = repositoryService.createDeployment().addClasspathResource("bpmn/test.bpmn").name("请假申请流程").key("holidayex").deploy();
System.out.println(deploy.getId());
System.out.println(deploy.getName());
System.out.println(deploy.getKey());
@ -55,14 +56,15 @@ public class HolidayController {
@ApiOperation(value = "启动工作流")
@GetMapping("start")
public void start() {
processRuntime.start(ProcessPayloadBuilder.start().withProcessDefinitionKey("").build());
public void start(@RequestParam Integer num) {
// processRuntime.start(ProcessPayloadBuilder.start().withProcessDefinitionKey("").build());
RuntimeService runtimeService = processEngine.getRuntimeService();
Holiday holiday = new Holiday();
holiday.setNum(7f);
// holiday.setNum(num);
Map<String,Object> map = new HashMap<>();
map.put("holiday",holiday);
map.put("num",num);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("holidayex",map);
// ProcessInstance processInstance = runtimeService.startProcessInstanceById("holidayex:3:7347e871-225c-11eb-bd7d-225bd818af7d",map);
System.out.println(processInstance.getProcessDefinitionId());
System.out.println(processInstance.getId());
}
@ -79,7 +81,6 @@ public class HolidayController {
System.out.println(x.getProcessDefinitionId());
System.out.println(x.getId());
System.out.println(x.getName());
System.out.println(x.getAssignee());
});
return true;
}

61
src/main/java/com/example/demo/controller/ProcessController.java

@ -0,0 +1,61 @@
package com.example.demo.controller;
import com.example.demo.entity.Holiday;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.activiti.api.process.model.builders.ProcessPayloadBuilder;
import org.activiti.api.process.runtime.ProcessRuntime;
import org.activiti.api.runtime.shared.query.Page;
import org.activiti.api.runtime.shared.query.Pageable;
import org.activiti.api.task.runtime.TaskRuntime;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author yanpeng
* @version 1.0
* @desc TODO
* @company 北京中经网软件有限公司
* @date 2020/10/27 14:34
*/
@RestController
@RequestMapping("process")
@Api(tags = "工作流流程接口")
public class ProcessController {
@Autowired
private RepositoryService repositoryService;
@ApiOperation(value = "查询工作流")
@GetMapping("page")
public void page() {
ProcessDefinitionQuery processDefinitionQuery = repositoryService
.createProcessDefinitionQuery();
List<ProcessDefinition> list = processDefinitionQuery.processDefinitionKey("holidayex").orderByProcessDefinitionVersion().asc().list();
for(ProcessDefinition t :list){
if(t.isSuspended()){
// repositoryService.suspendProcessDefinitionByKey("holidayex");
// repositoryService.suspendProcessDefinitionById(t.getId(),true,null);
repositoryService.activateProcessDefinitionById(t.getId(),true,null);
}else{
repositoryService.suspendProcessDefinitionById(t.getId(),true,null);
}
}
}
}

126
src/main/java/com/example/demo/controller/WorkFlowController.java

@ -1,20 +1,36 @@
package com.example.demo.controller;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.converter.CallActivityXMLConverter;
import org.activiti.bpmn.converter.UserTaskXMLConverter;
import org.activiti.bpmn.model.*;
import org.activiti.bpmn.model.Process;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.Model;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author yanpeng
@ -31,21 +47,113 @@ public class WorkFlowController {
@Autowired
private ProcessEngine processEngine;
@ApiOperation(value = "保存工作流")
@GetMapping("model")
public void model() {
RepositoryService repositoryService = processEngine.getRepositoryService();
Model model = repositoryService.newModel();
model.setName("请假工作流");
model.setKey("holidayex");
repositoryService.saveModel(model);
System.out.println(model.getId());
}
@ApiOperation(value = "保存xml")
@GetMapping("modelxml")
public void modelXml(String modeid) throws UnsupportedEncodingException {
RepositoryService repositoryService = processEngine.getRepositoryService();
Model model = repositoryService.getModel(modeid);
// Deployment deploy = repositoryService.createDeployment().addClasspathResource("bpmn/testex1.bpmn").name("请假申请流程").deploy();
// 创建转换对象
BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter();
// XMLStreamReader读取XML资源
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = null;
try {
ClassPathResource resource = new ClassPathResource("bpmn/testex1.xml");
xmlStreamReader = xmlInputFactory.createXMLStreamReader(resource.getInputStream());
} catch (Exception e) {
e.printStackTrace();
}
BpmnXMLConverter.addConverter(new UserTaskXMLConverter());
BpmnXMLConverter.addConverter(new CallActivityXMLConverter());
// 把xml转换成BpmnModel对象
BpmnModel bpmnModel = bpmnXMLConverter.convertToBpmnModel(xmlStreamReader);
// 创建转换对象
BpmnJsonConverter bpmnJsonConverter = new BpmnJsonConverter();
// 把BpmnModel对象转换成json
String bpmnXml = bpmnJsonConverter.convertToJson(bpmnModel).toString();
repositoryService.addModelEditorSource(model.getId(), bpmnXml.getBytes("utf-8"));
}
@Autowired
private RepositoryService repositoryService;
@ApiOperation(value = "发布工作流")
@GetMapping("deploy")
public void deploy() {
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deploy = repositoryService.createDeployment().addClasspathResource("bpmn/testbpmn.bpmn").addClasspathResource("bpmn/testbpmn.png").name("请假申请流程").key("testbpmn").deploy();
public void deploy(String modeid) throws Exception {
Model modelData = repositoryService.getModel(modeid);
byte[] bytes = repositoryService.getModelEditorSource(modelData.getId());
JsonNode modelNode = new ObjectMapper().readTree(bytes);
BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
model.getProcesses().get(0).setName(modelData.getName());
//校验有没有开始结束节点-
List<EndEvent> endEventList = model.getProcesses().get(0).findFlowElementsOfType(EndEvent.class);
List<StartEvent> startEventList = model.getProcesses().get(0).findFlowElementsOfType(StartEvent.class);
List<ExclusiveGateway> gateways = model.getProcesses().get(0).findFlowElementsOfType(ExclusiveGateway.class);
if (gateways != null) {
for (ExclusiveGateway gateway : gateways) {
System.out.println(gateway.getId());
Collection<FlowElement> flowElements = model.getProcesses().get(0).getFlowElements();
List<SequenceFlow> collect = model.getProcesses().get(0).findFlowElementsOfType(SequenceFlow.class).stream().filter(x -> {
flowElements.remove(x);
return x.getSourceRef().equals(gateway.getId());
}).collect(Collectors.toList());
Collections.sort(collect, (x1, x2) -> {
if (x1.getConditionExpression() == null && x2.getConditionExpression() != null) {
return 1;
}
if (x1.getConditionExpression() != null && x2.getConditionExpression() == null) {
return -1;
}
return 0;
});
flowElements.addAll(collect);
System.out.println(collect);
}
}
if (startEventList.size() == 0) {
System.out.println("没开始节点");
}
if (endEventList.size() == 0) {
System.out.println("没有结束节点");
}
byte[] bpmnByates = new BpmnXMLConverter().convertToXML(model);
//发布流程
String processName = modelData.getName() + ".bpmn20.xml";
String convertToXML = new String(bpmnByates);
System.out.println(convertToXML);
DeploymentBuilder deployment = repositoryService.createDeployment();
deployment.name(modelData.getName());
deployment.addString(processName, convertToXML);
// deployment.key(modelData.getKey());
deployment.key("holidayex");
Deployment deploy = deployment.deploy();
modelData.setDeploymentId(deploy.getId());
System.out.println(deploy.getId());
System.out.println(deploy.getName());
System.out.println(deploy.getKey());
repositoryService.saveModel(modelData);
}
@ApiOperation(value = "启动工作流")
@GetMapping("start")
public void start() {
public void start(Integer num) {
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testbpmn");
Map<String,Object> map = new HashMap<>();
map.put("num",num);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("holidayex",map);
System.out.println(processInstance.getProcessDefinitionId());
System.out.println(processInstance.getId());
}
@ -57,8 +165,8 @@ public class WorkFlowController {
@GetMapping("query")
public Boolean query() {
// TaskService taskService = processEngine.getTaskService();
List<Task> testbpmn = taskService.createTaskQuery().processDefinitionKey("testbpmn").list();
testbpmn.stream().forEach(x->{
List<Task> holidayex = taskService.createTaskQuery().processDefinitionKey("holidayex").list();
holidayex.stream().forEach(x -> {
System.out.println(x.getProcessDefinitionId());
System.out.println(x.getId());
System.out.println(x.getName());

87
src/main/resources/bpmn/holidayEx.bpmn

@ -4,25 +4,28 @@
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_3" name="填写请假单"/>
<userTask activiti:exclusive="true" id="_5" name="部门经理审核"/>
<userTask activiti:exclusive="true" id="_7" name="HR存档"/>
<sequenceFlow id="_8" sourceRef="_2" targetRef="_3"/>
<sequenceFlow id="_9" sourceRef="_3" targetRef="_5"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<userTask activiti:exclusive="true" id="_16" name="总监理审核"/>
<userTask activiti:exclusive="true" id="_16" name="总经理审核审核"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_18" sourceRef="_4" targetRef="_16">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${holiday.num>5}]]>
<![CDATA[${holiday.num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_19" sourceRef="_4" targetRef="_7">
<userTask activiti:exclusive="true" id="_10" name="副总经理审核"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_10">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${holiday.num>=1}]]>
<![CDATA[${holiday.num>=2 && holiday.num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_20" sourceRef="_16" targetRef="_7"/>
<sequenceFlow id="_6" sourceRef="_7" targetRef="_12"/>
<userTask activiti:exclusive="true" id="_19" name="HR存档"/>
<sequenceFlow id="_20" sourceRef="_4" targetRef="_19"/>
<sequenceFlow id="_21" sourceRef="_10" targetRef="_19"/>
<sequenceFlow id="_22" sourceRef="_16" targetRef="_19"/>
<sequenceFlow id="_23" sourceRef="_19" targetRef="_12"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
@ -44,56 +47,62 @@
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="520.0" y="335.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="730.0" y="315.0"/>
<dc:Bounds height="32.0" width="32.0" x="770.0" y="305.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="380.0" y="210.0"/>
<dc:Bounds height="32.0" width="32.0" x="365.0" y="200.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_16" id="Shape-_16">
<dc:Bounds height="55.0" width="85.0" x="550.0" y="220.0"/>
<dc:Bounds height="55.0" width="85.0" x="335.0" y="290.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="310.0" y="207.5"/>
<di:waypoint x="380.0" y="226.0"/>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="625.0" y="140.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_19" id="Shape-_19">
<dc:Bounds height="55.0" width="85.0" x="520.0" y="355.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_10">
<di:waypoint x="397.0" y="216.0"/>
<di:waypoint x="625.0" y="167.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_19" id="BPMNEdge__19" sourceElement="_4" targetElement="_7">
<di:waypoint x="412.0" y="226.0"/>
<di:waypoint x="520.0" y="362.5"/>
<bpmndi:BPMNEdge bpmnElement="_23" id="BPMNEdge__23" sourceElement="_19" targetElement="_12">
<di:waypoint x="605.0" y="382.5"/>
<di:waypoint x="770.0" y="321.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_4" targetElement="_16">
<di:waypoint x="412.0" y="226.0"/>
<di:waypoint x="550.0" y="247.5"/>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="310.0" y="207.5"/>
<di:waypoint x="365.0" y="216.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_7" targetElement="_12">
<di:waypoint x="605.0" y="362.5"/>
<di:waypoint x="730.0" y="331.0"/>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_4" targetElement="_16">
<di:waypoint x="381.0" y="232.0"/>
<di:waypoint x="381.0" y="290.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
<dc:Bounds height="0.0" width="70.0" x="-1.0" y="-16.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_2" targetElement="_3">
@ -110,9 +119,23 @@
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_20" id="BPMNEdge__20" sourceElement="_16" targetElement="_7">
<di:waypoint x="577.5" y="275.0"/>
<di:waypoint x="577.5" y="335.0"/>
<bpmndi:BPMNEdge bpmnElement="_20" id="BPMNEdge__20" sourceElement="_4" targetElement="_19">
<di:waypoint x="397.0" y="216.0"/>
<di:waypoint x="520.0" y="382.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_22" id="BPMNEdge__22" sourceElement="_16" targetElement="_19">
<di:waypoint x="420.0" y="317.5"/>
<di:waypoint x="520.0" y="382.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_21" id="BPMNEdge__21" sourceElement="_10" targetElement="_19">
<di:waypoint x="625.0" y="167.5"/>
<di:waypoint x="605.0" y="382.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>

145
src/main/resources/bpmn/holidayEx.xml

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holidayex" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_3" name="填写请假单"/>
<userTask activiti:exclusive="true" id="_5" name="部门经理审核"/>
<sequenceFlow id="_8" sourceRef="_2" targetRef="_3"/>
<sequenceFlow id="_9" sourceRef="_3" targetRef="_5"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<userTask activiti:exclusive="true" id="_16" name="总经理审核审核"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_18" sourceRef="_4" targetRef="_16">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${holiday.num>=7}]]>
</conditionExpression>
</sequenceFlow>
<userTask activiti:exclusive="true" id="_10" name="副总经理审核"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_10">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${holiday.num>=2 && holiday.num<7}]]>
</conditionExpression>
</sequenceFlow>
<userTask activiti:exclusive="true" id="_19" name="HR存档"/>
<sequenceFlow id="_20" sourceRef="_4" targetRef="_19"/>
<sequenceFlow id="_21" sourceRef="_10" targetRef="_19"/>
<sequenceFlow id="_22" sourceRef="_16" targetRef="_19"/>
<sequenceFlow id="_23" sourceRef="_19" targetRef="_12"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="5.0" y="195.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3">
<dc:Bounds height="55.0" width="85.0" x="85.0" y="180.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="225.0" y="180.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="730.0" y="315.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="365.0" y="200.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_16" id="Shape-_16">
<dc:Bounds height="55.0" width="85.0" x="555.0" y="235.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="485.0" y="100.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_19" id="Shape-_19">
<dc:Bounds height="55.0" width="85.0" x="520.0" y="355.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_10">
<di:waypoint x="397.0" y="216.0"/>
<di:waypoint x="485.0" y="127.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_23" id="BPMNEdge__23" sourceElement="_19" targetElement="_12">
<di:waypoint x="605.0" y="382.5"/>
<di:waypoint x="730.0" y="331.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="310.0" y="207.5"/>
<di:waypoint x="365.0" y="216.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_4" targetElement="_16">
<di:waypoint x="397.0" y="216.0"/>
<di:waypoint x="555.0" y="262.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_2" targetElement="_3">
<di:waypoint x="37.0" y="211.0"/>
<di:waypoint x="85.0" y="207.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_9" id="BPMNEdge__9" sourceElement="_3" targetElement="_5">
<di:waypoint x="170.0" y="207.5"/>
<di:waypoint x="225.0" y="207.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_20" id="BPMNEdge__20" sourceElement="_4" targetElement="_19">
<di:waypoint x="397.0" y="216.0"/>
<di:waypoint x="520.0" y="382.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_22" id="BPMNEdge__22" sourceElement="_16" targetElement="_19">
<di:waypoint x="580.0" y="290.0"/>
<di:waypoint x="580.0" y="355.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_21" id="BPMNEdge__21" sourceElement="_10" targetElement="_19">
<di:waypoint x="545.0" y="155.0"/>
<di:waypoint x="545.0" y="355.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

145
src/main/resources/bpmn/test.bpmn

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holidayex" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_5" name="启动任务"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_5"/>
<userTask activiti:exclusive="true" id="_7" name="第一分支"/>
<userTask activiti:exclusive="true" id="_8" name="默认分支"/>
<userTask activiti:exclusive="true" id="_9" name="第三分支"/>
<userTask activiti:exclusive="true" id="_10" name="结束节点"/>
<sequenceFlow id="_11" sourceRef="_10" targetRef="_12"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_7">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_14" sourceRef="_4" targetRef="_8"/>
<sequenceFlow id="_3" sourceRef="_4" targetRef="_9">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=3 && num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_15" sourceRef="_7" targetRef="_10"/>
<sequenceFlow id="_16" sourceRef="_8" targetRef="_10"/>
<sequenceFlow id="_18" sourceRef="_9" targetRef="_10"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="125.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="835.0" y="130.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="295.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="40.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_8" id="Shape-_8">
<dc:Bounds height="55.0" width="85.0" x="450.0" y="155.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9">
<dc:Bounds height="55.0" width="85.0" x="445.0" y="290.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="675.0" y="135.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_7">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="67.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_10">
<di:waypoint x="525.0" y="67.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_4" targetElement="_8">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="450.0" y="182.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="210.0" y="172.5"/>
<di:waypoint x="295.0" y="166.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_16" id="BPMNEdge__16" sourceElement="_8" targetElement="_10">
<di:waypoint x="535.0" y="182.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_9" targetElement="_10">
<di:waypoint x="530.0" y="317.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_4" targetElement="_9">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="445.0" y="317.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_5">
<di:waypoint x="47.0" y="166.0"/>
<di:waypoint x="125.0" y="172.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_11" id="BPMNEdge__11" sourceElement="_10" targetElement="_12">
<di:waypoint x="760.0" y="162.5"/>
<di:waypoint x="835.0" y="146.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

145
src/main/resources/bpmn/test.xml

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holidayex" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_5" name="启动任务"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_5"/>
<userTask activiti:exclusive="true" id="_7" name="第一分支"/>
<userTask activiti:exclusive="true" id="_8" name="默认分支"/>
<userTask activiti:exclusive="true" id="_9" name="第三分支"/>
<userTask activiti:exclusive="true" id="_10" name="结束节点"/>
<sequenceFlow id="_11" sourceRef="_10" targetRef="_12"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_7">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_14" sourceRef="_4" targetRef="_8"/>
<sequenceFlow id="_3" sourceRef="_4" targetRef="_9">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=3 && num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_15" sourceRef="_7" targetRef="_10"/>
<sequenceFlow id="_16" sourceRef="_8" targetRef="_10"/>
<sequenceFlow id="_18" sourceRef="_9" targetRef="_10"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="125.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="835.0" y="130.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="295.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="40.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_8" id="Shape-_8">
<dc:Bounds height="55.0" width="85.0" x="450.0" y="155.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9">
<dc:Bounds height="55.0" width="85.0" x="445.0" y="290.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="675.0" y="135.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_7">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="67.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_10">
<di:waypoint x="525.0" y="67.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_4" targetElement="_8">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="450.0" y="182.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="210.0" y="172.5"/>
<di:waypoint x="295.0" y="166.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_16" id="BPMNEdge__16" sourceElement="_8" targetElement="_10">
<di:waypoint x="535.0" y="182.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_9" targetElement="_10">
<di:waypoint x="530.0" y="317.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_4" targetElement="_9">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="445.0" y="317.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_5">
<di:waypoint x="47.0" y="166.0"/>
<di:waypoint x="125.0" y="172.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_11" id="BPMNEdge__11" sourceElement="_10" targetElement="_12">
<di:waypoint x="760.0" y="162.5"/>
<di:waypoint x="835.0" y="146.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

61
src/main/resources/bpmn/testbpmn.bpmn

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604021504826" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604021504826" name="" targetNamespace="http://www.activiti.org/testm1604021504826" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="testbpmn" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_3" name="提交请假审批"/>
<userTask activiti:exclusive="true" id="_4" name="部门经理审核"/>
<endEvent id="_5" name="EndEvent"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_3"/>
<sequenceFlow id="_7" sourceRef="_3" targetRef="_4"/>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_5"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="testbpmn">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="355.0" y="60.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3">
<dc:Bounds height="55.0" width="85.0" x="335.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4">
<dc:Bounds height="55.0" width="85.0" x="340.0" y="260.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="32.0" width="32.0" x="365.0" y="370.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_3">
<di:waypoint x="371.0" y="92.0"/>
<di:waypoint x="371.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_7" id="BPMNEdge__7" sourceElement="_3" targetElement="_4">
<di:waypoint x="380.0" y="200.0"/>
<di:waypoint x="380.0" y="260.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_4" targetElement="_5">
<di:waypoint x="381.0" y="315.0"/>
<di:waypoint x="381.0" y="370.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

BIN
src/main/resources/bpmn/testbpmn.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

61
src/main/resources/bpmn/testbpmn.xml

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604021504826" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604021504826" name="" targetNamespace="http://www.activiti.org/testm1604021504826" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="myProcess_1" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_3" name="提交请假审批"/>
<userTask activiti:exclusive="true" id="_4" name="部门经理审核"/>
<endEvent id="_5" name="EndEvent"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_3"/>
<sequenceFlow id="_7" sourceRef="_3" targetRef="_4"/>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_5"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="myProcess_1">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="355.0" y="60.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3">
<dc:Bounds height="55.0" width="85.0" x="335.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4">
<dc:Bounds height="55.0" width="85.0" x="340.0" y="260.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="32.0" width="32.0" x="365.0" y="370.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_3">
<di:waypoint x="371.0" y="92.0"/>
<di:waypoint x="371.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_7" id="BPMNEdge__7" sourceElement="_3" targetElement="_4">
<di:waypoint x="380.0" y="200.0"/>
<di:waypoint x="380.0" y="260.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_4" targetElement="_5">
<di:waypoint x="381.0" y="315.0"/>
<di:waypoint x="381.0" y="370.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

145
src/main/resources/bpmn/testex.bpmn

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holidayex" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_5" name="启动任务"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_5"/>
<userTask activiti:exclusive="true" id="_7" name="第一分支"/>
<userTask activiti:exclusive="true" id="_9" name="第三分支"/>
<userTask activiti:exclusive="true" id="_10" name="结束节点"/>
<sequenceFlow id="_11" sourceRef="_10" targetRef="_12"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_7">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_3" sourceRef="_4" targetRef="_9">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=3 && num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_15" sourceRef="_7" targetRef="_10"/>
<sequenceFlow id="_18" sourceRef="_9" targetRef="_10"/>
<userTask activiti:exclusive="true" id="_20" name="默认分支"/>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_20"/>
<sequenceFlow id="_14" sourceRef="_20" targetRef="_10"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="125.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="835.0" y="130.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="295.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="40.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9">
<dc:Bounds height="55.0" width="85.0" x="445.0" y="275.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="675.0" y="135.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_20" id="Shape-_20">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="155.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_7">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="67.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_10">
<di:waypoint x="525.0" y="67.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_20" targetElement="_10">
<di:waypoint x="525.0" y="182.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="210.0" y="172.5"/>
<di:waypoint x="295.0" y="166.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_9" targetElement="_10">
<di:waypoint x="530.0" y="302.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_4" targetElement="_9">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="445.0" y="302.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_5">
<di:waypoint x="47.0" y="166.0"/>
<di:waypoint x="125.0" y="172.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_4" targetElement="_20">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="182.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_11" id="BPMNEdge__11" sourceElement="_10" targetElement="_12">
<di:waypoint x="760.0" y="162.5"/>
<di:waypoint x="835.0" y="146.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

145
src/main/resources/bpmn/testex.xml

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holidayex" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_5" name="启动任务"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_5"/>
<userTask activiti:exclusive="true" id="_7" name="第一分支"/>
<userTask activiti:exclusive="true" id="_9" name="第三分支"/>
<userTask activiti:exclusive="true" id="_10" name="结束节点"/>
<sequenceFlow id="_11" sourceRef="_10" targetRef="_12"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_7">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_3" sourceRef="_4" targetRef="_9">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=3 && num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_15" sourceRef="_7" targetRef="_10"/>
<sequenceFlow id="_18" sourceRef="_9" targetRef="_10"/>
<userTask activiti:exclusive="true" id="_20" name="默认分支"/>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_20"/>
<sequenceFlow id="_14" sourceRef="_20" targetRef="_10"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="125.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="835.0" y="130.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="295.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="40.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9">
<dc:Bounds height="55.0" width="85.0" x="445.0" y="275.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="675.0" y="135.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_20" id="Shape-_20">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="155.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_7">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="67.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_10">
<di:waypoint x="525.0" y="67.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_20" targetElement="_10">
<di:waypoint x="525.0" y="182.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="210.0" y="172.5"/>
<di:waypoint x="295.0" y="166.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_9" targetElement="_10">
<di:waypoint x="530.0" y="302.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_4" targetElement="_9">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="445.0" y="302.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_5">
<di:waypoint x="47.0" y="166.0"/>
<di:waypoint x="125.0" y="172.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_4" targetElement="_20">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="182.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_11" id="BPMNEdge__11" sourceElement="_10" targetElement="_12">
<di:waypoint x="760.0" y="162.5"/>
<di:waypoint x="835.0" y="146.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

145
src/main/resources/bpmn/testex1.bpmn

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holiday请假" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_5" name="启动任务"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_5"/>
<userTask activiti:exclusive="true" id="_7" name="第一分支"/>
<userTask activiti:exclusive="true" id="_9" name="第三分支"/>
<userTask activiti:exclusive="true" id="_20" name="默认分支"/>
<userTask activiti:exclusive="true" id="_10" name="结束节点"/>
<sequenceFlow id="_11" sourceRef="_10" targetRef="_12"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_7">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_20"/>
<sequenceFlow id="_3" sourceRef="_4" targetRef="_9">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=3 && num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_15" sourceRef="_7" targetRef="_10"/>
<sequenceFlow id="_18" sourceRef="_9" targetRef="_10"/>
<sequenceFlow id="_14" sourceRef="_20" targetRef="_10"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holiday请假">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="125.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="835.0" y="130.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="295.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="40.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9">
<dc:Bounds height="55.0" width="85.0" x="445.0" y="270.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="675.0" y="135.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_20" id="Shape-_20">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="155.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_7">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="67.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_10">
<di:waypoint x="525.0" y="67.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_20" targetElement="_10">
<di:waypoint x="525.0" y="182.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="210.0" y="172.5"/>
<di:waypoint x="295.0" y="166.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_9" targetElement="_10">
<di:waypoint x="530.0" y="297.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_4" targetElement="_9">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="445.0" y="297.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_2" targetElement="_5">
<di:waypoint x="47.0" y="166.0"/>
<di:waypoint x="125.0" y="172.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_8" id="BPMNEdge__8" sourceElement="_4" targetElement="_20">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="182.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_11" id="BPMNEdge__11" sourceElement="_10" targetElement="_12">
<di:waypoint x="760.0" y="162.5"/>
<di:waypoint x="835.0" y="146.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

145
src/main/resources/bpmn/testex1.xml

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/testm1604633800390" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1604633800390" name="" targetNamespace="http://www.activiti.org/testm1604633800390" typeLanguage="http://www.w3.org/2001/XMLSchema">
<process id="holidayex" isClosed="false" isExecutable="true" processType="None">
<startEvent id="_2" name="StartEvent"/>
<userTask activiti:exclusive="true" id="_5" name="启动任务"/>
<endEvent id="_12" name="EndEvent"/>
<exclusiveGateway gatewayDirection="Unspecified" id="_4" name="ExclusiveGateway"/>
<sequenceFlow id="_17" sourceRef="_5" targetRef="_4"/>
<sequenceFlow id="_6" sourceRef="_2" targetRef="_5"/>
<userTask activiti:exclusive="true" id="_7" name="第一分支"/>
<userTask activiti:exclusive="true" id="_9" name="第三分支"/>
<userTask activiti:exclusive="true" id="_20" name="默认分支"/>
<userTask activiti:exclusive="true" id="_10" name="结束节点"/>
<sequenceFlow id="_11" sourceRef="_10" targetRef="_12"/>
<sequenceFlow id="_13" sourceRef="_4" targetRef="_7">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_8" sourceRef="_4" targetRef="_20"/>
<sequenceFlow id="_3" sourceRef="_4" targetRef="_9">
<conditionExpression xsi:type="tFormalExpression">
<![CDATA[${num>=3 && num<7}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow id="_15" sourceRef="_7" targetRef="_10"/>
<sequenceFlow id="_18" sourceRef="_9" targetRef="_10"/>
<sequenceFlow id="_14" sourceRef="_20" targetRef="_10"/>
</process>
<bpmndi:BPMNDiagram documentation="background=#3C3F41;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram">
<bpmndi:BPMNPlane bpmnElement="holidayex">
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
<dc:Bounds height="32.0" width="32.0" x="15.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
<dc:Bounds height="55.0" width="85.0" x="125.0" y="145.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_12" id="Shape-_12">
<dc:Bounds height="32.0" width="32.0" x="835.0" y="130.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isMarkerVisible="false">
<dc:Bounds height="32.0" width="32.0" x="295.0" y="150.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="40.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9">
<dc:Bounds height="55.0" width="85.0" x="445.0" y="275.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10">
<dc:Bounds height="55.0" width="85.0" x="675.0" y="135.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_20" id="Shape-_20">
<dc:Bounds height="55.0" width="85.0" x="440.0" y="155.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_4" targetElement="_7">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="440.0" y="67.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_10">
<di:waypoint x="525.0" y="67.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_20" targetElement="_10">
<di:waypoint x="525.0" y="182.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_4">
<di:waypoint x="210.0" y="172.5"/>
<di:waypoint x="295.0" y="166.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_9" targetElement="_10">
<di:waypoint x="530.0" y="302.5"/>
<di:waypoint x="675.0" y="162.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_4" targetElement="_9">
<di:waypoint x="327.0" y="166.0"/>
<di:waypoint x="445.0" y="302.5"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>