yangys
2025-07-04 d0e196b4c6f302b9d571d6220471d15e2b97c527
blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
@@ -3,15 +3,52 @@
  <process id="dispatch" name="任务派工" isExecutable="true">
    <startEvent id="start" name="开始"/>
    <sequenceFlow id="sid-c1619263-d1ff-4106-9315-f9ab9a3bee71" sourceRef="start" targetRef="teamLeaderTask"/>
    <userTask id="teamLeaderTask" name="专业组长" flowable:assignee="${teamLeader}"/>
    <userTask id="programmingTask" name="编制" flowable:assignee="${programmer}"/>
    <sequenceFlow id="sid-ac678e85-9f7b-4e8d-903f-2591ea7721ab" sourceRef="teamLeaderTask" targetRef="programmingTask"/>
    <userTask id="check" name="校对" flowable:assignee="${checker}"/>
    <sequenceFlow id="sid-6c33a84d-d03e-47f6-87c1-8e676b25e572" sourceRef="programmingTask" targetRef="check"/>
    <userTask id="approveTask" name="高师审批"/>
    <sequenceFlow id="sid-2e73fc3f-6802-4a94-984c-e1b9a50f8489" sourceRef="check" targetRef="approveTask"/>
    <endEvent id="approveEnd" name="审批完成"/>
    <sequenceFlow id="sid-1a414739-a80f-4436-8d7a-e7b65fae8233" sourceRef="approveTask" targetRef="approveEnd"/>
    <userTask id="teamLeaderTask" name="任务分派" flowable:assignee="${teamLeader}">
      <documentation>专业组长任务分派</documentation>
    </userTask>
    <userTask id="programmingTask" name="数控程序编写" flowable:assignee="${assignee}"/>
    <userTask id="check" name="数控程序校对" flowable:assignee="${assignee}"/>
    <userTask id="approveTask" name="数控程序审批" flowable:assignee="${assignee}">
      <documentation>高师数控程序审批</documentation>
    </userTask>
    <endEvent id="approveEnd" name="审批完成">
      <extensionElements>
        <flowable:executionListener expression="${dispatchFinishListener.handle(execution)}" event="end"/>
      </extensionElements>
    </endEvent>
    <sequenceFlow id="programingToCheck" sourceRef="programmingTask" targetRef="check" name="编制完成给校对">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="programingBackToLeader" sourceRef="programmingTask" targetRef="teamLeaderTask" name="编制驳回">
      <conditionExpression xsi:type="tFormalExpression">${approve=='N'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flowCheckToPrograming" sourceRef="check" targetRef="programmingTask" name="flow校对驳回到编制">
      <conditionExpression xsi:type="tFormalExpression">${approve=='N'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flowToSeriorTask" sourceRef="check" targetRef="approveTask" name="到高师审批">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-c0b195e7-17e5-44bf-8115-8b7126cb3ab3" sourceRef="approveTask" targetRef="approveEnd">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y'}</conditionExpression>
    </sequenceFlow>
    <serviceTask id="cureCheckServiceTask" flowable:exclusive="true" name="固化程序检查服务任务" flowable:expression="cureProgramCheckTask.execute(execution)"/>
    <userTask id="confirmIsUseableTask" name="检查程序是否可用" flowable:assignee="${assignee}"/>
    <sequenceFlow id="sid-46ccac64-2d48-4933-88a6-f2941ae131dd" sourceRef="teamLeaderTask" targetRef="programmingTask">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y' &amp;&amp; hasCuredProgram=='N'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-af92e6ab-bc80-43ed-8b09-1d3ec54cc9e7" sourceRef="teamLeaderTask" targetRef="cureCheckServiceTask">
      <conditionExpression xsi:type="tFormalExpression">${approve=='Y' &amp;&amp; hasCuredProgram=='Y'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="confirmIsUseableTask"/>
    <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="confirmIsUseableTask" targetRef="check" name="固化程序可用">
      <conditionExpression>${approve=='Y'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb" sourceRef="approveTask" targetRef="check">
      <conditionExpression>${approve=='N'}</conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="confirmIsUseableTask" targetRef="programmingTask">
      <conditionExpression>${approve=='N'}</conditionExpression>
    </sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_dispatch">
    <bpmndi:BPMNPlane bpmnElement="dispatch" id="BPMNPlane_dispatch">
@@ -20,38 +57,73 @@
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-5783eb04-78a8-4bde-b8bb-c12d28f07609" bpmnElement="sid-c1619263-d1ff-4106-9315-f9ab9a3bee71">
        <omgdi:waypoint x="-290.0" y="-92.5"/>
        <omgdi:waypoint x="-185.0" y="-75.0"/>
        <omgdi:waypoint x="-262.5" y="-92.50001"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-720b1ec1-043e-4a8a-bc4d-c50cf01678d7" bpmnElement="teamLeaderTask">
        <omgdc:Bounds x="-185.0" y="-115.0" width="100.0" height="80.0"/>
        <omgdc:Bounds x="-262.5" y="-125.00001" width="70.0" height="65.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-b1baea86-1882-4c5c-886f-44e3d9be3746" bpmnElement="programmingTask">
        <omgdc:Bounds x="-20.0" y="-115.0" width="100.0" height="80.0"/>
        <omgdc:Bounds x="-72.5" y="-137.5" width="85.0" height="60.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-0079d499-1c0d-4745-9886-40df39794833" bpmnElement="sid-ac678e85-9f7b-4e8d-903f-2591ea7721ab">
        <omgdi:waypoint x="-85.0" y="-75.0"/>
        <omgdi:waypoint x="-20.0" y="-75.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-9237838e-5de2-4db7-8d46-3f4a69de7e6e" bpmnElement="check">
        <omgdc:Bounds x="105.0" y="-115.0" width="100.0" height="80.0"/>
        <omgdc:Bounds x="130.0" y="-135.0" width="60.0" height="55.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-72007fd8-6ed8-402f-8bbc-81bd6c856fa7" bpmnElement="sid-6c33a84d-d03e-47f6-87c1-8e676b25e572">
        <omgdi:waypoint x="80.0" y="-55.0"/>
        <omgdi:waypoint x="105.0" y="-95.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-a42e90ff-9c82-4d5b-8f5b-0804754e89a6" bpmnElement="approveTask">
        <omgdc:Bounds x="15.0" y="16.0" width="100.0" height="80.0"/>
        <omgdc:Bounds x="130.0" y="-4.0" width="50.0" height="45.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-7fe1281a-3bbf-4308-90a5-cbf70aa019dd" bpmnElement="sid-2e73fc3f-6802-4a94-984c-e1b9a50f8489">
        <omgdi:waypoint x="130.0" y="-35.0"/>
        <omgdi:waypoint x="90.0" y="16.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-f14acaf6-9747-4d52-87a1-d4c5b8f3d166" bpmnElement="approveEnd">
        <omgdc:Bounds x="205.0" y="41.0" width="30.0" height="30.0"/>
        <omgdc:Bounds x="295.0" y="-6.5" width="30.0" height="30.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-9cb8c108-2b94-4e39-b7ed-93ff0d86fe73" bpmnElement="sid-1a414739-a80f-4436-8d7a-e7b65fae8233">
        <omgdi:waypoint x="115.0" y="56.0"/>
        <omgdi:waypoint x="205.0" y="56.0"/>
      <bpmndi:BPMNEdge id="edge-6f05f47f-7804-4dd0-b6d2-e435b9efaa3c" bpmnElement="programingToCheck">
        <omgdi:waypoint x="12.5" y="-92.5"/>
        <omgdi:waypoint x="130.00002" y="-107.49999"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-b38a8021-a54d-4671-aaf2-408bdbbbd374" bpmnElement="programingBackToLeader">
        <omgdi:waypoint x="-72.5" y="-92.5"/>
        <omgdi:waypoint x="-192.5" y="-76.25001"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-c2232174-4a73-4c39-ac85-fc3854f0f18c" bpmnElement="flowCheckToPrograming">
        <omgdi:waypoint x="130.0" y="-121.25"/>
        <omgdi:waypoint x="12.5" y="-107.5"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-d05b5f9f-9108-4a41-9e48-4db1e1b1e325" bpmnElement="flowToSeriorTask">
        <omgdi:waypoint x="190.0" y="-93.75"/>
        <omgdi:waypoint x="180.0" y="7.25"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-715efa53-6c03-407b-87ec-640f99c481a0" bpmnElement="sid-c0b195e7-17e5-44bf-8115-8b7126cb3ab3">
        <omgdi:waypoint x="180.0" y="29.749996"/>
        <omgdi:waypoint x="295.0" y="1.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="shape-8455618d-c1b9-4e6a-bca4-de965cc81633" bpmnElement="cureCheckServiceTask">
        <omgdc:Bounds x="-275.0" y="37.500004" width="65.0" height="39.999996"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="shape-8f7064fc-4838-44cc-bf6d-ca15932a1e2e" bpmnElement="confirmIsUseableTask">
        <omgdc:Bounds x="-135.0" y="37.5" width="55.0" height="40.0"/>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="edge-0408fc3c-c133-40e3-9006-c315b12e9790" bpmnElement="sid-46ccac64-2d48-4933-88a6-f2941ae131dd">
        <omgdi:waypoint x="-192.5" y="-92.500015"/>
        <omgdi:waypoint x="-132.5" y="-100.0"/>
        <omgdi:waypoint x="-72.49999" y="-107.50001"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-d8883eca-269a-42cd-b2d4-134da6596afb" bpmnElement="sid-af92e6ab-bc80-43ed-8b09-1d3ec54cc9e7">
        <omgdi:waypoint x="-227.5" y="-60.000008"/>
        <omgdi:waypoint x="-242.5" y="37.500008"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-44016aa6-bf48-4c73-8aaa-4cedf795d68b" bpmnElement="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e">
        <omgdi:waypoint x="-210.0" y="57.5"/>
        <omgdi:waypoint x="-135.0" y="57.5"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-64e64024-1ffd-4cdf-be8f-4c5e4911a5bb" bpmnElement="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1">
        <omgdi:waypoint x="-80.0" y="47.5"/>
        <omgdi:waypoint x="145.0" y="-80.00001"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-7a5135fe-5eb1-425c-b920-3e2b5bf18454" bpmnElement="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb">
        <omgdi:waypoint x="167.5" y="-4.0"/>
        <omgdi:waypoint x="175.0" y="-80.0"/>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="edge-223da197-47f2-44ef-847e-40d1fae1009b" bpmnElement="sid-80b50f96-7601-4ba2-8c32-968923170d25">
        <omgdi:waypoint x="-93.75" y="37.5"/>
        <omgdi:waypoint x="-51.25" y="-77.5"/>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>