流程demo
This commit is contained in:
parent
dbac5656aa
commit
8b66e84f1e
@ -0,0 +1,118 @@
|
||||
package com.cm.inspection.controller.deploy;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.cm.common.constants.ISystemConstant;
|
||||
import com.cm.common.result.SuccessResult;
|
||||
import com.cm.common.result.SuccessResultData;
|
||||
import com.cm.inspection.service.deploy.IDeployProcessService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
||||
* 当你想要放弃的时候,想想当初你为何开始
|
||||
*
|
||||
* @ClassName: DemoController
|
||||
* @Description:
|
||||
* @Author: WangGeng
|
||||
* @Date: 2020/3/24 9:41 上午
|
||||
* @Version: 1.0
|
||||
**/
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.API_PREFIX + "/deploy")
|
||||
public class DeployController {
|
||||
|
||||
@Autowired
|
||||
private IDeployProcessService deployProcessService;
|
||||
|
||||
/**
|
||||
* 部署流程
|
||||
*
|
||||
* @param processName
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getdeployprocess/{processName}")
|
||||
public SuccessResult getDeployProcess(@PathVariable("processName") String processName) {
|
||||
return deployProcessService.deployProcess(processName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行流程
|
||||
*
|
||||
* @param processId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getstartprocess/{processId}")
|
||||
public SuccessResult getStartProcess(@PathVariable("processId") String processId) {
|
||||
return deployProcessService.startProcess(processId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过代理人查看任务
|
||||
*
|
||||
* @param assignee
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("listtaskbyassignee")
|
||||
public JSONArray listTaskByAssignee(String assignee) {
|
||||
return deployProcessService.listTaskByAssignee(assignee);
|
||||
}
|
||||
|
||||
/**
|
||||
* 完成任务
|
||||
*
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("gettaskcompletebytaskid/{taskId}")
|
||||
public SuccessResult getTaskCompleteByTaskId(@PathVariable("taskId") String taskId) {
|
||||
return deployProcessService.saveTaskCompleteByTaskId(taskId);
|
||||
}
|
||||
|
||||
@PostMapping("saveleavefulltaskcompletebytaskidanddays/{taskId}")
|
||||
public SuccessResult saveLeaveFullTaskCompleteByTaskIdAndDays(@PathVariable("taskId") String taskId, @RequestParam("days") Integer days) {
|
||||
return deployProcessService.saveLeaveFullTaskCompleteByTaskIdAndDays(taskId, days);
|
||||
}
|
||||
|
||||
/**
|
||||
* 正在运行的任务
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("listtask")
|
||||
public JSONArray listTask() {
|
||||
return deployProcessService.listTask();
|
||||
}
|
||||
|
||||
/**
|
||||
* 实例状态
|
||||
*
|
||||
* @param processId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getinstancestatus/{processId}")
|
||||
public SuccessResultData<Integer> getInstanceStatus(@PathVariable("processId") String processId) {
|
||||
return deployProcessService.getInstanceStatus(processId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 历史流程
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("listhistoryprocess")
|
||||
public JSONArray listHistoryProcess() {
|
||||
return deployProcessService.listHistoryProcess();
|
||||
}
|
||||
|
||||
/**
|
||||
* 历史任务
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("listhistorytask")
|
||||
public JSONArray listHistoryTask() {
|
||||
return deployProcessService.listHistoryTask();
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,12 @@
|
||||
package com.cm.inspection.service.deploy;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.cm.common.result.SuccessResult;
|
||||
import com.cm.common.result.SuccessResultData;
|
||||
import org.activiti.engine.task.Task;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
||||
* 当你想要放弃的时候,想想当初你为何开始
|
||||
@ -14,4 +21,23 @@ public interface IDeployProcessService {
|
||||
|
||||
void deployProcess();
|
||||
|
||||
SuccessResult deployProcess(String processName);
|
||||
|
||||
SuccessResult startProcess(String processId);
|
||||
|
||||
JSONArray listTaskByAssignee(String assignee);
|
||||
|
||||
SuccessResult saveTaskCompleteByTaskId(String taskId);
|
||||
|
||||
SuccessResult saveLeaveFullTaskCompleteByTaskIdAndDays(String taskId, Integer days);
|
||||
|
||||
JSONArray listTask();
|
||||
|
||||
SuccessResultData<Integer> getInstanceStatus(String processId);
|
||||
|
||||
JSONArray listHistoryProcess();
|
||||
|
||||
JSONArray listHistoryTask();
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,10 +1,24 @@
|
||||
package com.cm.inspection.service.deploy.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cm.common.result.SuccessResult;
|
||||
import com.cm.common.result.SuccessResultData;
|
||||
import com.cm.inspection.service.deploy.IDeployProcessService;
|
||||
import org.activiti.engine.*;
|
||||
import org.activiti.engine.history.HistoricProcessInstance;
|
||||
import org.activiti.engine.history.HistoricTaskInstance;
|
||||
import org.activiti.engine.repository.Deployment;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.activiti.engine.task.TaskQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* When you feel like quitting. Think about why you started
|
||||
* 当你想要放弃的时候,想想当初你为何开始
|
||||
@ -31,6 +45,108 @@ public class DeployProcessServiceImpl implements IDeployProcessService {
|
||||
|
||||
@Override
|
||||
public void deployProcess() {
|
||||
repositoryService.createDeployment().addClasspathResource("bpmn/leave.bpmn").addClasspathResource("bpmn/leave.png").name("test").deploy();
|
||||
repositoryService.createDeployment().addClasspathResource("bpmn/leave.bpmn").name("test").deploy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResult deployProcess(String processName) {
|
||||
Deployment deployment = repositoryService.createDeployment()
|
||||
.disableSchemaValidation()
|
||||
.addClasspathResource("bpmn/" + processName + ".bpmn").name("请假").deploy();
|
||||
System.out.println("部署ID:" + deployment.getId());
|
||||
System.out.println("部署Name:" + deployment.getName());
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResult startProcess(String processId) {
|
||||
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processId);
|
||||
System.out.println("流程实例id:" + processInstance.getId());
|
||||
System.out.println("流程定义id:" + processInstance.getProcessDefinitionId());
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray listTaskByAssignee(String assignee) {
|
||||
TaskQuery taskQuery = taskService.createTaskQuery();
|
||||
List<Task> taskList = taskQuery.taskAssignee(assignee).list();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for (Task task : taskList) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("assignee", task.getAssignee());
|
||||
jsonObject.put("id", task.getId());
|
||||
jsonObject.put("name", task.getName());
|
||||
jsonArray.add(jsonObject);
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResult saveTaskCompleteByTaskId(String taskId) {
|
||||
taskService.complete(taskId);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResult saveLeaveFullTaskCompleteByTaskIdAndDays(String taskId, Integer days) {
|
||||
Map<String, Object> params = new HashMap<>(1);
|
||||
params.put("days", days);
|
||||
taskService.complete(taskId, params);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray listTask() {
|
||||
TaskQuery taskQuery = taskService.createTaskQuery();
|
||||
List<Task> taskList = taskQuery.list();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for (Task task : taskList) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("assignee", task.getAssignee());
|
||||
jsonObject.put("id", task.getId());
|
||||
jsonObject.put("name", task.getName());
|
||||
jsonArray.add(jsonObject);
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultData<Integer> getInstanceStatus(String processId) {
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processDefinitionKey(processId).singleResult();
|
||||
return new SuccessResultData<>(processInstance == null ? 1 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray listHistoryProcess() {
|
||||
List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().list();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for (HistoricProcessInstance historicProcessInstance : list) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id", historicProcessInstance.getId());
|
||||
jsonObject.put("name", historicProcessInstance.getName());
|
||||
jsonObject.put("startTime", historicProcessInstance.getStartTime());
|
||||
jsonObject.put("endTime", historicProcessInstance.getEndTime());
|
||||
jsonArray.add(jsonObject);
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray listHistoryTask() {
|
||||
List<HistoricTaskInstance> taskInstanceList = historyService.createHistoricTaskInstanceQuery().list();
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for (HistoricTaskInstance historicTaskInstance : taskInstanceList) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("id", historicTaskInstance.getId());
|
||||
jsonObject.put("name", historicTaskInstance.getName());
|
||||
jsonObject.put("startTime", historicTaskInstance.getStartTime());
|
||||
jsonObject.put("endTime", historicTaskInstance.getEndTime());
|
||||
jsonObject.put("processId", historicTaskInstance.getProcessDefinitionId());
|
||||
jsonObject.put("assignee", historicTaskInstance.getAssignee());
|
||||
jsonObject.put("executionId", historicTaskInstance.getExecutionId());
|
||||
jsonObject.put("parentTaskId", historicTaskInstance.getParentTaskId());
|
||||
jsonArray.add(jsonObject);
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
server:
|
||||
port: 7006
|
||||
url: http://192.168.0.113:7006/inspection
|
||||
title: inspection
|
||||
url: http://192.168.0.106:7006/inspection
|
||||
title: 隐患上报系统
|
||||
servlet:
|
||||
context-path: /inspection
|
||||
|
||||
@ -78,11 +78,11 @@ file:
|
||||
# 安全
|
||||
security:
|
||||
oauth2:
|
||||
oauth-server: http://192.168.0.113:7001/usercenter
|
||||
oauth-server: http://192.168.0.106:7001/usercenter
|
||||
oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url}
|
||||
client:
|
||||
client-id: 89e9c099c0a24e7f90d3cdc0447a86b3
|
||||
client-secret: VlQ1WE53RDZ6QVJLaHd2b1dGMUdEdGFjYTRhVHUyOHNpQzZoVzE3V1NDOG1ac2wwZTJHWk5NbXh3L3h3U2c4Rg==
|
||||
client-id: 32ec344a5fd04fd9911586df5d1dc36b
|
||||
client-secret: a2NORTAyZmthdTNtVHNwLytGVVo0ckFhNktHQU9JWVFmUks0TGw5L2hQRW1ac2wwZTJHWk5NbXh3L3h3U2c4Rg==
|
||||
user-authorization-uri: ${security.oauth2.oauth-server}/oauth/authorize
|
||||
access-token-uri: ${security.oauth2.oauth-server}/oauth/token
|
||||
grant-type: authorization_code
|
||||
|
@ -12,77 +12,76 @@
|
||||
name=""
|
||||
targetNamespace="http://www.activiti.org/test"
|
||||
typeLanguage="http://www.w3.org/2001/XMLSchema">
|
||||
<process xmlns="" id="myProcess_1" isClosed="false" isExecutable="true"
|
||||
processType="None">
|
||||
<startEvent id="_2" name="StartEvent"/>
|
||||
<userTask activiti:assignee="zhangsan" activiti:exclusive="true" id="_3" name="填写申请å<C2B7>?"/>
|
||||
<userTask activiti:assignee="lisi" activiti:exclusive="true" id="_4" name="部门ç»<C3A7>ç<EFBFBD>†å®¡æ‰¹"/>
|
||||
<userTask activiti:assignee="wangwu" activiti:exclusive="true" id="_5" name="总ç»<C3A7>ç<EFBFBD>†å®¡æ‰?"/>
|
||||
<endEvent id="_6" name="EndEvent"/>
|
||||
<sequenceFlow id="_7" sourceRef="_2" targetRef="_3"/>
|
||||
<sequenceFlow id="_8" sourceRef="_3" targetRef="_4"/>
|
||||
<sequenceFlow id="_9" sourceRef="_4" targetRef="_5"/>
|
||||
<sequenceFlow id="_10" sourceRef="_5" targetRef="_6"/>
|
||||
<process xmlns="" id="leave" isClosed="false" isExecutable="true" processType="None">
|
||||
<startEvent id="_14" name="StartEvent"/>
|
||||
<userTask activiti:assignee="zhangsan" activiti:exclusive="true" id="_15" name="申请请假"/>
|
||||
<userTask activiti:assignee="lisi" activiti:exclusive="true" id="_16" name="审批【副主任】"/>
|
||||
<sequenceFlow id="_2" sourceRef="_14" targetRef="_15"/>
|
||||
<sequenceFlow id="_3" sourceRef="_15" targetRef="_16"/>
|
||||
<endEvent id="_4" name="EndEvent"/>
|
||||
<userTask activiti:assignee="wangwu" activiti:exclusive="true" id="_5" name="审核"/>
|
||||
<sequenceFlow id="_6" sourceRef="_16" targetRef="_5"/>
|
||||
<sequenceFlow id="_7" sourceRef="_5" targetRef="_4"/>
|
||||
</process>
|
||||
<bpmndi:BPMNDiagram xmlns=""
|
||||
documentation="background=#FFFFFF;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">
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="560.0" y="110.0"/>
|
||||
<bpmndi:BPMNPlane bpmnElement="leave">
|
||||
<bpmndi:BPMNShape bpmnElement="_14" id="Shape-_14">
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="540.0" y="135.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="540.0" y="200.0"/>
|
||||
<bpmndi:BPMNShape bpmnElement="_15" id="Shape-_15">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="520.0" y="225.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_16" id="Shape-_16">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="525.0" y="325.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="540.0" y="295.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="540.0" y="405.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_6" id="Shape-_6">
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="565.0" y="510.0"/>
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="435.0" y="505.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="_7" id="BPMNEdge__7" sourceElement="_2" targetElement="_3">
|
||||
<omgdi:waypoint x="576.0" y="142.0"/>
|
||||
<omgdi:waypoint x="576.0" y="200.0"/>
|
||||
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="520.0" y="425.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="_2" id="BPMNEdge__2" sourceElement="_14" targetElement="_15">
|
||||
<omgdi:waypoint x="556.0" y="167.0"/>
|
||||
<omgdi:waypoint x="556.0" y="225.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc: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="_3" targetElement="_4">
|
||||
<omgdi:waypoint x="582.5" y="255.0"/>
|
||||
<omgdi:waypoint x="582.5" y="295.0"/>
|
||||
<bpmndi:BPMNEdge bpmnElement="_3" id="BPMNEdge__3" sourceElement="_15" targetElement="_16">
|
||||
<omgdi:waypoint x="565.0" y="280.0"/>
|
||||
<omgdi:waypoint x="565.0" y="325.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc: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="_4" targetElement="_5">
|
||||
<omgdi:waypoint x="582.5" y="350.0"/>
|
||||
<omgdi:waypoint x="582.5" y="405.0"/>
|
||||
<bpmndi:BPMNEdge bpmnElement="_6" id="BPMNEdge__6" sourceElement="_16" targetElement="_5">
|
||||
<omgdi:waypoint x="565.0" y="380.0"/>
|
||||
<omgdi:waypoint x="565.0" y="425.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="_10" id="BPMNEdge__10" sourceElement="_5" targetElement="_6">
|
||||
<omgdi:waypoint x="581.0" y="460.0"/>
|
||||
<omgdi:waypoint x="581.0" y="510.0"/>
|
||||
<bpmndi:BPMNEdge bpmnElement="_7" id="BPMNEdge__7" sourceElement="_5" targetElement="_4">
|
||||
<omgdi:waypoint x="520.0" y="452.5"/>
|
||||
<omgdi:waypoint x="467.0" y="521.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 8.4 KiB |
118
src/main/resources/bpmn/leavefull.bpmn
Normal file
118
src/main/resources/bpmn/leavefull.bpmn
Normal file
@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
||||
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
|
||||
xmlns:activiti="http://activiti.org/bpmn"
|
||||
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
|
||||
xmlns:tns="http://www.activiti.org/test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
expressionLanguage="http://www.w3.org/1999/XPath"
|
||||
id="m1585036839268"
|
||||
name=""
|
||||
targetNamespace="http://www.activiti.org/test"
|
||||
typeLanguage="http://www.w3.org/2001/XMLSchema">
|
||||
<process xmlns="" id="leavefull" isClosed="false" isExecutable="true" processType="None">
|
||||
<startEvent id="_2" name="StartEvent"/>
|
||||
<userTask activiti:assignee="zhangsan" activiti:exclusive="true" id="_3" name="填写申请"/>
|
||||
<userTask activiti:assignee="lisi" activiti:exclusive="true" id="_4" name="经理审批"/>
|
||||
<userTask activiti:assignee="wangwu" activiti:exclusive="true" id="_5" name="老板审批"/>
|
||||
<exclusiveGateway gatewayDirection="Unspecified" id="_6" name="ExclusiveGateway"/>
|
||||
<sequenceFlow id="_7" sourceRef="_2" targetRef="_3"/>
|
||||
<sequenceFlow id="_8" sourceRef="_3" targetRef="_6"/>
|
||||
<sequenceFlow id="_9" sourceRef="_6" targetRef="_4">
|
||||
<conditionExpression xsi:type="tFormalExpression">${days <= 3}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="_10" sourceRef="_6" targetRef="_5"/>
|
||||
<endEvent id="_14" name="EndEvent"/>
|
||||
<sequenceFlow id="_16" sourceRef="_4" targetRef="_14"/>
|
||||
<sequenceFlow id="_17" sourceRef="_5" targetRef="_14"/>
|
||||
</process>
|
||||
<bpmndi:BPMNDiagram xmlns=""
|
||||
documentation="background=#FFFFFF;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="leavefull">
|
||||
<bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2">
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="450.0" y="10.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="430.0" y="80.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="295.0" y="200.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5">
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="535.0" y="195.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_6" id="Shape-_6" isMarkerVisible="false">
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="450.0" y="150.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="_14" id="Shape-_14">
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="455.0" y="380.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_14">
|
||||
<omgdi:waypoint x="535.0" y="222.5"/>
|
||||
<omgdi:waypoint x="487.0" y="396.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc: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="_4" targetElement="_14">
|
||||
<omgdi:waypoint x="380.0" y="227.5"/>
|
||||
<omgdi:waypoint x="455.0" y="396.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc: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="_2" targetElement="_3">
|
||||
<omgdi:waypoint x="466.0" y="42.0"/>
|
||||
<omgdi:waypoint x="466.0" y="80.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc: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="_3" targetElement="_6">
|
||||
<omgdi:waypoint x="466.0" y="135.0"/>
|
||||
<omgdi:waypoint x="466.0" y="150.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc: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="_6" targetElement="_4">
|
||||
<omgdi:waypoint x="451.0" y="165.0"/>
|
||||
<omgdi:waypoint x="335.0" y="165.0"/>
|
||||
<omgdi:waypoint x="335.0" y="200.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="_10" id="BPMNEdge__10" sourceElement="_6" targetElement="_5">
|
||||
<omgdi:waypoint x="481.0" y="165.0"/>
|
||||
<omgdi:waypoint x="575.0" y="165.0"/>
|
||||
<omgdi:waypoint x="575.0" y="195.0"/>
|
||||
<bpmndi:BPMNLabel>
|
||||
<omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</definitions>
|
Loading…
Reference in New Issue
Block a user