wangliang 3 lat temu
rodzic
commit
2817967e6b

+ 5 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/MyTask2Listener.java → distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/DirectorApproveListener.java

@@ -5,24 +5,21 @@ import org.activiti.engine.delegate.TaskListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
 
 /**
- * @Description: 任务监听
+ * @Description: 教研室主任审批
  * @Param:
  * @return:
  * @Author: wangliang
- * @Date: 2021/7/15
+ * @Date: 2021/7/29
  */
-public class MyTask2Listener implements TaskListener {
-    private final static Logger log = LoggerFactory.getLogger(MyTask2Listener.class);
+public class DirectorApproveListener implements TaskListener {
+    private final static Logger log = LoggerFactory.getLogger(DirectorApproveListener.class);
 
     @Override
     public void notify(DelegateTask delegateTask) {
-        log.info("delegateTask.getEventName():{}", delegateTask.getEventName());
-        //添加会签的人员,一人通过即可进入下一环节
+        //添加或签的人员,一人通过即可进入下一环节
         delegateTask.addCandidateUsers(Arrays.asList("王总", "赵总"));
     }
 }

+ 0 - 28
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/MyTask1Listener.java

@@ -1,28 +0,0 @@
-package com.qmth.distributed.print.business.activiti;
-
-import org.activiti.engine.delegate.DelegateTask;
-import org.activiti.engine.delegate.TaskListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @Description: 任务监听
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2021/7/15
- */
-public class MyTask1Listener implements TaskListener {
-    private final static Logger log = LoggerFactory.getLogger(MyTask1Listener.class);
-
-    @Override
-    public void notify(DelegateTask delegateTask) {
-        log.info("delegateTask.getEventName():{}", delegateTask.getEventName());
-        //添加会签的人员,所有的都审批通过才可进入下一环节
-        delegateTask.setVariable("assigneeList", Arrays.asList("张三", "李四"));
-    }
-}

+ 0 - 23
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/MyTaskListener.java

@@ -1,23 +0,0 @@
-package com.qmth.distributed.print.business.activiti;
-
-import org.activiti.engine.delegate.DelegateTask;
-import org.activiti.engine.delegate.TaskListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @Description: 任务监听
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2021/7/15
- */
-public class MyTaskListener implements TaskListener {
-    private final static Logger log = LoggerFactory.getLogger(MyTaskListener.class);
-
-    @Override
-    public void notify(DelegateTask delegateTask) {
-        log.info("delegateTask.getEventName():{}", delegateTask.getEventName());
-        delegateTask.setAssignee("test123");
-    }
-}

+ 25 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PresidentApproveListener.java

@@ -0,0 +1,25 @@
+package com.qmth.distributed.print.business.activiti;
+
+import org.activiti.engine.delegate.DelegateTask;
+import org.activiti.engine.delegate.TaskListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Arrays;
+
+/**
+ * @Description: 教学院长审批
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/7/29
+ */
+public class PresidentApproveListener implements TaskListener {
+    private final static Logger log = LoggerFactory.getLogger(PresidentApproveListener.class);
+
+    @Override
+    public void notify(DelegateTask delegateTask) {
+        //添加或签的人员,一人通过即可进入下一环节
+        delegateTask.addCandidateUsers(Arrays.asList("王总", "赵总"));
+    }
+}

+ 37 - 37
distributed-print/src/main/java/com/qmth/distributed/print/api/ActivitiController.java

@@ -36,12 +36,12 @@ public class ActivitiController {
     @Resource
     private ActivitiService activitiService;
 
-    @ApiOperation(value = "注册流程")
-    @RequestMapping(value = "/createDeployment", method = RequestMethod.POST)
-    public Result createDeployment(@RequestParam(value = "processFileName") String processFileName) {
-        activitiService.createDeployment(processFileName);
-        return ResultUtil.ok();
-    }
+//    @ApiOperation(value = "注册流程")
+//    @RequestMapping(value = "/createDeployment", method = RequestMethod.POST)
+//    public Result createDeployment(@RequestParam(value = "processFileName") String processFileName) {
+//        activitiService.createDeployment(processFileName);
+//        return ResultUtil.ok();
+//    }
 
     @ApiOperation(value = "上传流程")
     @RequestMapping(value = "/updateDeployment", method = RequestMethod.POST)
@@ -50,35 +50,35 @@ public class ActivitiController {
         return ResultUtil.ok();
     }
 
-    @ApiOperation(value = "启动流程")
-    @RequestMapping(value = "/startActivity", method = RequestMethod.POST)
-    public Result startActivity(@RequestParam(value = "processKey") String processKey) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("userId", 1L);
-        map.put("approveId", 2L);
-        map.put("assigneeId", 3L);
-        activitiService.startActivity(processKey, map);
-        return ResultUtil.ok();
-    }
-
-    @ApiOperation(value = "获取待办")
-    @RequestMapping(value = "/getTaskList", method = RequestMethod.POST)
-    public Result getTaskList() {
-        activitiService.getTaskList();
-        return ResultUtil.ok();
-    }
-
-    @ApiOperation(value = "提交")
-    @RequestMapping(value = "/complete", method = RequestMethod.POST)
-    public Result complete(@RequestParam(value = "taskId") String taskId) {
-        activitiService.complete(taskId);
-        return ResultUtil.ok();
-    }
-
-    @ApiOperation(value = "根据流程id直接结束流程")
-    @RequestMapping(value = "/deleteProcessInstance", method = RequestMethod.POST)
-    public Result deleteProcessInstance(@RequestParam(value = "flowId") String flowId) {
-        activitiService.deleteProcessInstance(flowId);
-        return ResultUtil.ok();
-    }
+//    @ApiOperation(value = "启动流程")
+//    @RequestMapping(value = "/startActivity", method = RequestMethod.POST)
+//    public Result startActivity(@RequestParam(value = "processKey") String processKey) {
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("userId", 1L);
+//        map.put("approveId", 2L);
+//        map.put("assigneeId", 3L);
+//        activitiService.startActivity(processKey, map);
+//        return ResultUtil.ok();
+//    }
+//
+//    @ApiOperation(value = "获取待办")
+//    @RequestMapping(value = "/getTaskList", method = RequestMethod.POST)
+//    public Result getTaskList() {
+//        activitiService.getTaskList();
+//        return ResultUtil.ok();
+//    }
+//
+//    @ApiOperation(value = "提交")
+//    @RequestMapping(value = "/complete", method = RequestMethod.POST)
+//    public Result complete(@RequestParam(value = "taskId") String taskId) {
+//        activitiService.complete(taskId);
+//        return ResultUtil.ok();
+//    }
+//
+//    @ApiOperation(value = "根据流程id直接结束流程")
+//    @RequestMapping(value = "/deleteProcessInstance", method = RequestMethod.POST)
+//    public Result deleteProcessInstance(@RequestParam(value = "flowId") String flowId) {
+//        activitiService.deleteProcessInstance(flowId);
+//        return ResultUtil.ok();
+//    }
 }

