国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【業(yè)務(wù)功能篇38】上篇:Springboot+activiti7 工作流引擎 增加網(wǎng)關(guān)組件、Assignment分配權(quán)限

這篇具有很好參考價(jià)值的文章主要介紹了【業(yè)務(wù)功能篇38】上篇:Springboot+activiti7 工作流引擎 增加網(wǎng)關(guān)組件、Assignment分配權(quán)限。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在前面的一篇文章中,簡(jiǎn)單舉例了一個(gè) 工單電子流,【業(yè)務(wù)功能篇36】Springboot+activiti7 工作流引擎_studyday1的博客-CSDN博客僅有一個(gè)子任務(wù),這種一般是針對(duì)比較簡(jiǎn)單的一個(gè)遺留問(wèn)題記錄場(chǎng)景,今天再介紹一個(gè),相對(duì)比較復(fù)雜的流程,多個(gè)處理,審批節(jié)點(diǎn)任務(wù),通過(guò)排他網(wǎng)關(guān)組件來(lái)進(jìn)行流程走向,也通過(guò)設(shè)置Assignment指定任務(wù)節(jié)點(diǎn)的分配人員

BPMN2.0流程圖

1.? XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmn2="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">
  <bpmn2:process id="COMP_FAIL_PROCESS_DEF_KEY" isExecutable="true">
    <bpmn2:startEvent id="start"></bpmn2:startEvent>
    <bpmn2:sequenceFlow id="sequenceFlow-cc8e14fa-bc92-48fb-aab1-ec4263dfe04a" sourceRef="start" targetRef="COMP_FAIL_TASK_APPLICATION"></bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_APPLICATION" name="委托人填寫(xiě)委托分析申請(qǐng)" activiti:assignee="${COMP_FAIL_TASK_APPLICATION_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-687cdeb3-5dd1-449b-be05-1002a23289b3" sourceRef="COMP_FAIL_TASK_APPLICATION" targetRef="COMP_FAIL_EXCL_GATEWAY_APPLICATION_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_APPLICATION_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-5f567ea0-02ce-4e8d-b08d-f884388a88be" sourceRef="COMP_FAIL_EXCL_GATEWAY_APPLICATION_DEF_KEY" targetRef="end">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_CONDITION_APPLICATION == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-1cec0e0f-7c6b-4b3d-8937-917481f82759" sourceRef="COMP_FAIL_EXCL_GATEWAY_APPLICATION_DEF_KEY" targetRef="COMP_FAIL_TASK_CONTACT_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_CONDITION_APPLICATION == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_CONTACT_REVIEW" name="接口人審核" activiti:assignee="${COMP_FAIL_TASK_CONTACT_REVIEW_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-4765a5bb-3156-41a5-8285-e409601f13ae" sourceRef="COMP_FAIL_TASK_CONTACT_REVIEW" targetRef="COMP_FAIL_EXCL_GATEWAY_CONTACT_REVIEW_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_CONTACT_REVIEW_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-f4dca2a6-3d2e-463f-9c31-22d74572e970" sourceRef="COMP_FAIL_EXCL_GATEWAY_CONTACT_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_APPLICATION">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_CONTACT_REVIEW_NORMAL_ADVANCE == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-fd7f68c7-000f-4c55-a645-aef8d8556cc4" sourceRef="COMP_FAIL_EXCL_GATEWAY_CONTACT_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_ANALYSIS">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_CONTACT_REVIEW_NORMAL_ADVANCE == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_ANALYSIS" name="分析人分析" activiti:assignee="${COMP_FAIL_TASK_ANALYSIS_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-76fbde23-c91c-4911-b3ee-a0eea4643371" sourceRef="COMP_FAIL_TASK_ANALYSIS" targetRef="COMP_FAIL_EXCL_GATEWAY_ANALYSIS_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_ANALYSIS_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-a4c486eb-003f-448c-bcea-a9d52c885dd4" sourceRef="COMP_FAIL_EXCL_GATEWAY_ANALYSIS_DEF_KEY" targetRef="COMP_FAIL_TASK_CONTACT_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_ANALYSIS_NORMAL_ADVANCE == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-97acf8b0-d186-4c28-9355-323b728ae768" sourceRef="COMP_FAIL_EXCL_GATEWAY_ANALYSIS_DEF_KEY" targetRef="COMP_FAIL_TASK_RISK">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_ANALYSIS_NORMAL_ADVANCE == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_RISK" name="風(fēng)險(xiǎn)評(píng)估及改進(jìn)" activiti:assignee="${COMP_FAIL_TASK_RISK_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-cc7c2ba4-68ea-4481-82d7-51d7ead0ca65" sourceRef="COMP_FAIL_TASK_RISK" targetRef="COMP_FAIL_EXCL_GATEWAY_RISK_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_RISK_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-cb4c7a54-524c-4587-bc72-6bc375ed0954" sourceRef="COMP_FAIL_EXCL_GATEWAY_RISK_DEF_KEY" targetRef="COMP_FAIL_TASK_ANALYSIS">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_RISK_NORMAL_ADVANCE == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-3cce8ca5-5a47-4733-87ae-3ab6718c0a3a" sourceRef="COMP_FAIL_EXCL_GATEWAY_RISK_DEF_KEY" targetRef="COMP_FAIL_TASK_PM_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_RISK_NORMAL_ADVANCE == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_PM_REVIEW" name="項(xiàng)目經(jīng)理審核" activiti:assignee="${COMP_FAIL_TASK_PM_REVIEW_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-ea95d696-e932-4528-8f0c-131f46ccbab9" sourceRef="COMP_FAIL_TASK_PM_REVIEW" targetRef="COMP_FAIL_EXCL_GATEWAY_PM_REVIEW_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_PM_REVIEW_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-ffcbf3ae-08f3-469a-8d61-263b2ed4c060" sourceRef="COMP_FAIL_EXCL_GATEWAY_PM_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_RISK">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_PM_REVIEW_NORMAL_ADVANCE == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-7dc193e2-ff59-4cde-836a-9be05f8c51de" sourceRef="COMP_FAIL_EXCL_GATEWAY_PM_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_ML_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_PM_REVIEW_NORMAL_ADVANCE == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_ML_REVIEW" name="專(zhuān)家組長(zhǎng)審核" activiti:assignee="${COMP_FAIL_TASK_ML_REVIEW_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-627920df-9548-4c0e-8885-24de425aabb5" sourceRef="COMP_FAIL_TASK_ML_REVIEW" targetRef="COMP_FAIL_EXCL_GATEWAY_ML_REVIEW_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_ML_REVIEW_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-a14fbb1c-8087-483f-82e6-ccb0a0f53102" sourceRef="COMP_FAIL_EXCL_GATEWAY_ML_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_PM_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_ML_REVIEW_NORMAL_ADVANCE == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-2dd3ceb3-dd78-46a1-9071-f3b0afc57687" sourceRef="COMP_FAIL_EXCL_GATEWAY_ML_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_CLOSE_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_ML_REVIEW_NORMAL_ADVANCE == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_CLOSE_REVIEW" name="問(wèn)題關(guān)閉審核" activiti:assignee="${COMP_FAIL_TASK_CLOSE_REVIEW_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-ffb442cc-605a-418e-b5c7-5f2d0a0d7c01" sourceRef="COMP_FAIL_TASK_CLOSE_REVIEW" targetRef="COMP_FAIL_EXCL_GATEWAY_CLOSE_REVIEW_DEF_KEY"></bpmn2:sequenceFlow>
    <bpmn2:exclusiveGateway id="COMP_FAIL_EXCL_GATEWAY_CLOSE_REVIEW_DEF_KEY"></bpmn2:exclusiveGateway>
    <bpmn2:sequenceFlow id="sequenceFlow-81734467-b00d-4f0b-b7a2-7d3caabc56ee" sourceRef="COMP_FAIL_EXCL_GATEWAY_CLOSE_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_ML_REVIEW">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_CLOSE_REVIEW_NORMAL_ADVANCE == false}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:sequenceFlow id="sequenceFlow-555ca10e-8b0a-45a9-b912-7a2aed7fde59" sourceRef="COMP_FAIL_EXCL_GATEWAY_CLOSE_REVIEW_DEF_KEY" targetRef="COMP_FAIL_TASK_FEEDBACK">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${COMP_FAIL_GATEWAY_CLOSE_REVIEW_NORMAL_ADVANCE == true}]]></conditionExpression>
    </bpmn2:sequenceFlow>
    <bpmn2:userTask id="COMP_FAIL_TASK_FEEDBACK" name="委托人反饋意見(jiàn)" activiti:assignee="${COMP_FAIL_TASK_FEEDBACK_ASSIGNEE}"></bpmn2:userTask>
    <bpmn2:sequenceFlow id="sequenceFlow-4e4edef1-d382-4ad8-ad65-3e1fb13b7d65" sourceRef="COMP_FAIL_TASK_FEEDBACK" targetRef="end"></bpmn2:sequenceFlow>
    <bpmn2:endEvent id="end"></bpmn2:endEvent>
  </bpmn2:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_COMP_FAIL_PROCESS_DEF_KEY">
    <bpmndi:BPMNPlane bpmnElement="COMP_FAIL_PROCESS_DEF_KEY" id="BPMNPlane_COMP_FAIL_PROCESS_DEF_KEY">
      <bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
        <omgdc:Bounds height="30.0" width="30.0" x="0.0" y="123.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_RISK" id="BPMNShape_COMP_FAIL_TASK_RISK">
        <omgdc:Bounds height="60.0" width="100.0" x="800.0" y="100.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_PM_REVIEW_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_PM_REVIEW_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="1190.0" y="110.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_ANALYSIS_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_ANALYSIS_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="710.0" y="110.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_CLOSE_REVIEW_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_CLOSE_REVIEW_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="1670.0" y="150.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_FEEDBACK" id="BPMNShape_COMP_FAIL_TASK_FEEDBACK">
        <omgdc:Bounds height="60.0" width="100.0" x="1760.0" y="150.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_CONTACT_REVIEW_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_CONTACT_REVIEW_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="470.0" y="210.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_APPLICATION_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_APPLICATION_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="230.0" y="60.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_ML_REVIEW" id="BPMNShape_COMP_FAIL_TASK_ML_REVIEW">
        <omgdc:Bounds height="60.0" width="100.0" x="1280.0" y="100.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_CLOSE_REVIEW" id="BPMNShape_COMP_FAIL_TASK_CLOSE_REVIEW">
        <omgdc:Bounds height="60.0" width="100.0" x="1520.0" y="200.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_CONTACT_REVIEW" id="BPMNShape_COMP_FAIL_TASK_CONTACT_REVIEW">
        <omgdc:Bounds height="60.0" width="100.0" x="320.0" y="100.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_ANALYSIS" id="BPMNShape_COMP_FAIL_TASK_ANALYSIS">
        <omgdc:Bounds height="60.0" width="100.0" x="560.0" y="200.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_ML_REVIEW_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_ML_REVIEW_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="1430.0" y="210.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_EXCL_GATEWAY_RISK_DEF_KEY" id="BPMNShape_COMP_FAIL_EXCL_GATEWAY_RISK_DEF_KEY">
        <omgdc:Bounds height="40.0" width="40.0" x="950.0" y="210.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
        <omgdc:Bounds height="30.0" width="30.0" x="1910.0" y="100.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_PM_REVIEW" id="BPMNShape_COMP_FAIL_TASK_PM_REVIEW">
        <omgdc:Bounds height="60.0" width="100.0" x="1040.0" y="200.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="COMP_FAIL_TASK_APPLICATION" id="BPMNShape_COMP_FAIL_TASK_APPLICATION">
        <omgdc:Bounds height="60.0" width="100.0" x="80.0" y="108.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-cc7c2ba4-68ea-4481-82d7-51d7ead0ca65" id="BPMNEdge_sequenceFlow-cc7c2ba4-68ea-4481-82d7-51d7ead0ca65">
        <omgdi:waypoint x="900.0" y="142.5"></omgdi:waypoint>
        <omgdi:waypoint x="912.0" y="142.5"></omgdi:waypoint>
        <omgdi:waypoint x="912.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="950.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-ffcbf3ae-08f3-469a-8d61-263b2ed4c060" id="BPMNEdge_sequenceFlow-ffcbf3ae-08f3-469a-8d61-263b2ed4c060">
        <omgdi:waypoint x="1190.0" y="122.5"></omgdi:waypoint>
        <omgdi:waypoint x="1178.0" y="122.5"></omgdi:waypoint>
        <omgdi:waypoint x="1178.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="800.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-627920df-9548-4c0e-8885-24de425aabb5" id="BPMNEdge_sequenceFlow-627920df-9548-4c0e-8885-24de425aabb5">
        <omgdi:waypoint x="1380.0" y="142.5"></omgdi:waypoint>
        <omgdi:waypoint x="1392.0" y="142.5"></omgdi:waypoint>
        <omgdi:waypoint x="1392.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="1430.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-555ca10e-8b0a-45a9-b912-7a2aed7fde59" id="BPMNEdge_sequenceFlow-555ca10e-8b0a-45a9-b912-7a2aed7fde59">
        <omgdi:waypoint x="1710.0" y="170.0"></omgdi:waypoint>
        <omgdi:waypoint x="1722.0" y="170.0"></omgdi:waypoint>
        <omgdi:waypoint x="1722.0" y="180.0"></omgdi:waypoint>
        <omgdi:waypoint x="1760.0" y="180.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-687cdeb3-5dd1-449b-be05-1002a23289b3" id="BPMNEdge_sequenceFlow-687cdeb3-5dd1-449b-be05-1002a23289b3">
        <omgdi:waypoint x="180.0" y="125.5"></omgdi:waypoint>
        <omgdi:waypoint x="192.0" y="125.5"></omgdi:waypoint>
        <omgdi:waypoint x="192.0" y="80.0"></omgdi:waypoint>
        <omgdi:waypoint x="230.0" y="80.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-4765a5bb-3156-41a5-8285-e409601f13ae" id="BPMNEdge_sequenceFlow-4765a5bb-3156-41a5-8285-e409601f13ae">
        <omgdi:waypoint x="420.0" y="142.5"></omgdi:waypoint>
        <omgdi:waypoint x="432.0" y="142.5"></omgdi:waypoint>
        <omgdi:waypoint x="432.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="470.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-3cce8ca5-5a47-4733-87ae-3ab6718c0a3a" id="BPMNEdge_sequenceFlow-3cce8ca5-5a47-4733-87ae-3ab6718c0a3a">
        <omgdi:waypoint x="990.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="1040.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-5f567ea0-02ce-4e8d-b08d-f884388a88be" id="BPMNEdge_sequenceFlow-5f567ea0-02ce-4e8d-b08d-f884388a88be">
        <omgdi:waypoint x="270.0" y="72.5"></omgdi:waypoint>
        <omgdi:waypoint x="282.0" y="72.5"></omgdi:waypoint>
        <omgdi:waypoint x="282.0" y="115.0"></omgdi:waypoint>
        <omgdi:waypoint x="1910.0" y="115.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-a14fbb1c-8087-483f-82e6-ccb0a0f53102" id="BPMNEdge_sequenceFlow-a14fbb1c-8087-483f-82e6-ccb0a0f53102">
        <omgdi:waypoint x="1430.0" y="237.5"></omgdi:waypoint>
        <omgdi:waypoint x="1418.0" y="237.5"></omgdi:waypoint>
        <omgdi:waypoint x="1418.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="1040.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-2dd3ceb3-dd78-46a1-9071-f3b0afc57687" id="BPMNEdge_sequenceFlow-2dd3ceb3-dd78-46a1-9071-f3b0afc57687">
        <omgdi:waypoint x="1470.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="1520.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-fd7f68c7-000f-4c55-a645-aef8d8556cc4" id="BPMNEdge_sequenceFlow-fd7f68c7-000f-4c55-a645-aef8d8556cc4">
        <omgdi:waypoint x="510.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="560.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-a4c486eb-003f-448c-bcea-a9d52c885dd4" id="BPMNEdge_sequenceFlow-a4c486eb-003f-448c-bcea-a9d52c885dd4">
        <omgdi:waypoint x="710.0" y="122.5"></omgdi:waypoint>
        <omgdi:waypoint x="698.0" y="122.5"></omgdi:waypoint>
        <omgdi:waypoint x="698.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="320.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-4e4edef1-d382-4ad8-ad65-3e1fb13b7d65" id="BPMNEdge_sequenceFlow-4e4edef1-d382-4ad8-ad65-3e1fb13b7d65">
        <omgdi:waypoint x="1860.0" y="180.0"></omgdi:waypoint>
        <omgdi:waypoint x="1872.0" y="180.0"></omgdi:waypoint>
        <omgdi:waypoint x="1872.0" y="115.0"></omgdi:waypoint>
        <omgdi:waypoint x="1910.0" y="115.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-7dc193e2-ff59-4cde-836a-9be05f8c51de" id="BPMNEdge_sequenceFlow-7dc193e2-ff59-4cde-836a-9be05f8c51de">
        <omgdi:waypoint x="1230.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="1280.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-f4dca2a6-3d2e-463f-9c31-22d74572e970" id="BPMNEdge_sequenceFlow-f4dca2a6-3d2e-463f-9c31-22d74572e970">
        <omgdi:waypoint x="470.0" y="237.5"></omgdi:waypoint>
        <omgdi:waypoint x="458.0" y="237.5"></omgdi:waypoint>
        <omgdi:waypoint x="458.0" y="138.0"></omgdi:waypoint>
        <omgdi:waypoint x="80.0" y="138.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-ea95d696-e932-4528-8f0c-131f46ccbab9" id="BPMNEdge_sequenceFlow-ea95d696-e932-4528-8f0c-131f46ccbab9">
        <omgdi:waypoint x="1140.0" y="217.5"></omgdi:waypoint>
        <omgdi:waypoint x="1152.0" y="217.5"></omgdi:waypoint>
        <omgdi:waypoint x="1152.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="1190.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-81734467-b00d-4f0b-b7a2-7d3caabc56ee" id="BPMNEdge_sequenceFlow-81734467-b00d-4f0b-b7a2-7d3caabc56ee">
        <omgdi:waypoint x="1670.0" y="162.5"></omgdi:waypoint>
        <omgdi:waypoint x="1658.0" y="162.5"></omgdi:waypoint>
        <omgdi:waypoint x="1658.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="1280.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-cc8e14fa-bc92-48fb-aab1-ec4263dfe04a" id="BPMNEdge_sequenceFlow-cc8e14fa-bc92-48fb-aab1-ec4263dfe04a">
        <omgdi:waypoint x="30.0" y="138.0"></omgdi:waypoint>
        <omgdi:waypoint x="80.0" y="138.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-ffb442cc-605a-418e-b5c7-5f2d0a0d7c01" id="BPMNEdge_sequenceFlow-ffb442cc-605a-418e-b5c7-5f2d0a0d7c01">
        <omgdi:waypoint x="1620.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="1632.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="1632.0" y="170.0"></omgdi:waypoint>
        <omgdi:waypoint x="1670.0" y="170.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-1cec0e0f-7c6b-4b3d-8937-917481f82759" id="BPMNEdge_sequenceFlow-1cec0e0f-7c6b-4b3d-8937-917481f82759">
        <omgdi:waypoint x="270.0" y="87.5"></omgdi:waypoint>
        <omgdi:waypoint x="282.0" y="87.5"></omgdi:waypoint>
        <omgdi:waypoint x="282.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="320.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-76fbde23-c91c-4911-b3ee-a0eea4643371" id="BPMNEdge_sequenceFlow-76fbde23-c91c-4911-b3ee-a0eea4643371">
        <omgdi:waypoint x="660.0" y="217.5"></omgdi:waypoint>
        <omgdi:waypoint x="672.0" y="217.5"></omgdi:waypoint>
        <omgdi:waypoint x="672.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="710.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-cb4c7a54-524c-4587-bc72-6bc375ed0954" id="BPMNEdge_sequenceFlow-cb4c7a54-524c-4587-bc72-6bc375ed0954">
        <omgdi:waypoint x="950.0" y="237.5"></omgdi:waypoint>
        <omgdi:waypoint x="938.0" y="237.5"></omgdi:waypoint>
        <omgdi:waypoint x="938.0" y="230.0"></omgdi:waypoint>
        <omgdi:waypoint x="560.0" y="230.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sequenceFlow-97acf8b0-d186-4c28-9355-323b728ae768" id="BPMNEdge_sequenceFlow-97acf8b0-d186-4c28-9355-323b728ae768">
        <omgdi:waypoint x="750.0" y="130.0"></omgdi:waypoint>
        <omgdi:waypoint x="800.0" y="130.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn2:definitions>

?2. 流程圖

activiti工作流權(quán)限,業(yè)務(wù)場(chǎng)景實(shí)例問(wèn)題,Spring boot,Java,spring boot,后端,java,activiti7

網(wǎng)關(guān)

  • 從流程圖中可以看出,我們每個(gè)節(jié)點(diǎn)流向都會(huì)先設(shè)定一個(gè)網(wǎng)關(guān),用來(lái)判斷流程走向,是成功,接著往下個(gè)任務(wù)走,還是失敗,倒回某個(gè)節(jié)點(diǎn),或者直接就到結(jié)束事件

?這里我們針對(duì)該流程進(jìn)行舉例:

  • 第一個(gè)子任務(wù)結(jié)束后,flow流就指向 排他網(wǎng)關(guān), 那么在該子任務(wù)完成時(shí),我們?cè)诔绦虼a中就可以設(shè)置對(duì)應(yīng)的一個(gè)變量值,通過(guò)排他網(wǎng)關(guān)的下個(gè)流flow, 在 flow condition參數(shù)設(shè)置條件,動(dòng)態(tài)表達(dá)式,比較靈活 : ${COMP_FAIL_GATEWAY_CONDITION_APPLICATION == true} 那么我們就可以設(shè)置變量的值為true 或者 false,? 前者,變成子任務(wù)完成,正常流向下個(gè)子任務(wù),后者則是直接指向 結(jié)束事件
  • 具體的 flow condition 設(shè)置情況,根據(jù)業(yè)務(wù)流程來(lái)調(diào)整,該流程的多個(gè)排他網(wǎng)關(guān),用法都一致,都是通過(guò)布爾值判斷流程走向哪個(gè)子任務(wù)節(jié)點(diǎn)
  • 注意:設(shè)置條件,是在flow流箭頭組件設(shè)置的

