Sfoglia il codice sorgente

ly 特种设备 试题导入

ly 1 anno fa
parent
commit
2747afb952

+ 4 - 4
master/src/main/java/com/ruoyi/config/ActivitiConfig.java

@@ -101,10 +101,10 @@ public class ActivitiConfig {
 //        Resource accident = resourceLoader.getResource("classpath:/processes/accident.bpmn"); //加载流程图资源文件
 //        deploymentBuilder2.enableDuplicateFiltering().addInputStream(accident.getFilename(), accident.getInputStream()).name("事件审批流程").deploy();//按流程id部署
 //
-//        DeploymentBuilder deploymentBuilder3 = repositoryService().createDeployment();
-//        Resource spec = resourceLoader.getResource("classpath:/processes/MyProcess.bpmn"); //加载流程图资源文件
-//        deploymentBuilder3.enableDuplicateFiltering().addInputStream(spec.getFilename(), spec.getInputStream()).name("特种设备审批流程").deploy();//按流程id部署
-//
+        DeploymentBuilder deploymentBuilder3 = repositoryService().createDeployment();
+        Resource spec = resourceLoader.getResource("classpath:/processes/MyProcess.bpmn"); //加载流程图资源文件
+        deploymentBuilder3.enableDuplicateFiltering().addInputStream(spec.getFilename(), spec.getInputStream()).name("特种设备审批流程").deploy();//按流程id部署
+
 //        DeploymentBuilder deploymentBuilder4 = repositoryService().createDeployment();
 //        Resource spec2 = resourceLoader.getResource("classpath:/processes/his/semsAddDelProcess.bpmn"); //加载流程图资源文件
 //        deploymentBuilder4.enableDuplicateFiltering().addInputStream(spec2.getFilename(), spec2.getInputStream()).name("特种设备新增修改流程").deploy();//按流程id部署

+ 76 - 0
master/src/main/java/com/ruoyi/framework/task/sems/SpecTodoTask.java

@@ -0,0 +1,76 @@
+package com.ruoyi.framework.task.sems;
+
+import com.github.stuxuhai.jpinyin.PinyinFormat;
+import com.github.stuxuhai.jpinyin.PinyinHelper;
+import com.ruoyi.common.sendEmail.IMailService;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SpringContextUtils;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngines;
+import org.activiti.engine.task.Task;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class SpecTodoTask extends BaseController {
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+    public void execute() {
+        List<SysUser> sysUsers = sysUserService.selectAllUser();
+        IMailService mailService = (IMailService) SpringContextUtils.getBean("mailService");
+        for (SysUser item : sysUsers) {
+            try {
+                ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
+                List<Task> taskList = processEngine.getTaskService()//获取任务service
+                        .createTaskQuery()//创建查询对象
+                        .processDefinitionName("特种设备审批流程")//根据任务流程id查询
+                        .taskCandidateOrAssigned(item.getUserId().toString())
+                        //                .taskAssignee(getUserId().toString())
+                        .orderByTaskCreateTime().desc().list();//参与者,组任务查询
+                //logger.info("==========================任务列表:{}",taskList);
+                String username = item.getNickName();
+                String loginName = item.getUserName();
+                String usernameEN = PinyinHelper.convertToPinyinString(username, " ", PinyinFormat.WITHOUT_TONE);
+                String email = item.getEmail();
+                if (taskList.size() > 0) {
+                    String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
+                            "<table cellpadding=\"0\" align=\"center\"" +
+                            "style=\"width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;\">" +
+                            "<tbody><tr><th valign=\"middle\" style=\"height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;\">" +
+                            "<font face=\"微软雅黑\" size=\"5\" style=\"color: rgb(255, 255, 255); \">待办任务 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">To-Do Task</font></th></tr>";
+                    //表html中间内容
+                    String center = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
+                            "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
+                            "亲爱的 username(loginName)</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
+                            "Dear usernameEN(loginName)</font></font></h2>" +
+                            "<p>您有" + taskList.size() + "条新的待办任务尚未完成:<br>" +
+                            "You have " + taskList.size() + " new to-do tasks that have not been completed :<br>" +
+                            "请登录<a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/approve/pending\">我的待办</a>查看。<br>" +
+                            "Please log in the <a href=\"https://cpms.basf-ypc.net.cn/cpms/index.html#/approve/pending\">My To-Do List</a> to handle it.</p>" +
+                            "<p align=\"right\">date</p>" +
+                            "<div style=\"width:700px;margin:0 auto;\">" +
+                            "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
+                            "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by SEMS, please do not reply</p>" +
+                            "</div></div></div></td></tr>";
+                    String one = center.replaceFirst("username", username);
+                    String two = one.replaceFirst("usernameEN", usernameEN);
+                    String three = two.replace("loginName", loginName);
+                    String result = three.replaceFirst("date", DateUtils.getDate());
+                    String end = "</tbody></table></div></body></html>";
+                    //拼接html
+                    String html = start + result + end;
+                    logger.info("html:" + html);
+                    mailService.sendHtmlMail(email, "特种设备系统:您有新的待办任务尚未完成 SEMS:You have new to-do tasks that have not been completed", html);
+                }
+            } catch (Exception ignored) {
+            }
+        }
+    }
+}

+ 6 - 0
master/src/main/java/com/ruoyi/project/sems/controller/TApproveController.java

@@ -306,6 +306,12 @@ public class TApproveController extends BaseController {
         variables.put("gyzjusers", tApprove.getGyzj().toString());
         variables.put("ctmusers", tApprove.getWxzj().toString());
         variables.put("zfusers", tApprove.getZf().toString());
+        if (tApprove.getDevType() == 2l) {
+            variables.put("isYlgd", 1); //压力管道不需要政府回执
+        }else {
+            variables.put("isYlgd", 0);
+        }
+
         variables.put("specEndSucessListener", new SpecEndSucessListener());
         variables.put("specEndFaileListener", new SpecEndFaileListener());
         variables.put("wxjlTaskCreateListener", new WxjlTaskCreateListener());

+ 21 - 0
master/src/main/java/com/ruoyi/project/training/elearn/controller/TElQuController.java

@@ -470,6 +470,8 @@ public class TElQuController extends BaseController {
                     answerC.setIsRight(0l);
                     TElQuAnswer answerD = new TElQuAnswer();
                     answerD.setIsRight(0l);
+                    TElQuAnswer answerE = new TElQuAnswer();
+                    answerE.setIsRight(0l);
 
                     Pattern patternA = Pattern.compile("A\\.(.*?)B\\.");
                     Matcher matcherA = patternA.matcher(quStr);
@@ -510,6 +512,18 @@ public class TElQuController extends BaseController {
                         } else {
                             System.out.println("未找到匹配的内容");
                         }
+                        if (quStr.contains("E.")) { //有E选项
+
+                            Pattern patternE = Pattern.compile("E\\.(.*?)(?=\\[D])");
+                            Matcher matcherE = patternE.matcher(quStr);
+                            if (matcherE.find()) {
+                                String content = matcherE.group(1);
+                                System.out.println("从E、到[D]、之间的内容是: " + content);
+                                answerE.setContent(content);
+                            } else {
+                                System.out.println("未找到匹配的内容");
+                            }
+                        }
                     } else {//无D选项
                         Pattern patternC = Pattern.compile("C\\.(.*?)(?=\\[D])");
                         Matcher matcherC = patternC.matcher(quStr);
@@ -535,12 +549,19 @@ public class TElQuController extends BaseController {
                     if (anStr.contains("D")) {
                         answerD.setIsRight(1l);
                     }
+                    if (anStr.contains("E")) {
+                        answerE.setIsRight(1l);
+                    }
                     List<TElQuAnswer> answerList = new ArrayList<>();
                     answerList.add(answerA);
                     answerList.add(answerB);
                     answerList.add(answerC);
                     if (quStr.contains("D.")) { //有D选项
                         answerList.add(answerD);
+                        if (quStr.contains("E.")) { //有D选项
+                            answerList.add(answerE);
+
+                        }
                     }
                     qu.setAnswerList(answerList);
                     qu.setRepoIds(repos);

+ 3 - 1
master/src/main/java/com/ruoyi/project/training/elearn/controller/TElUserQuController.java

@@ -104,7 +104,9 @@ public class TElUserQuController extends BaseController
         }
         //继续答题
         TElQuRepo quRepo =  tElQuRepoMapper.selectTElQuRepoLast(tElUserQu);
-
+        if (quRepo == null) {
+            return  AjaxResult.error("已经是最后一题");
+        }
         return AjaxResult.success(quRepo.getQuId());
     }
 

+ 111 - 128
master/src/main/resources/processes/MyProcess.bpmn

@@ -1,207 +1,190 @@
-<?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: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" 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="m1656407819069" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema">
-  <process id="myProcess" isClosed="false" isExecutable="true" name="特种设备审核" processType="None">
-    <startEvent activiti:initiator="${applyUserId}" id="startevent1" name="开始"/>
-    <userTask activiti:assignee="#{wxjlusers}" activiti:exclusive="true" id="wxjlTask" name="装置维修经理">
+<?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="特种设备审核" isExecutable="true">
+    <startEvent id="startevent1" name="开始" activiti:initiator="${applyUserId}"></startEvent>
+    <userTask id="wxjlTask" name="装置维修经理" activiti:assignee="#{wxjlusers}">
       <extensionElements>
-        <activiti:taskListener delegateExpression="${wxjlTaskCreateListener}" event="create"/>
+        <activiti:taskListener event="create" delegateExpression="${wxjlTaskCreateListener}"></activiti:taskListener>
       </extensionElements>
     </userTask>
-    <userTask activiti:assignee="#{gyzjusers}" activiti:exclusive="true" id="gyzjTask" name="工艺总监">
+    <userTask id="gyzjTask" name="工艺总监" activiti:assignee="#{gyzjusers}">
       <extensionElements>
-        <activiti:taskListener delegateExpression="${gyzjTaskCreateListener}" event="create"/>
+        <activiti:taskListener event="create" delegateExpression="${gyzjTaskCreateListener}"></activiti:taskListener>
       </extensionElements>
     </userTask>
-    <sequenceFlow id="flow1" name="开始" sourceRef="startevent1" targetRef="wxjlTask"/>
+    <sequenceFlow id="flow1" name="开始" sourceRef="startevent1" targetRef="wxjlTask"></sequenceFlow>
     <sequenceFlow id="flow7" name="不通过" sourceRef="wxjlTask" targetRef="endevent2">
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 0}]]>
-      </conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="flow9" name="不通过" sourceRef="gyzjTask" targetRef="endevent2">
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 0}]]>
-      </conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>
     <endEvent id="endevent2" name="审核不通过">
       <extensionElements>
