<?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="reserveInvoice" name="预约开票审批流程" isExecutable="true">
    <startEvent id="start" name="开始" activiti:initiator="${applyUserId}"></startEvent>
    <userTask id="yhzgtask" name="用户主管签字确认" activiti:assignee="#{yhzgusers}">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${yhzgTaskCreateListener}"></activiti:taskListener>
      </extensionElements>
    </userTask>
    <userTask id="zzzgtask" name="装置主管签字确认" activiti:candidateUsers="#{zzzgusers}">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${zzzgTaskCreateListener}"></activiti:taskListener>
      </extensionElements>
    </userTask>
    <sequenceFlow id="flow2" name="通过" sourceRef="yhzgtask" targetRef="zzzgtask">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
    </sequenceFlow>
    <userTask id="zzgcstask" name="装置工程师签字确认" activiti:candidateUsers="#{zzgcsusers}">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${zzgcsTaskCreateListener}"></activiti:taskListener>
      </extensionElements>
    </userTask>
    <userTask id="zzjltask" name="装置经理签字确认" activiti:candidateUsers="#{zzjlusers}">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${zzjlTaskCreateListener}"></activiti:taskListener>
      </extensionElements>
    </userTask>
    <sequenceFlow id="flow11" name="通过" sourceRef="zzjltask" targetRef="end">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
    </sequenceFlow>
    <endEvent id="end" name="结束">
      <extensionElements>
        <activiti:executionListener event="start" delegateExpression="${invoiceEndSuccessListener}"></activiti:executionListener>
      </extensionElements>
    </endEvent>
    <sequenceFlow id="flow13" sourceRef="start" targetRef="yhzgtask"></sequenceFlow>
    <exclusiveGateway id="istoday" name="作业开始时间是否为预约当天"></exclusiveGateway>
    <sequenceFlow id="flow18" name="通过" sourceRef="zzzgtask" targetRef="istoday">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow19" name="是" sourceRef="istoday" targetRef="zzgcstask">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${istoday == 1}]]></conditionExpression>
    </sequenceFlow>
    <exclusiveGateway id="isspecial" name="是否涉及特技动火、受限空间"></exclusiveGateway>
    <sequenceFlow id="flow20" name="否" sourceRef="istoday" targetRef="isspecial">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${istoday == 0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow21" name="否" sourceRef="isspecial" targetRef="end">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${isspecial == 0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow22" name="是" sourceRef="isspecial" targetRef="zzjltask">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${isspecial == 1}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow23" name="通过" sourceRef="zzgcstask" targetRef="isspecial">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 1}]]></conditionExpression>
    </sequenceFlow>
    <endEvent id="end1" name="结束">
      <extensionElements>
        <activiti:executionListener event="start" delegateExpression="${invoiceEndFailListener}"></activiti:executionListener>
      </extensionElements>
    </endEvent>
    <sequenceFlow id="flow25" name="不通过" sourceRef="zzzgtask" targetRef="end1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow26" name="不通过" sourceRef="zzgcstask" targetRef="end1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow27" name="不通过" sourceRef="zzjltask" targetRef="end1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
    </sequenceFlow>
    <boundaryEvent id="boundarytimer3" name=" " attachedToRef="zzzgtask" cancelActivity="true">
      <timerEventDefinition>
        <timeDuration>PT72H</timeDuration>
      </timerEventDefinition>
    </boundaryEvent>
    <sequenceFlow id="flow30" sourceRef="boundarytimer3" targetRef="end1"></sequenceFlow>
    <boundaryEvent id="boundarytimer4" name=" " attachedToRef="zzgcstask" cancelActivity="true">
      <timerEventDefinition>
        <timeDuration>PT72H</timeDuration>
      </timerEventDefinition>
    </boundaryEvent>
    <boundaryEvent id="boundarytimer5" name=" " attachedToRef="zzjltask" cancelActivity="true">
      <timerEventDefinition>
        <timeDuration>PT72H</timeDuration>
      </timerEventDefinition>
    </boundaryEvent>
    <sequenceFlow id="flow32" sourceRef="boundarytimer5" targetRef="end1"></sequenceFlow>
    <boundaryEvent id="boundarytimer6" name=" " attachedToRef="yhzgtask" cancelActivity="true">
      <timerEventDefinition>
        <timeDuration>PT72H</timeDuration>
      </timerEventDefinition>
    </boundaryEvent>
    <sequenceFlow id="flow35" sourceRef="boundarytimer6" targetRef="end1"></sequenceFlow>
    <sequenceFlow id="flow36" name="不通过" sourceRef="yhzgtask" targetRef="end1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${condition == 0}]]></conditionExpression>
    </sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_reserveInvoice">
    <bpmndi:BPMNPlane bpmnElement="reserveInvoice" id="BPMNPlane_reserveInvoice">
      <bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
        <omgdc:Bounds height="35.0" width="35.0" x="520.0" y="41.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="yhzgtask" id="BPMNShape_yhzgtask">
        <omgdc:Bounds height="55.0" width="145.0" x="465.0" y="121.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="boundarytimer6" id="BPMNShape_boundarytimer6">
        <omgdc:Bounds height="30.0" width="30.0" x="450.0" y="160.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="zzzgtask" id="BPMNShape_zzzgtask">
        <omgdc:Bounds height="55.0" width="145.0" x="465.0" y="211.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="boundarytimer3" id="BPMNShape_boundarytimer3">
        <omgdc:Bounds height="30.0" width="30.0" x="450.0" y="250.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="zzgcstask" id="BPMNShape_zzgcstask">
        <omgdc:Bounds height="71.0" width="136.0" x="282.0" y="301.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="boundarytimer4" id="BPMNShape_boundarytimer4">
        <omgdc:Bounds height="30.0" width="30.0" x="320.0" y="290.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="zzjltask" id="BPMNShape_zzjltask">
        <omgdc:Bounds height="71.0" width="136.0" x="102.0" y="421.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="boundarytimer5" id="BPMNShape_boundarytimer5">
        <omgdc:Bounds height="30.0" width="30.0" x="180.0" y="410.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
        <omgdc:Bounds height="35.0" width="35.0" x="520.0" y="559.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="istoday" id="BPMNShape_istoday">
        <omgdc:Bounds height="40.0" width="40.0" x="517.0" y="316.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="isspecial" id="BPMNShape_isspecial">
        <omgdc:Bounds height="40.0" width="40.0" x="517.0" y="436.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="end1" id="BPMNShape_end1">
        <omgdc:Bounds height="35.0" width="35.0" x="153.0" y="221.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
        <omgdi:waypoint x="537.0" y="176.0"></omgdi:waypoint>
        <omgdi:waypoint x="537.0" y="211.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="48.0" width="24.0" x="537.0" y="176.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
        <omgdi:waypoint x="170.0" y="492.0"></omgdi:waypoint>
        <omgdi:waypoint x="169.0" y="576.0"></omgdi:waypoint>
        <omgdi:waypoint x="520.0" y="576.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="48.0" width="24.0" x="170.0" y="492.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
        <omgdi:waypoint x="537.0" y="76.0"></omgdi:waypoint>
        <omgdi:waypoint x="537.0" y="121.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow18" id="BPMNEdge_flow18">
        <omgdi:waypoint x="537.0" y="266.0"></omgdi:waypoint>
        <omgdi:waypoint x="537.0" y="316.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="48.0" width="24.0" x="537.0" y="266.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow19" id="BPMNEdge_flow19">
        <omgdi:waypoint x="517.0" y="336.0"></omgdi:waypoint>
        <omgdi:waypoint x="418.0" y="336.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="16.0" width="16.0" x="493.0" y="336.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow20" id="BPMNEdge_flow20">
        <omgdi:waypoint x="537.0" y="356.0"></omgdi:waypoint>
        <omgdi:waypoint x="537.0" y="436.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="16.0" width="16.0" x="537.0" y="356.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21">
        <omgdi:waypoint x="537.0" y="476.0"></omgdi:waypoint>
        <omgdi:waypoint x="537.0" y="559.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="16.0" width="16.0" x="537.0" y="476.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
        <omgdi:waypoint x="517.0" y="456.0"></omgdi:waypoint>
        <omgdi:waypoint x="238.0" y="456.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="16.0" width="16.0" x="493.0" y="459.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
        <omgdi:waypoint x="350.0" y="372.0"></omgdi:waypoint>
        <omgdi:waypoint x="349.0" y="456.0"></omgdi:waypoint>
        <omgdi:waypoint x="517.0" y="456.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="48.0" width="24.0" x="350.0" y="372.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
        <omgdi:waypoint x="465.0" y="238.0"></omgdi:waypoint>
        <omgdi:waypoint x="188.0" y="238.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="48.0" width="36.0" x="405.0" y="242.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
        <omgdi:waypoint x="350.0" y="301.0"></omgdi:waypoint>
        <omgdi:waypoint x="350.0" y="238.0"></omgdi:waypoint>
        <omgdi:waypoint x="188.0" y="238.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="16.0" width="100.0" x="221.0" y="250.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27">
        <omgdi:waypoint x="170.0" y="421.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="256.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="48.0" width="36.0" x="180.0" y="345.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow30" id="BPMNEdge_flow30">
        <omgdi:waypoint x="465.0" y="250.0"></omgdi:waypoint>
        <omgdi:waypoint x="445.0" y="238.0"></omgdi:waypoint>
        <omgdi:waypoint x="188.0" y="238.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow32" id="BPMNEdge_flow32">
        <omgdi:waypoint x="180.0" y="425.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="405.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="256.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow35" id="BPMNEdge_flow35">
        <omgdi:waypoint x="465.0" y="160.0"></omgdi:waypoint>
        <omgdi:waypoint x="439.0" y="149.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="149.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="221.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow36" id="BPMNEdge_flow36">
        <omgdi:waypoint x="465.0" y="148.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="148.0"></omgdi:waypoint>
        <omgdi:waypoint x="170.0" y="221.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="16.0" width="100.0" x="273.0" y="130.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>