activiti工作流權(quán)限,業(yè)務(wù)場(chǎng)景實(shí)例問(wèn)題,Spring boot,Java,spring boot,后端,java,activiti7

activiti工作流權(quán)限,業(yè)務(wù)場(chǎng)景實(shí)例問(wèn)題,Spring boot,Java,spring boot,后端,java,activiti7

Assignment 分配人

  • ${COMP_FAIL_TASK_APPLICATION_ASSIGNEE}? 這里設(shè)置的是子任務(wù)對(duì)應(yīng)的分配責(zé)任人,也就是對(duì)應(yīng)的委托人??
  • 這里按照當(dāng)前的經(jīng)驗(yàn),我們一般都是在前一個(gè)任務(wù)在提交完成的時(shí)候,設(shè)置一個(gè)全局變量,這里全局主要是整個(gè)流程都可能會(huì)共用到變量,所以用全局變量, 設(shè)置的變量,會(huì)包含我們下個(gè)任務(wù)的 分配人對(duì)應(yīng)的員工信息, 以及排他網(wǎng)關(guān)的條件變量值
  • 創(chuàng)建實(shí)例時(shí) 同步變量設(shè)置:var是一個(gè)map集合,具體可以看下面實(shí)現(xiàn)類(lèi)代碼
    Map<String, Object> var
    runtimeService.startProcessInstanceByKey(COMP_FAIL_PROCESS_DEF_KEY, var)
  • 比如 我們這個(gè)流程,第一步先把流程定義對(duì)象創(chuàng)建實(shí)例,這里創(chuàng)建的時(shí)候,就可以把這里第一個(gè)子任務(wù) 分析申請(qǐng) 的 assignment變量進(jìn)行賦值? ? ?
  • 流程創(chuàng)建實(shí)例后,流程會(huì)直接先來(lái)到第一個(gè)任務(wù)節(jié)點(diǎn),而不是在開(kāi)始事件上。