-        <activiti:executionListener delegateExpression="${specEndFaileListener}" event="start"/>
+        <activiti:executionListener event="start" delegateExpression="${specEndFaileListener}"></activiti:executionListener>
       </extensionElements>
     </endEvent>
     <endEvent id="endevent3" name="审核通过">
       <extensionElements>
-        <activiti:executionListener delegateExpression="${specEndSucessListener}" event="start"/>
+        <activiti:executionListener event="start" delegateExpression="${specEndSucessListener}"></activiti:executionListener>
       </extensionElements>
     </endEvent>
-    <userTask activiti:assignee="#{ctmusers}" activiti:exclusive="true" id="ctmTask" name="机械维修总监">
+    <userTask id="ctmTask" name="机械维修总监" activiti:assignee="#{ctmusers}">
       <extensionElements>
-        <activiti:taskListener delegateExpression="${ctmTaskCreateListener}" event="create"/>
+        <activiti:taskListener event="create" delegateExpression="${ctmTaskCreateListener}"></activiti:taskListener>
       </extensionElements>
     </userTask>
     <sequenceFlow id="flow4" name="通过" sourceRef="gyzjTask" targetRef="ctmTask">
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 1}]]>
-      </conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="flow10" name="不通过" sourceRef="ctmTask" targetRef="endevent2">
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 0}]]>
-      </conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>
-    <userTask activiti:assignee="#{gyjlusers}" activiti:exclusive="true" id="gyjlTask" name="装置工艺经理">
+    <userTask id="gyjlTask" name="装置工艺经理" activiti:assignee="#{gyjlusers}">
       <extensionElements>