+ 119 - 0
distributed-print/src/main/resources/processes/GdykdxPaperApprove.bpmn

@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
+  <process id="myProcess" name="My process" isExecutable="true">
+    <startEvent id="startevent1" name="Start"></startEvent>
+    <userTask id="usertask1" name="提交试卷(命题老师)"></userTask>
+    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
+    <userTask id="usertask2" name="审核试卷(教研室主任)">
+      <extensionElements>
+        <activiti:taskListener event="create" class="com.qmth.distributed.print.business.activiti.DirectorApproveListener"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
+    <endEvent id="endevent1" name="End"></endEvent>
+    <exclusiveGateway id="exclusivegateway1" name="审批"></exclusiveGateway>
+    <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="exclusivegateway1"></sequenceFlow>
+    <userTask id="usertask3" name="审核试卷(教学院长)">
+      <extensionElements>
+        <activiti:taskListener event="create" class="com.qmth.distributed.print.business.activiti.PresidentApproveListener"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <sequenceFlow id="flow4" name="通过" sourceRef="exclusivegateway1" targetRef="usertask3">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow5" name="驳回" sourceRef="exclusivegateway1" targetRef="usertask1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 0}]]></conditionExpression>
+    </sequenceFlow>
+    <exclusiveGateway id="exclusivegateway2" name="审批"></exclusiveGateway>
+    <sequenceFlow id="flow6" sourceRef="usertask3" targetRef="exclusivegateway2"></sequenceFlow>
+    <sequenceFlow id="flow7" name="通过" sourceRef="exclusivegateway2" targetRef="endevent1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 2}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow8" name="驳回" sourceRef="exclusivegateway2" targetRef="usertask2">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow9" name="驳回" sourceRef="exclusivegateway2" targetRef="usertask1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 0}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
+    <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
+      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="43.0" y="46.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
+        <omgdc:Bounds height="55.0" width="105.0" x="151.0" y="36.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
+        <omgdc:Bounds height="55.0" width="105.0" x="350.0" y="36.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="385.0" y="400.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
+        <omgdc:Bounds height="40.0" width="40.0" x="382.0" y="110.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
+        <omgdc:Bounds height="55.0" width="105.0" x="350.0" y="190.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
+        <omgdc:Bounds height="40.0" width="40.0" x="382.0" y="300.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="78.0" y="63.0"></omgdi:waypoint>
+        <omgdi:waypoint x="151.0" y="63.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="256.0" y="63.0"></omgdi:waypoint>
+        <omgdi:waypoint x="350.0" y="63.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="402.0" y="91.0"></omgdi:waypoint>
+        <omgdi:waypoint x="402.0" y="110.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="402.0" y="150.0"></omgdi:waypoint>
+        <omgdi:waypoint x="402.0" y="190.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="22.0" x="402.0" y="150.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="382.0" y="130.0"></omgdi:waypoint>
+        <omgdi:waypoint x="203.0" y="130.0"></omgdi:waypoint>
+        <omgdi:waypoint x="203.0" y="91.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="22.0" x="382.0" y="130.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="402.0" y="245.0"></omgdi:waypoint>
+        <omgdi:waypoint x="402.0" y="300.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+        <omgdi:waypoint x="402.0" y="340.0"></omgdi:waypoint>
+        <omgdi:waypoint x="402.0" y="400.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="22.0" x="402.0" y="340.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
+        <omgdi:waypoint x="422.0" y="320.0"></omgdi:waypoint>
+        <omgdi:waypoint x="546.0" y="319.0"></omgdi:waypoint>
+        <omgdi:waypoint x="546.0" y="63.0"></omgdi:waypoint>
+        <omgdi:waypoint x="455.0" y="63.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="22.0" x="422.0" y="320.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
+        <omgdi:waypoint x="382.0" y="320.0"></omgdi:waypoint>
+        <omgdi:waypoint x="203.0" y="321.0"></omgdi:waypoint>
+        <omgdi:waypoint x="203.0" y="91.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="16.0" width="22.0" x="382.0" y="320.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