activiti工作流權(quán)限,業(yè)務(wù)場(chǎng)景實(shí)例問(wèn)題,Spring boot,Java,spring boot,后端,java,activiti7activiti工作流權(quán)限,業(yè)務(wù)場(chǎng)景實(shí)例問(wèn)題,Spring boot,Java,spring boot,后端,java,activiti7

?controller層

package com.service;

import com.model.CompFailAnalysisParam;
import org.springframework.web.bind.annotation.*;
import com.model.CompFailContactReviewParam;
import com.model.CompFailMlReviewParam;
import com.model.CompFailCreateParam;
import com.model.CompFailRiskParam;
import org.springframework.validation.annotation.Validated;
import com.model.CompFailCloseReviewParam;
import com.model.CompFailPmReviewParam;
import com..tools.commonlib.exception.ServiceException;
import com.model.CompFailApplicationParam;
import org.springframework.beans.factory.annotation.Autowired;
import com.model.CompFailFeedbackParam;
import com.delegate.ProcessCompFailAnalysisDelegate;
import com.model.OneFaIdParam;
import com.model.ResponseVo;



@RestController
@RequestMapping(value = "/process/compFailAnalysis", produces = {"application/json;charset=UTF-8"})
@Validated
public class ProcessCompFailAnalysisController {