-        <activiti:taskListener delegateExpression="${gyjlTaskCreateListener}" event="create"/>
+        <activiti:taskListener event="create" delegateExpression="${gyjlTaskCreateListener}"></activiti:taskListener>
       </extensionElements>
     </userTask>
-    <sequenceFlow id="flow3" name="通过" sourceRef="gyjlTask" targetRef="gyzjTask"/>
+    <sequenceFlow id="flow3" name="通过" sourceRef="gyjlTask" targetRef="gyzjTask"></sequenceFlow>
     <sequenceFlow id="flow8" name="不通过" sourceRef="gyjlTask" targetRef="endevent2">
-      <documentation id="flow8_D_1">
-        <![CDATA[${condition == 0}]]>
-      </documentation>
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 0}]]>
-      </conditionExpression>
+      <documentation>${condition == 0}</documentation>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
     </sequenceFlow>
-    <userTask activiti:assignee="#{zfusers}" activiti:exclusive="true" id="zfhzTask" name="政府回执">
+    <userTask id="zfhzTask" name="政府回执" activiti:assignee="#{zfusers}">
       <extensionElements>
-        <activiti:taskListener delegateExpression="${zfhzTaskCreateListener}" event="create"/>
+        <activiti:taskListener event="create" delegateExpression="${zfhzTaskCreateListener}"></activiti:taskListener>
       </extensionElements>
     </userTask>