+ 0 - 40
distributed-print/src/main/resources/processes/MyProcess.bpmn

@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
-  <process id="myProcess" name="My process" isExecutable="true">
-    <startEvent id="startevent1" name="开始"></startEvent>
-    <endEvent id="endevent1" name="结束"></endEvent>
-    <userTask id="usertask1" name="提交审批" activiti:assignee="${userId}"></userTask>
-    <userTask id="usertask2" name="审批" activiti:assignee="${approveId}"></userTask>
-    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
-    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
-    <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
-  </process>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
-    <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
-      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="200.0" y="32.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="200.0" y="320.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
-        <omgdc:Bounds height="55.0" width="105.0" x="165.0" y="130.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
-        <omgdc:Bounds height="55.0" width="105.0" x="165.0" y="220.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
-        <omgdi:waypoint x="217.0" y="67.0"></omgdi:waypoint>
-        <omgdi:waypoint x="217.0" y="130.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
-        <omgdi:waypoint x="217.0" y="185.0"></omgdi:waypoint>
-        <omgdi:waypoint x="217.0" y="220.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
-        <omgdi:waypoint x="217.0" y="275.0"></omgdi:waypoint>
-        <omgdi:waypoint x="217.0" y="320.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</definitions>

+ 0 - 66
distributed-print/src/main/resources/processes/MyProcess1.bpmn