    @Autowired(required=false) 
    private ProcessCompFailAnalysisDelegate delegate;  
	
    @RequestMapping(
    		value = "/cancelProcess", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo cancelProcess(@RequestBody OneFaIdParam oneRcIdParam) 
            throws ServiceException {
    	    
		return delegate.cancelProcess(oneRcIdParam);
    }

	
    @RequestMapping(
    		value = "/createCompAnalysisProcess", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo createCompAnalysisProcess(@RequestBody CompFailCreateParam compFailCreateParam) 
            throws ServiceException {
    	    
		return delegate.createCompAnalysisProcess(compFailCreateParam);
    }

	
    @RequestMapping(
    		value = "/draftItemAnalysis", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo draftItemAnalysis(@RequestBody CompFailAnalysisParam compFailAnalysisParam) 
            throws ServiceException {
    	    
		return delegate.draftItemAnalysis(compFailAnalysisParam);
    }

	
    @RequestMapping(
    		value = "/draftItemApplication", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo draftItemApplication(@RequestBody CompFailApplicationParam compFailApplicationParam) 
            throws ServiceException {
    	    
		return delegate.draftItemApplication(compFailApplicationParam);
    }

	
    @RequestMapping(
    		value = "/draftRiskProve", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo draftRiskProve(@RequestBody CompFailRiskParam riskParam) 
            throws ServiceException {
    	    
		return delegate.draftRiskProve(riskParam);
    }

	
    @RequestMapping(
    		value = "/getCheckHistoryProcessList", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getCheckHistoryProcessList( @RequestParam(value = "pageNo", required = true) Integer pageNo,
    		 @RequestParam(value = "pageSize", required = true) Integer pageSize,
    		 @RequestParam(value = "componentCode", required = false) String componentCode) 
            throws ServiceException {
    	    
		return delegate.getCheckHistoryProcessList(pageNo
			, pageSize
			, componentCode);
    }

	
    @RequestMapping(
    		value = "/getCloseCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getCloseCheck( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getCloseCheck(faId);
    }

	
    @RequestMapping(
    		value = "/getComponentCode", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getComponentCode( @RequestParam(value = "keyword", required = false) String keyword,
    		 @RequestParam(value = "processType", required = true) String processType) 
            throws ServiceException {
    	    
		return delegate.getComponentCode(keyword
			, processType);
    }

	
    @RequestMapping(
    		value = "/getContactCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getContactCheck( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getContactCheck(faId);
    }

	
    @RequestMapping(
    		value = "/getDoingProcessList", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getDoingProcessList( @RequestParam(value = "pageNo", required = true) Integer pageNo,
    		 @RequestParam(value = "pageSize", required = true) Integer pageSize,
    		 @RequestParam(value = "componentCode", required = false) String componentCode) 
            throws ServiceException {
    	    
		return delegate.getDoingProcessList(pageNo
			, pageSize
			, componentCode);
    }

	
    @RequestMapping(
    		value = "/getFeedback", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getFeedback( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getFeedback(faId);
    }

	
    @RequestMapping(
    		value = "/getHistoryProcessList", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getHistoryProcessList( @RequestParam(value = "pageNo", required = true) Integer pageNo,
    		 @RequestParam(value = "pageSize", required = true) Integer pageSize,
    		 @RequestParam(value = "componentCode", required = false) String componentCode) 
            throws ServiceException {
    	    
		return delegate.getHistoryProcessList(pageNo
			, pageSize
			, componentCode);
    }

	
    @RequestMapping(
    		value = "/getItemAnalysis", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getItemAnalysis( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getItemAnalysis(faId);
    }

	
    @RequestMapping(
    		value = "/getItemApplication", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getItemApplication( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getItemApplication(faId);
    }

	
    @RequestMapping(
    		value = "/getMlCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getMlCheck( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getMlCheck(faId);
    }

	
    @RequestMapping(
    		value = "/getPmCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getPmCheck( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getPmCheck(faId);
    }

	
    @RequestMapping(
    		value = "/getProcessTitle", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getProcessTitle( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getProcessTitle(faId);
    }

	
    @RequestMapping(
    		value = "/getRiskProve", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getRiskProve( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.getRiskProve(faId);
    }

	
    @RequestMapping(
    		value = "/getShareProcessList", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getShareProcessList( @RequestParam(value = "pageNo", required = true) Integer pageNo,
    		 @RequestParam(value = "pageSize", required = true) Integer pageSize,
    		 @RequestParam(value = "componentCode", required = false) String componentCode) 
            throws ServiceException {
    	    
		return delegate.getShareProcessList(pageNo
			, pageSize
			, componentCode);
    }

	
    @RequestMapping(
    		value = "/getWaitingProcessList", 
    		produces = { "application/json" }, 
    		method = RequestMethod.GET)
    public ResponseVo getWaitingProcessList( @RequestParam(value = "pageNo", required = true) Integer pageNo,
    		 @RequestParam(value = "pageSize", required = true) Integer pageSize,
    		 @RequestParam(value = "componentCode", required = false) String componentCode) 
            throws ServiceException {
    	    
		return delegate.getWaitingProcessList(pageNo
			, pageSize
			, componentCode);
    }

	
    @RequestMapping(
    		value = "/submitCloseCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitCloseCheck(@RequestBody CompFailCloseReviewParam riskParam) 
            throws ServiceException {
    	    
		return delegate.submitCloseCheck(riskParam);
    }

	
    @RequestMapping(
    		value = "/submitContactCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitContactCheck(@RequestBody CompFailContactReviewParam compFailApplicationParam) 
            throws ServiceException {
    	    
		return delegate.submitContactCheck(compFailApplicationParam);
    }

	
    @RequestMapping(
    		value = "/submitFeedback", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitFeedback(@RequestBody CompFailFeedbackParam riskParam) 
            throws ServiceException {
    	    
		return delegate.submitFeedback(riskParam);
    }

	
    @RequestMapping(
    		value = "/submitItemAnalysis", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitItemAnalysis(@RequestBody CompFailAnalysisParam compFailAnalysisParam) 
            throws ServiceException {
    	    
		return delegate.submitItemAnalysis(compFailAnalysisParam);
    }

	
    @RequestMapping(
    		value = "/submitItemApplication", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitItemApplication(@RequestBody CompFailApplicationParam compFailApplicationParam) 
            throws ServiceException {
    	    
		return delegate.submitItemApplication(compFailApplicationParam);
    }

	
    @RequestMapping(
    		value = "/submitMlCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitMlCheck(@RequestBody CompFailMlReviewParam riskParam) 
            throws ServiceException {
    	    
		return delegate.submitMlCheck(riskParam);
    }

	
    @RequestMapping(
    		value = "/submitPmCheck", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitPmCheck(@RequestBody CompFailPmReviewParam riskParam) 
            throws ServiceException {
    	    
		return delegate.submitPmCheck(riskParam);
    }

	
    @RequestMapping(
    		value = "/submitRiskProve", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo submitRiskProve(@RequestBody CompFailRiskParam riskParam) 
            throws ServiceException {
    	    
		return delegate.submitRiskProve(riskParam);
    }

	
    @RequestMapping(
    		value = "/withdrawal", 
    		produces = { "application/json" }, 
    		method = RequestMethod.POST)
    public ResponseVo withdrawal( @RequestParam(value = "faId", required = true) String faId) 
            throws ServiceException {
    	    
		return delegate.withdrawal(faId);
    }
}

service層 接口

package com.delegate;

import com.model.CompFailCloseReviewParam;
import com.model.CompFailAnalysisParam;
import com.model.CompFailPmReviewParam;
import com..tools.commonlib.exception.ServiceException;
import com.model.CompFailApplicationParam;
import com.model.CompFailContactReviewParam;
import com.model.CompFailFeedbackParam;
import com.model.CompFailMlReviewParam;
import com.model.CompFailCreateParam;
import com.model.OneFaIdParam;
import com.model.ResponseVo;
import com.model.CompFailRiskParam;



public interface ProcessCompFailAnalysisDelegate {
  
    ResponseVo cancelProcess(OneFaIdParam oneRcIdParam) 
    	throws ServiceException;
  
    ResponseVo createCompAnalysisProcess(CompFailCreateParam compFailCreateParam) 
    	throws ServiceException;
  
    ResponseVo draftItemAnalysis(CompFailAnalysisParam compFailAnalysisParam) 
    	throws ServiceException;
  
    ResponseVo draftItemApplication(CompFailApplicationParam compFailApplicationParam) 
    	throws ServiceException;
  
    ResponseVo draftRiskProve(CompFailRiskParam riskParam) 
    	throws ServiceException;
  
    ResponseVo getCheckHistoryProcessList(Integer pageNo,
                     Integer pageSize,
                     String componentCode) 
    	throws ServiceException;
  
    ResponseVo getCloseCheck(String faId) 
    	throws ServiceException;
  
    ResponseVo getComponentCode(String keyword,
                     String processType) 
    	throws ServiceException;
  
    ResponseVo getContactCheck(String faId) 
    	throws ServiceException;
  
    ResponseVo getDoingProcessList(Integer pageNo,
                     Integer pageSize,
                     String componentCode) 
    	throws ServiceException;
  
    ResponseVo getFeedback(String faId) 
    	throws ServiceException;
  
    ResponseVo getHistoryProcessList(Integer pageNo,
                     Integer pageSize,
                     String componentCode) 
    	throws ServiceException;
  
    ResponseVo getItemAnalysis(String faId) 
    	throws ServiceException;
  
    ResponseVo getItemApplication(String faId) 
    	throws ServiceException;
  
    ResponseVo getMlCheck(String faId) 
    	throws ServiceException;
  
    ResponseVo getPmCheck(String faId) 
    	throws ServiceException;
  
    ResponseVo getProcessTitle(String faId) 
    	throws ServiceException;
  
    ResponseVo getRiskProve(String faId) 
    	throws ServiceException;
  
    ResponseVo getShareProcessList(Integer pageNo,
                     Integer pageSize,
                     String componentCode) 
    	throws ServiceException;
  
    ResponseVo getWaitingProcessList(Integer pageNo,
                     Integer pageSize,
                     String componentCode) 
    	throws ServiceException;
  
    ResponseVo submitCloseCheck(CompFailCloseReviewParam riskParam) 
    	throws ServiceException;
  
    ResponseVo submitContactCheck(CompFailContactReviewParam compFailApplicationParam) 
    	throws ServiceException;
  
    ResponseVo submitFeedback(CompFailFeedbackParam riskParam) 
    	throws ServiceException;
  
    ResponseVo submitItemAnalysis(CompFailAnalysisParam compFailAnalysisParam) 
    	throws ServiceException;
  
    ResponseVo submitItemApplication(CompFailApplicationParam compFailApplicationParam) 
    	throws ServiceException;
  
    ResponseVo submitMlCheck(CompFailMlReviewParam riskParam) 
    	throws ServiceException;
  
    ResponseVo submitPmCheck(CompFailPmReviewParam riskParam) 
    	throws ServiceException;
  
    ResponseVo submitRiskProve(CompFailRiskParam riskParam) 
    	throws ServiceException;
  
    ResponseVo withdrawal(String faId) 
    	throws ServiceException;
  
}

service 層 接口實(shí)現(xiàn)類(lèi)



package com.impl.process;

import com.delegate.ProcessCompFailAnalysisDelegate;
import com.model.CompFailAnalysisParam;
import com.model.CompFailApplicationParam;
import com.model.CompFailCloseReviewParam;
import com.model.CompFailContactReviewParam;
import com.model.CompFailCreateParam;
import com.model.CompFailFeedbackParam;
import com.model.CompFailMlReviewParam;
import com.model.CompFailPmReviewParam;
import com.model.CompFailRiskParam;
import com.model.OneFaIdParam;
import com.model.ResponseVo;
import com.domain.entity.VerifyInfo;
import com.domain.vo.process.CompFailTitleVo;
import com.service.process.ProcessCompFailService;
import com.utils.ResponseUtils;

import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * ProcessCompFailAnalysisDelegateImpl
 *
 */
@Service
public class ProcessCompFailAnalysisDelegateImpl implements ProcessCompFailAnalysisDelegate {
    @Resource
    private ProcessCompFailService processCompFailService;


    /**
     * cancelProcess
     * 
     * @param oneFaIdParam oneFaIdParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo cancelProcess(OneFaIdParam oneFaIdParam) {
        VerifyInfo verifyInfo = processCompFailService.cancelProcess(oneFaIdParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * createCompAnalysisProcess
     * 
     * @param compFailCreateParam compFailCreateParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo createCompAnalysisProcess(CompFailCreateParam compFailCreateParam) {
        VerifyInfo verifyInfo = processCompFailService.createProcessInst(compFailCreateParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getProcessTitle
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getProcessTitle(String faId) {
        CompFailTitleVo processTitle = processCompFailService.getProcessTitle(faId);
        if (processTitle == null) {
            return ResponseUtils.errorResponse("獲取流程Title失敗,可能原因是無(wú)權(quán)限訪(fǎng)問(wèn)該流程");
        }
        return ResponseUtils.successResponse(processTitle, "獲取信息成功");
    }


    /**
     * submitItemApplication
     * 
     * @param compFailApplicationParam compFailApplicationParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitItemApplication(CompFailApplicationParam compFailApplicationParam) {
        VerifyInfo verifyInfo = processCompFailService.submitApplication(compFailApplicationParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * draftItemApplication
     * 
     * @param compFailApplicationParam compFailApplicationParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo draftItemApplication(CompFailApplicationParam compFailApplicationParam) {
        VerifyInfo verifyInfo = processCompFailService.draftApplication(compFailApplicationParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getItemApplication
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getItemApplication(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getApplication(faId), "獲取信息成功");
    }


    /**
     * submitContactCheck
     * 
     * @param contactReviewParam contactReviewParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitContactCheck(CompFailContactReviewParam contactReviewParam) {
        VerifyInfo verifyInfo = processCompFailService.submitContactReview(contactReviewParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getContactCheck
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getContactCheck(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getContactReview(faId), "獲取信息成功");
    }


    /**
     * submitItemAnalysis
     * 
     * @param compFailAnalysisParam compFailAnalysisParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitItemAnalysis(CompFailAnalysisParam compFailAnalysisParam) {
        VerifyInfo verifyInfo = processCompFailService.submitAnalysis(compFailAnalysisParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * draftItemAnalysis
     * 
     * @param compFailAnalysisParam compFailAnalysisParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo draftItemAnalysis(CompFailAnalysisParam compFailAnalysisParam) {
        VerifyInfo verifyInfo = processCompFailService.draftAnalysis(compFailAnalysisParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getItemAnalysis
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getItemAnalysis(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getAnalysis(faId), "獲取信息成功");
    }


    /**
     * submitRiskProve
     * 
     * @param riskParam riskParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitRiskProve(CompFailRiskParam riskParam) {
        VerifyInfo verifyInfo = processCompFailService.submitRisk(riskParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * withdrawal
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo withdrawal(String faId) {
        VerifyInfo verifyInfo = processCompFailService.withdrawApplication(faId);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * draftRiskProve
     * 
     * @param riskParam riskParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo draftRiskProve(CompFailRiskParam riskParam) {
        VerifyInfo verifyInfo = processCompFailService.draftRisk(riskParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getRiskProve
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getRiskProve(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getRisk(faId), "獲取信息成功");
    }


    /**
     * submitPmCheck
     * 
     * @param riskParam riskParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitPmCheck(CompFailPmReviewParam riskParam) {
        VerifyInfo verifyInfo = processCompFailService.submitPmReview(riskParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getPmCheck
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getPmCheck(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getPmReview(faId), "獲取信息成功");
    }


    /**
     * submitMlCheck
     * 
     * @param riskParam riskParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitMlCheck(CompFailMlReviewParam riskParam) {
        VerifyInfo verifyInfo = processCompFailService.submitMlReview(riskParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getMlCheck
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getMlCheck(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getMlReview(faId), "獲取信息成功");
    }


    /**
     * submitCloseCheck
     * 
     * @param riskParam riskParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitCloseCheck(CompFailCloseReviewParam riskParam) {
        VerifyInfo verifyInfo = processCompFailService.submitCloseReview(riskParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }

    /**
     * getCloseCheck
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getCloseCheck(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getCloseReview(faId), "獲取信息成功");
    }


    /**
     * submitFeedback
     * 
     * @param riskParam riskParam
     * @return ResponseVo
     */
    @Override
    public ResponseVo submitFeedback(CompFailFeedbackParam riskParam) {
        VerifyInfo verifyInfo = processCompFailService.submitFeedback(riskParam);
        return verifyInfo.isPass()
            ? ResponseUtils.successResponse(verifyInfo.getMessage())
            : ResponseUtils.errorResponse(verifyInfo.getMessage());
    }


    /**
     * getFeedback
     * 
     * @param faId faId
     * @return ResponseVo
     */
    @Override
    public ResponseVo getFeedback(String faId) {
        return ResponseUtils.successResponse(processCompFailService.getFeedback(faId), "獲取信息成功");
    }


    /**
     * getWaitingProcessList
     * 
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    @Override
    public ResponseVo getWaitingProcessList(Integer pageNo, Integer pageSize, String componentCode) {
        return processCompFailService.getWaitingProcessList(pageNo, pageSize, componentCode);
    }


    /**
     * getDoingProcessList
     * 
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    @Override
    public ResponseVo getDoingProcessList(Integer pageNo, Integer pageSize, String componentCode) {
        return processCompFailService.getDoingProcessList(pageNo, pageSize, componentCode);
    }


    /**
     * getHistoryProcessList
     * 
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    @Override
    public ResponseVo getHistoryProcessList(Integer pageNo, Integer pageSize, String componentCode) {
        return processCompFailService.getHistoryProcessList(pageNo, pageSize, componentCode);
    }

    /**
     * getCheckHistoryProcessList
     * 
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    @Override
    public ResponseVo getCheckHistoryProcessList(Integer pageNo, Integer pageSize, String componentCode) {
        return processCompFailService.getCheckHistoryProcessList(pageNo, pageSize, componentCode);
    }


    /**
     * getShareProcessList
     * 
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    @Override
    public ResponseVo getShareProcessList(Integer pageNo, Integer pageSize, String componentCode) {
        return processCompFailService.getShareProcessList(pageNo, pageSize, componentCode);
    }


    /**
     * getComponentCode
     * 
     * @param keyword keyword
     * @param processType processType
     * @return ResponseVo
     */
    @Override
    public ResponseVo getComponentCode(String keyword, String processType) {
        return ResponseUtils.successResponse(processCompFailService.getComponentCode(keyword, processType), "");
    }
}

service層? ?電子流分析服務(wù)接口



package com.service.process;

import com.model.*;
import com.domain.entity.VerifyInfo;
import com.domain.vo.process.CompFailTitleVo;

import java.util.Collection;

/**
 * 失效分析服務(wù)
 *
 */
public interface ProcessCompFailService {

    /**
     * 創(chuàng)建流程實(shí)例
     *
     * @param createParam createParam
     * @return VerifyInfo
     */
    VerifyInfo createProcessInst(CompFailCreateParam createParam);

    /**
     * 用戶(hù)撤銷(xiāo)電子流
     *
     * @param oneFaIdParam oneFaIdParam
     * @return VerifyInfo
     */
    VerifyInfo cancelProcess(OneFaIdParam oneFaIdParam);

    /**
     * 獲取流程標(biāo)題
     *
     * @param businessId businessId
     * @return CompFailTitleVo
     */
    CompFailTitleVo getProcessTitle(String businessId);

    /**
     * 提交申請(qǐng)
     *
     * @param applicationParam applicationParam
     * @return VerifyInfo
     */
    VerifyInfo submitApplication(CompFailApplicationParam applicationParam);

    /**
     * 申請(qǐng)?zhí)峤缓?,申?qǐng)人撤銷(xiāo)申請(qǐng)
     *
     * @param faId faId
     * @return VerifyInfo
     */
    VerifyInfo withdrawApplication(String faId);

    /**
     * 保存申請(qǐng)草稿
     *
     * @param applicationParam applicationParam
     * @return VerifyInfo
     */
    VerifyInfo draftApplication(CompFailApplicationParam applicationParam);

    /**
     * 獲取申請(qǐng)信息
     *
     * @param faId faId
     * @return CompFailApplicationParam
     */
    CompFailApplicationParam getApplication(String faId);

    /**
     * 提交接口人審核
     *
     * @param contactReviewParam contactReviewParam
     * @return VerifyInfo
     */
    VerifyInfo submitContactReview(CompFailContactReviewParam contactReviewParam);

    /**
     * 獲取接口人審核信息
     *
     * @param faId faId
     * @return CompFailContactReviewParam
     */
    CompFailContactReviewParam getContactReview(String faId);


    /**
     * 提交分析
     *
     * @param analysisParam analysisParam
     * @return VerifyInfo
     */
    VerifyInfo submitAnalysis(CompFailAnalysisParam analysisParam);

    /**
     * 保存分析草稿
     *
     * @param analysisParam analysisParam
     * @return VerifyInfo
     */
    VerifyInfo draftAnalysis(CompFailAnalysisParam analysisParam);

    /**
     * 獲取分析信息
     *
     * @param faId faId
     * @return CompFailAnalysisParam
     */
    CompFailAnalysisParam getAnalysis(String faId);

    /**
     * 提交風(fēng)險(xiǎn)評(píng)估
     *
     * @param riskParam riskParam
     * @return VerifyInfo
     */
    VerifyInfo submitRisk(CompFailRiskParam riskParam);

    /**
     * 保存風(fēng)險(xiǎn)評(píng)估草稿
     *
     * @param riskParam riskParam
     * @return VerifyInfo
     */
    VerifyInfo draftRisk(CompFailRiskParam riskParam);

    /**
     * 獲取風(fēng)險(xiǎn)評(píng)估
     *
     * @param faId faId
     * @return CompFailRiskParam
     */
    CompFailRiskParam getRisk(String faId);

    /**
     * 提交項(xiàng)目經(jīng)理審核
     *
     * @param pmReviewParam pmReviewParam
     * @return VerifyInfo
     */
    VerifyInfo submitPmReview(CompFailPmReviewParam pmReviewParam);

    /**
     * 獲取項(xiàng)目經(jīng)理審核
     *
     * @param faId faId
     * @return CompFailPmReviewParam
     */
    CompFailPmReviewParam getPmReview(String faId);

    /**
     * 提交專(zhuān)家審核
     *
     * @param mlReviewParam mlReviewParam
     * @return VerifyInfo
     */
    VerifyInfo submitMlReview(CompFailMlReviewParam mlReviewParam);
    

    /**
     * getMlReview
     * 
     * @param faId faId
     * @return CompFailMlReviewParam
     */
    CompFailMlReviewParam getMlReview(String faId);

    /**
     * 提交關(guān)閉審核
     *
     * @param closeReviewParam closeReviewParam
     * @return VerifyInfo
     */
    VerifyInfo submitCloseReview(CompFailCloseReviewParam closeReviewParam);


    /**
     * getCloseReview
     * 
     * @param faId faId
     * @return CompFailCloseReviewParam
     */
    CompFailCloseReviewParam getCloseReview(String faId);

    /**
     * 提交反饋意見(jiàn)
     *
     * @param feedbackParam feedbackParam
     * @return VerifyInfo
     */
    VerifyInfo submitFeedback(CompFailFeedbackParam feedbackParam);


    /**
     * getFeedback
     * 
     * @param faId faId
     * @return CompFailFeedbackParam
     */
    CompFailFeedbackParam getFeedback(String faId);

    /**
     * 待我處理流程
     *
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    ResponseVo getWaitingProcessList(Integer pageNo, Integer pageSize, String componentCode);

    /**
     * 創(chuàng)建流程
     *
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    ResponseVo getDoingProcessList(Integer pageNo, Integer pageSize, String componentCode);

    /**
     * 歷史流程(用戶(hù)創(chuàng)建的,走完所有任務(wù)并關(guān)閉的)
     *
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    ResponseVo getHistoryProcessList(Integer pageNo, Integer pageSize, String componentCode);

    /**
     * 審批歷史流程
     *
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    ResponseVo getCheckHistoryProcessList(Integer pageNo, Integer pageSize, String componentCode);

    /**
     * 共享流程
     *
     * @param pageNo pageNo
     * @param pageSize pageSize
     * @param componentCode componentCode
     * @return ResponseVo
     */
    ResponseVo getShareProcessList(Integer pageNo, Integer pageSize, String componentCode);

    /**
     * 模糊查詢(xún)編碼
     *
     * @param keyword keyword
     * @param processType processType
     * @return Collection<String>
     */
    Collection<String> getComponentCode(String keyword, String processType);


    /**
     * getProcessState
     * 
     * @param businessId businessId
     * @return String
     */
    String getProcessState(String businessId);
}

service層? ?電子流分析服務(wù)接口實(shí)現(xiàn)類(lèi)

下篇待續(xù).......文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-542076.html

到了這里,關(guān)于【業(yè)務(wù)功能篇38】上篇:Springboot+activiti7 工作流引擎 增加網(wǎng)關(guān)組件、Assignment分配權(quán)限的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Activiti7 工作流非原流程終止

    Activiti7 工作流非原流程終止

    正常工作流,需要經(jīng)過(guò) node1、node2 才能結(jié)束。 現(xiàn)在要求已經(jīng)開(kāi)啟的流程,目前停留在 node1,可以提前終止。 一般根據(jù)實(shí)際需要,可以有幾種做法: 新繪制流程圖,新增 node1 結(jié)束的流程分支,替換原流程 SQL 的方式,將該流程的數(shù)據(jù),手動(dòng)修改為終止的狀態(tài) 代碼動(dòng)態(tài)修改流程

    2023年04月16日
    瀏覽(43)
  • Activiti7工作流引擎:在線(xiàn)流程編輯器Activiti Modoler5.x

    Activiti7工作流引擎:在線(xiàn)流程編輯器Activiti Modoler5.x

    有的時(shí)候我們的流程圖需要業(yè)務(wù)人員自己繪制,然后使用自己繪制的流程圖,此時(shí)就需要一個(gè)在線(xiàn)流程圖編輯器需要集成到我們的web系統(tǒng)中。Activiti Modoler是Activiti官方推出的在線(xiàn)流程編輯器。 https://github.com/Activiti/Activiti/tree/5.x 將整個(gè)項(xiàng)目下載下來(lái)。不同版本的目錄結(jié)構(gòu)區(qū)別

    2024年02月09日
    瀏覽(19)
  • 【業(yè)務(wù)功能篇57】Springboot + Spring Security 權(quán)限管理 【上篇】

    【業(yè)務(wù)功能篇57】Springboot + Spring Security 權(quán)限管理 【上篇】

    4.1.1 權(quán)限管理的意義 后臺(tái)管理系統(tǒng)中,通常需要控制不同的登錄用戶(hù)可以操作的內(nèi)容。權(quán)限管理用于管理系統(tǒng)資源,分配用戶(hù)菜單、資源權(quán)限,以及驗(yàn)證用戶(hù)是否有訪(fǎng)問(wèn)資源權(quán)限。 4.1.2 RBAC權(quán)限設(shè)計(jì)模型 ACL介紹 ACL(Access Control List):訪(fǎng)問(wèn)控制列表 用戶(hù) - 權(quán)限 ACL 模型,權(quán)限

    2024年02月15日
    瀏覽(26)
  • Springboot集成工作流Activity

    Springboot集成工作流Activity

    介紹 官網(wǎng):https://www.activiti.org/ 一 、工作流介紹 1.工作流(workflow) 就是通過(guò)計(jì)算機(jī)對(duì)業(yè)務(wù)流程自動(dòng)化執(zhí)行管理,它主要解決的是“使在多個(gè)參與這之間按照某種預(yù)定義規(guī)則自動(dòng)化進(jìn)行傳遞文檔、信息或任務(wù)的過(guò)程,從而實(shí)現(xiàn)某個(gè)預(yù)期的業(yè)務(wù)目標(biāo),或者促使目標(biāo)的實(shí)現(xiàn)。”

    2023年04月13日
    瀏覽(18)
  • springboot項(xiàng)目集成activiti工作流引擎

    springboot項(xiàng)目集成activiti工作流引擎

    一、一種較為簡(jiǎn)單,只需要使用idea的插件來(lái)畫(huà)流程圖。(我所使用的的插件是Activiti BPMN visualizer) 二、另一種就是可以使用(在線(xiàn)流程設(shè)計(jì)器)或者(頁(yè)面設(shè)計(jì)器部署到自己項(xiàng)目中)來(lái)畫(huà)流程圖。 本文是將流程設(shè)計(jì)頁(yè)面部署到了項(xiàng)目中 一、使用idea的插件來(lái)畫(huà)流程圖。 ?二

    2024年02月10日
    瀏覽(20)
  • 若依框架SpringBoot+Activiti工作流的使用

    若依框架SpringBoot+Activiti工作流的使用

    使用簡(jiǎn)介:本技術(shù)點(diǎn)主要是針對(duì)類(lèi)審批的業(yè)務(wù)流程的建模,可以有:任務(wù)發(fā)布(即流程開(kāi)始)到一級(jí)一級(jí)的審批到最終結(jié)束(即流程結(jié)束)一整套完備的模型 1、idea下載activiti插件 ider以前版本下載actiBPM,但是新版ider這個(gè)插件已經(jīng)被淘汰,已經(jīng)被下面這個(gè)替代 ? ? 2、單獨(dú)起

    2024年02月11日
    瀏覽(30)
  • springboot中配置bpmsjs插件-activiti7流程圖繪制插件/IDEA中運(yùn)行bpmnjs

    springboot中配置bpmsjs插件-activiti7流程圖繪制插件/IDEA中運(yùn)行bpmnjs

    BPMNJS的安裝和使用需要依賴(lài)nodejs插件,需要先安裝NODEJS,因?yàn)閎pmnjs插件的運(yùn)行需要使用到NODEJS中的npm命令。 安裝nodejs 安裝和使用bpmnjs插件,繪制activiti工作流需要的流程圖。 ? https://nodejs.org/en 安裝之后在安裝目錄下創(chuàng)建node_cache和node_global兩個(gè)目錄 如果目錄已經(jīng)存在可以不創(chuàng)

    2024年02月15日
    瀏覽(25)
  • SpringBoot整合Activiti實(shí)現(xiàn)工作流的低代碼系統(tǒng)(附源碼+文檔)

    SpringBoot整合Activiti實(shí)現(xiàn)工作流的低代碼系統(tǒng)(附源碼+文檔)

    activiti工作流引擎項(xiàng)目,企業(yè)erp、oa、hr、crm等企事業(yè)辦公系統(tǒng)輕松落地,一套完整并且實(shí)際運(yùn)用在多套項(xiàng)目中的案例,滿(mǎn)足日常業(yè)務(wù)流程審批需求。 springboot+vue+activiti集成了activiti在線(xiàn)編輯器,流行的前后端分離部署開(kāi)發(fā)模式,快速開(kāi)發(fā)平臺(tái),可插拔工作流服務(wù)。工作流表單

    2024年04月09日
    瀏覽(20)
  • SpringBoot整合Activiti實(shí)現(xiàn)工作流的低代碼系統(tǒng)(附源碼和配套文檔)

    SpringBoot整合Activiti實(shí)現(xiàn)工作流的低代碼系統(tǒng)(附源碼和配套文檔)

    activiti工作流引擎項(xiàng)目,企業(yè)erp、oa、hr、crm等企事業(yè)辦公系統(tǒng)輕松落地,一套完整并且實(shí)際運(yùn)用在多套項(xiàng)目中的案例,滿(mǎn)足日常業(yè)務(wù)流程審批需求。 springboot+vue+activiti集成了activiti在線(xiàn)編輯器,流行的前后端分離部署開(kāi)發(fā)模式,快速開(kāi)發(fā)平臺(tái),可插拔工作流服務(wù)。工作流表單

    2024年03月15日
    瀏覽(21)
  • 模仿Activiti工作流自動(dòng)建表機(jī)制,實(shí)現(xiàn)Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫(kù)與表的方案

    模仿Activiti工作流自動(dòng)建表機(jī)制,實(shí)現(xiàn)Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫(kù)與表的方案

    文/朱季謙 熬夜寫(xiě)完,尚有不足,但仍在努力學(xué)習(xí)與總結(jié)中,而您的點(diǎn)贊與關(guān)注,是對(duì)我最大的鼓勵(lì)! 在一些本地化項(xiàng)目開(kāi)發(fā)當(dāng)中,存在這樣一種需求,即開(kāi)發(fā)完成的項(xiàng)目,在第一次部署啟動(dòng)時(shí),需能自行構(gòu)建系統(tǒng)需要的數(shù)據(jù)庫(kù)及其對(duì)應(yīng)的數(shù)據(jù)庫(kù)表。 若要解決這類(lèi)需求,其實(shí)

    2024年01月24日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包