-    <sequenceFlow id="flow5" name="通过" sourceRef="ctmTask" targetRef="zfhzTask">
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 1}]]>
-      </conditionExpression>
+    <sequenceFlow id="flow5" name="通过" sourceRef="ctmTask" targetRef="exclusivegateway1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="flow6" name="结束" sourceRef="zfhzTask" targetRef="endevent3"/>
+    <sequenceFlow id="flow6" name="结束" sourceRef="zfhzTask" targetRef="endevent3"></sequenceFlow>
     <sequenceFlow id="flow11" name="通过" sourceRef="wxjlTask" targetRef="gyjlTask">
-      <conditionExpression xsi:type="tFormalExpression">
-        <![CDATA[${condition == 1}]]>
-      </conditionExpression>
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
+    </sequenceFlow>
+    <exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"></exclusiveGateway>
+    <sequenceFlow id="flow13" name="管道无需回执" sourceRef="exclusivegateway1" targetRef="endevent3">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${isYlgd== 1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow14" sourceRef="exclusivegateway1" targetRef="zfhzTask">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${isYlgd== 0}]]></conditionExpression>
     </sequenceFlow>
   </process>
-  <bpmndi:BPMNDiagram 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">
-      <bpmndi:BPMNShape bpmnElement="startevent1" id="Shape-startevent1">
-        <omgdc:Bounds height="32.0" width="32.0" x="80.0" y="28.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
+    <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
+      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
+        <omgdc:Bounds height="50.0" width="41.0" x="80.0" y="28.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="wxjlTask" id="Shape-wxjlTask">
-        <omgdc:Bounds height="55.0" width="105.0" x="180.0" y="25.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape bpmnElement="wxjlTask" id="BPMNShape_wxjlTask">
+        <omgdc:Bounds height="55.0" width="105.0" x="180.0" y="25.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="gyzjTask" id="Shape-gyzjTask">
-        <omgdc:Bounds height="55.0" width="105.0" x="490.0" y="25.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape bpmnElement="gyzjTask" id="BPMNShape_gyzjTask">
+        <omgdc:Bounds height="55.0" width="105.0" x="490.0" y="25.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent2" id="Shape-endevent2">
-        <omgdc:Bounds height="32.0" width="32.0" x="377.0" y="150.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2">
+        <omgdc:Bounds height="35.0" width="35.0" x="377.0" y="150.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="endevent3" id="Shape-endevent3">
-        <omgdc:Bounds height="32.0" width="32.0" x="950.0" y="35.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape bpmnElement="endevent3" id="BPMNShape_endevent3">
+        <omgdc:Bounds height="35.0" width="35.0" x="989.0" y="35.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="ctmTask" id="Shape-ctmTask">
-        <omgdc:Bounds height="55.0" width="105.0" x="640.0" y="25.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape bpmnElement="ctmTask" id="BPMNShape_ctmTask">
+        <omgdc:Bounds height="55.0" width="105.0" x="640.0" y="25.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="gyjlTask" id="Shape-gyjlTask">
-        <omgdc:Bounds height="55.0" width="111.0" x="339.0" y="25.0"/>
-        <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="55.0" width="111.0" x="0.0" y="0.0"/>
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape bpmnElement="gyjlTask" id="BPMNShape_gyjlTask">
+        <omgdc:Bounds height="55.0" width="111.0" x="339.0" y="25.0"></omgdc:Bounds>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape bpmnElement="zfhzTask" id="Shape-zfhzTask">
-        <omgdc:Bounds height="55.0" width="105.0" x="796.0" y="25.0"/>
+      <bpmndi:BPMNShape bpmnElement="zfhzTask" id="BPMNShape_zfhzTask">
+        <omgdc:Bounds height="55.0" width="105.0" x="840.0" y="25.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
+        <omgdc:Bounds height="40.0" width="40.0" x="777.0" y="32.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+        <omgdi:waypoint x="121.0" y="53.0"></omgdi:waypoint>
+        <omgdi:waypoint x="180.0" y="52.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="55.0" width="105.0" x="0.0" y="0.0"/>
+          <omgdc:Bounds height="16.0" width="32.0" x="129.0" y="63.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1" sourceElement="startevent1" targetElement="wxjlTask">
-        <omgdi:waypoint x="112.0" y="44.0"/>
-        <omgdi:waypoint x="180.0" y="52.5"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+        <omgdi:waypoint x="232.0" y="80.0"></omgdi:waypoint>
+        <omgdi:waypoint x="232.0" y="167.0"></omgdi:waypoint>
+        <omgdi:waypoint x="377.0" y="167.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="129.0" y="63.0"/>
+          <omgdc:Bounds height="16.0" width="48.0" x="240.0" y="119.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3" sourceElement="gyjlTask" targetElement="gyzjTask">
-        <omgdi:waypoint x="450.0" y="52.5"/>
-        <omgdi:waypoint x="490.0" y="52.5"/>
+      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
+        <omgdi:waypoint x="542.0" y="80.0"></omgdi:waypoint>
+        <omgdi:waypoint x="542.0" y="167.0"></omgdi:waypoint>
+        <omgdi:waypoint x="412.0" y="167.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="448.0" y="62.0"/>
+          <omgdc:Bounds height="16.0" width="48.0" x="547.0" y="119.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4" sourceElement="gyzjTask" targetElement="ctmTask">
-        <omgdi:waypoint x="595.0" y="52.5"/>
-        <omgdi:waypoint x="640.0" y="52.5"/>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="595.0" y="52.0"></omgdi:waypoint>
+        <omgdi:waypoint x="640.0" y="52.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="599.0" y="62.0"/>
+          <omgdc:Bounds height="16.0" width="32.0" x="599.0" y="62.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5" sourceElement="ctmTask" targetElement="zfhzTask">
-        <omgdi:waypoint x="745.0" y="52.5"/>
-        <omgdi:waypoint x="796.0" y="52.5"/>
+      <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
+        <omgdi:waypoint x="692.0" y="80.0"></omgdi:waypoint>
+        <omgdi:waypoint x="692.0" y="167.0"></omgdi:waypoint>
+        <omgdi:waypoint x="412.0" y="167.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="746.0" y="62.0"/>
+          <omgdc:Bounds height="16.0" width="48.0" x="700.0" y="119.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6" sourceElement="zfhzTask" targetElement="endevent3">
-        <omgdi:waypoint x="901.0" y="52.5"/>
-        <omgdi:waypoint x="950.0" y="51.0"/>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="450.0" y="52.0"></omgdi:waypoint>
+        <omgdi:waypoint x="490.0" y="52.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="905.0" y="62.0"/>
+          <omgdc:Bounds height="16.0" width="32.0" x="448.0" y="62.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7" sourceElement="wxjlTask" targetElement="endevent2">
-        <omgdi:waypoint x="232.0" y="80.0"/>
-        <omgdi:waypoint x="232.0" y="167.0"/>
-        <omgdi:waypoint x="377.0312805773287" y="167.0"/>
+      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
+        <omgdi:waypoint x="394.0" y="80.0"></omgdi:waypoint>
+        <omgdi:waypoint x="394.0" y="150.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="48.0" x="240.0" y="119.0"/>
+          <omgdc:Bounds height="16.0" width="48.0" x="397.0" y="119.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10" sourceElement="ctmTask" targetElement="endevent2">
-        <omgdi:waypoint x="692.0" y="80.0"/>
-        <omgdi:waypoint x="692.0" y="167.0"/>
-        <omgdi:waypoint x="408.9687194226713" y="167.0"/>
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="745.0" y="52.0"></omgdi:waypoint>
+        <omgdi:waypoint x="777.0" y="52.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="48.0" x="700.0" y="119.0"/>
+          <omgdc:Bounds height="16.0" width="32.0" x="746.0" y="62.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8" sourceElement="gyjlTask" targetElement="endevent2">
-        <omgdi:waypoint x="393.0" y="80.0"/>
-        <omgdi:waypoint x="393.0" y="150.0"/>
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="945.0" y="52.0"></omgdi:waypoint>
+        <omgdi:waypoint x="989.0" y="52.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="48.0" x="397.0" y="119.0"/>
+          <omgdc:Bounds height="16.0" width="32.0" x="958.0" y="66.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11" sourceElement="wxjlTask" targetElement="gyjlTask">
-        <omgdi:waypoint x="285.0" y="52.5"/>
-        <omgdi:waypoint x="339.0" y="52.5"/>
+      <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
+        <omgdi:waypoint x="285.0" y="52.0"></omgdi:waypoint>
+        <omgdi:waypoint x="339.0" y="52.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="32.0" x="285.0" y="52.0"/>
+          <omgdc:Bounds height="16.0" width="32.0" x="285.0" y="52.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9" sourceElement="gyzjTask" targetElement="endevent2">
-        <omgdi:waypoint x="542.0" y="80.0"/>
-        <omgdi:waypoint x="542.0" y="167.0"/>
-        <omgdi:waypoint x="408.9687194226713" y="167.0"/>
+      <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
+        <omgdi:waypoint x="797.0" y="72.0"></omgdi:waypoint>
+        <omgdi:waypoint x="797.0" y="151.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1007.0" y="151.0"></omgdi:waypoint>
+        <omgdi:waypoint x="1006.0" y="70.0"></omgdi:waypoint>
         <bpmndi:BPMNLabel>
-          <omgdc:Bounds height="16.0" width="48.0" x="547.0" y="119.0"/>
+          <omgdc:Bounds height="16.0" width="96.0" x="843.0" y="129.0"></omgdc:Bounds>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
+        <omgdi:waypoint x="817.0" y="52.0"></omgdi:waypoint>
+        <omgdi:waypoint x="840.0" y="52.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </definitions>