@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
-  <process id="myProcess1" name="My process" isExecutable="true">
-    <startEvent id="startevent1" name="Start"></startEvent>
-    <userTask id="usertask1" name="请假申请" activiti:assignee="${approveId}"></userTask>
-    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
-    <userTask id="usertask2" name="审批" activiti:assignee="${userId}"></userTask>
-    <endEvent id="endevent1" name="End"></endEvent>
-    <sequenceFlow id="flow6" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
-    <exclusiveGateway id="exclusivegateway2" name="审批"></exclusiveGateway>
-    <sequenceFlow id="flow8" sourceRef="usertask1" targetRef="exclusivegateway2"></sequenceFlow>
-    <sequenceFlow id="flow9" name="通过" sourceRef="exclusivegateway2" targetRef="usertask2">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 1}]]></conditionExpression>
-    </sequenceFlow>
-    <sequenceFlow id="flow10" name="不通过" sourceRef="exclusivegateway2" targetRef="endevent1">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 0}]]></conditionExpression>
-    </sequenceFlow>
-  </process>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess1">
-    <bpmndi:BPMNPlane bpmnElement="myProcess1" id="BPMNPlane_myProcess1">
-      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="60.0" y="160.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
-        <omgdc:Bounds height="55.0" width="105.0" x="210.0" y="150.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
-        <omgdc:Bounds height="55.0" width="105.0" x="540.0" y="60.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="575.0" y="270.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
-        <omgdc:Bounds height="40.0" width="40.0" x="360.0" y="158.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
-        <omgdi:waypoint x="95.0" y="177.0"></omgdi:waypoint>
-        <omgdi:waypoint x="210.0" y="177.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
-        <omgdi:waypoint x="592.0" y="115.0"></omgdi:waypoint>
-        <omgdi:waypoint x="592.0" y="270.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
-        <omgdi:waypoint x="315.0" y="177.0"></omgdi:waypoint>
-        <omgdi:waypoint x="360.0" y="178.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
-        <omgdi:waypoint x="380.0" y="158.0"></omgdi:waypoint>
-        <omgdi:waypoint x="380.0" y="87.0"></omgdi:waypoint>
-        <omgdi:waypoint x="540.0" y="87.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="100.0" x="380.0" y="158.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
-        <omgdi:waypoint x="380.0" y="198.0"></omgdi:waypoint>
-        <omgdi:waypoint x="380.0" y="287.0"></omgdi:waypoint>
-        <omgdi:waypoint x="575.0" y="287.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="100.0" x="380.0" y="198.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</definitions>

+ 0 - 126
distributed-print/src/main/resources/processes/MyProcess2.bpmn

@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
-  <process id="myProcess2" name="My process" isExecutable="true">
-    <startEvent id="startevent1" name="Start"></startEvent>
-    <userTask id="usertask1" name="请假申请" activiti:assignee="${userId}"></userTask>
-    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
-    <endEvent id="endevent1" name="End"></endEvent>
-    <userTask id="managerApprove" name="主管审批" activiti:assignee="${approveId}"></userTask>
-    <userTask id="bossApprove" name="总监审批" activiti:assignee="${assigneeId}"></userTask>
-    <exclusiveGateway id="exclusivegateway6" name="主管审批"></exclusiveGateway>
-    <sequenceFlow id="flow24" sourceRef="managerApprove" targetRef="exclusivegateway6"></sequenceFlow>
-    <sequenceFlow id="flow25" name="不通过" sourceRef="exclusivegateway6" targetRef="endevent1">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 0}]]></conditionExpression>
-    </sequenceFlow>
-    <sequenceFlow id="flow26" name="通过" sourceRef="exclusivegateway6" targetRef="bossApprove">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${approve == 1}]]></conditionExpression>
-    </sequenceFlow>
-    <exclusiveGateway id="exclusivegateway7" name="总监审批"></exclusiveGateway>
-    <sequenceFlow id="flow27" sourceRef="bossApprove" targetRef="exclusivegateway7"></sequenceFlow>
-    <sequenceFlow id="flow28" name="驳回" sourceRef="exclusivegateway7" targetRef="usertask1">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${assignee == 0}]]></conditionExpression>
-    </sequenceFlow>
-    <sequenceFlow id="flow29" name="通过" sourceRef="exclusivegateway7" targetRef="endevent1">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${assignee == 1}]]></conditionExpression>
-    </sequenceFlow>
-    <exclusiveGateway id="exclusivegateway8" name="用户申请"></exclusiveGateway>
-    <sequenceFlow id="flow30" sourceRef="usertask1" targetRef="exclusivegateway8"></sequenceFlow>
-    <sequenceFlow id="flow31" name="通过" sourceRef="exclusivegateway8" targetRef="managerApprove">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${user == 1}]]></conditionExpression>
-    </sequenceFlow>
-    <sequenceFlow id="flow32" name="不通过" sourceRef="exclusivegateway8" targetRef="endevent1">
-      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${user == 0}]]></conditionExpression>
-    </sequenceFlow>
-  </process>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess2">
-    <bpmndi:BPMNPlane bpmnElement="myProcess2" id="BPMNPlane_myProcess2">
-      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="247.0" y="1.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
-        <omgdc:Bounds height="55.0" width="105.0" x="212.0" y="90.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="243.0" y="350.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="managerApprove" id="BPMNShape_managerApprove">
-        <omgdc:Bounds height="55.0" width="105.0" x="90.0" y="220.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="bossApprove" id="BPMNShape_bossApprove">
-        <omgdc:Bounds height="55.0" width="105.0" x="330.0" y="220.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="exclusivegateway6" id="BPMNShape_exclusivegateway6">
-        <omgdc:Bounds height="40.0" width="40.0" x="240.0" y="228.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="exclusivegateway7" id="BPMNShape_exclusivegateway7">
-        <omgdc:Bounds height="40.0" width="40.0" x="480.0" y="228.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="exclusivegateway8" id="BPMNShape_exclusivegateway8">
-        <omgdc:Bounds height="40.0" width="40.0" x="122.0" y="97.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
-        <omgdi:waypoint x="264.0" y="36.0"></omgdi:waypoint>
-        <omgdi:waypoint x="264.0" y="90.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
-        <omgdi:waypoint x="195.0" y="247.0"></omgdi:waypoint>
-        <omgdi:waypoint x="240.0" y="248.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
-        <omgdi:waypoint x="260.0" y="268.0"></omgdi:waypoint>
-        <omgdi:waypoint x="260.0" y="350.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="33.0" x="260.0" y="268.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
-        <omgdi:waypoint x="280.0" y="248.0"></omgdi:waypoint>
-        <omgdi:waypoint x="330.0" y="247.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="22.0" x="280.0" y="248.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27">
-        <omgdi:waypoint x="435.0" y="247.0"></omgdi:waypoint>
-        <omgdi:waypoint x="480.0" y="248.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow28" id="BPMNEdge_flow28">
-        <omgdi:waypoint x="500.0" y="228.0"></omgdi:waypoint>
-        <omgdi:waypoint x="500.0" y="117.0"></omgdi:waypoint>
-        <omgdi:waypoint x="317.0" y="117.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="22.0" x="500.0" y="228.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow29" id="BPMNEdge_flow29">
-        <omgdi:waypoint x="500.0" y="268.0"></omgdi:waypoint>
-        <omgdi:waypoint x="499.0" y="367.0"></omgdi:waypoint>
-        <omgdi:waypoint x="278.0" y="367.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="22.0" x="500.0" y="268.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow30" id="BPMNEdge_flow30">
-        <omgdi:waypoint x="212.0" y="117.0"></omgdi:waypoint>
-        <omgdi:waypoint x="162.0" y="117.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow31" id="BPMNEdge_flow31">
-        <omgdi:waypoint x="142.0" y="137.0"></omgdi:waypoint>
-        <omgdi:waypoint x="142.0" y="220.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="22.0" x="142.0" y="137.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow32" id="BPMNEdge_flow32">
-        <omgdi:waypoint x="122.0" y="117.0"></omgdi:waypoint>
-        <omgdi:waypoint x="54.0" y="117.0"></omgdi:waypoint>
-        <omgdi:waypoint x="54.0" y="248.0"></omgdi:waypoint>
-        <omgdi:waypoint x="54.0" y="367.0"></omgdi:waypoint>
-        <omgdi:waypoint x="243.0" y="367.0"></omgdi:waypoint>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="33.0" x="122.0" y="117.0"></omgdc:Bounds>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</definitions>

+ 0 - 73
distributed-print/src/main/resources/processes/MyProcess3.bpmn

@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test" id="m1626334568456" name="">
-  <process id="myProcess3" name="My process" isExecutable="true" isClosed="false" processType="None">
-    <startEvent id="startevent1" name="Start"></startEvent>
-    <userTask id="usertask1" name="请假申请">
-      <extensionElements>
-        <activiti:taskListener event="create" class="com.qmth.distributed.print.business.activiti.MyTaskListener"></activiti:taskListener>
-      </extensionElements>
-    </userTask>
-    <userTask id="usertask2" name="主管审批" activiti:assignee="${approveId}">
-      <extensionElements>
-        <activiti:taskListener event="create" class="com.qmth.distributed.print.business.activiti.MyTask1Listener"></activiti:taskListener>
-      </extensionElements>
-    </userTask>
-    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
-    <sequenceFlow id="_2" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
-    <userTask id="usertask3" name="总监审批" activiti:assignee="${assignee}">
-      <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${assigneeList}" activiti:elementVariable="assignee"></multiInstanceLoopCharacteristics>
-    </userTask>
-    <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="usertask3"></sequenceFlow>
-    <endEvent id="endevent1" name="End"></endEvent>
-    <userTask id="usertask4" name="BOSS审批">
-      <extensionElements>
-        <activiti:taskListener event="create" class="com.qmth.distributed.print.business.activiti.MyTask2Listener"></activiti:taskListener>
-      </extensionElements>
-    </userTask>
-    <sequenceFlow id="flow5" sourceRef="usertask3" targetRef="usertask4"></sequenceFlow>
-    <sequenceFlow id="flow6" sourceRef="usertask4" targetRef="endevent1"></sequenceFlow>
-  </process>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess3">
-    <bpmndi:BPMNPlane bpmnElement="myProcess3" id="BPMNPlane_myProcess3">
-      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="300.0" y="20.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
-        <omgdc:Bounds height="55.0" width="105.0" x="110.0" y="105.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
-        <omgdc:Bounds height="55.0" width="105.0" x="265.0" y="202.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
-        <omgdc:Bounds height="55.0" width="105.0" x="415.0" y="202.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
-        <omgdc:Bounds height="35.0" width="35.0" x="450.0" y="360.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="usertask4" id="BPMNShape_usertask4">
-        <omgdc:Bounds height="55.0" width="105.0" x="565.0" y="202.0"></omgdc:Bounds>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
-        <omgdi:waypoint x="162.0" y="160.0"></omgdi:waypoint>
-        <omgdi:waypoint x="317.0" y="202.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="_2" id="BPMNEdge__2">
-        <omgdi:waypoint x="317.0" y="55.0"></omgdi:waypoint>
-        <omgdi:waypoint x="162.0" y="105.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
-        <omgdi:waypoint x="370.0" y="229.0"></omgdi:waypoint>
-        <omgdi:waypoint x="415.0" y="229.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
-        <omgdi:waypoint x="520.0" y="229.0"></omgdi:waypoint>
-        <omgdi:waypoint x="565.0" y="229.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
-        <omgdi:waypoint x="617.0" y="257.0"></omgdi:waypoint>
-        <omgdi:waypoint x="618.0" y="377.0"></omgdi:waypoint>
-        <omgdi:waypoint x="485.0" y="377.0"></omgdi:waypoint>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</definitions>

+ 17 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysOrg.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -31,6 +32,10 @@ public class SysOrg extends BaseEntity implements Serializable {
      * 机构代码
      */
     private String code;
+
+    @ApiModelProperty(value = "类型,COLLEGE:学院,FACULTY:院系,TEACHING_ROOM:教研室,PRINTING_HOUSE:印刷厂")
+    private OrgTypeEnum type;
+
     /**
      * 机构名称
      */
@@ -45,6 +50,18 @@ public class SysOrg extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     private Boolean enable;
 
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public OrgTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(OrgTypeEnum type) {
+        this.type = type;
+    }
+
     public Long getSchoolId() {
         return schoolId;
     }

+ 46 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/OrgTypeEnum.java

@@ -0,0 +1,46 @@
+package com.qmth.teachcloud.common.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 机构类型enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/7/29
+ */
+public enum OrgTypeEnum {
+
+    COLLEGE("学院"),
+
+    FACULTY("院系"),
+
+    TEACHING_ROOM("教研室"),
+
+    PRINTING_HOUSE("印刷厂");
+
+    private String title;
+
+    private OrgTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (OrgTypeEnum e : OrgTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}