mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-18 05:08:02 +00:00
update
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2025-01-21 12:45:10
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-02-02 22:34:38
|
||||
* @LastEditTime: 2025-02-02 23:54:17
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -15,21 +15,20 @@ package com.bytedesk.ticket.service;
|
||||
|
||||
import org.flowable.dmn.api.DmnDecisionService;
|
||||
import org.flowable.dmn.engine.DmnEngine;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
// import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
// import org.flowable.dmn.api.DmnRuleService;
|
||||
|
||||
import com.bytedesk.ticket.ticket.TicketEntity;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class TicketDmnService {
|
||||
|
||||
@Autowired
|
||||
private DmnEngine dmnEngine;
|
||||
private final DmnEngine dmnEngine;
|
||||
|
||||
public void evaluateTicketPriority(TicketEntity ticket) {
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
|
||||
@@ -1,79 +1,200 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
||||
xmlns:flowable="http://flowable.org/bpmn"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
targetNamespace="BytedeskTicket">
|
||||
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.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="BytedeskTicket"
|
||||
exporter="Flowable Open Source Modeler" exporterVersion="6.8.0">
|
||||
<process id="agentTicketProcess" name="Agent Ticket Process" isExecutable="true">
|
||||
<startEvent id="start" name="Create Ticket"/>
|
||||
|
||||
<!-- Priority Evaluation -->
|
||||
<sequenceFlow sourceRef="start" targetRef="evaluatePriority"/>
|
||||
<businessRuleTask id="evaluatePriority" name="Evaluate Priority"
|
||||
flowable:decisionRef="ticketPriorityRules"/>
|
||||
|
||||
<!-- Assign to Agent -->
|
||||
<sequenceFlow sourceRef="evaluatePriority" targetRef="assignToAgent"/>
|
||||
<userTask id="assignToAgent" name="Agent Handle" flowable:assignee="${agentUid}">
|
||||
<startEvent id="start" name="Create Ticket" flowable:formFieldValidation="true"></startEvent>
|
||||
<sequenceFlow id="sequenceFlow-6b9988a7-7304-40b8-b71a-9676e0060923" sourceRef="start"
|
||||
targetRef="evaluatePriority"></sequenceFlow>
|
||||
<businessRuleTask id="evaluatePriority" name="Evaluate Priority"></businessRuleTask>
|
||||
<sequenceFlow id="sequenceFlow-a275b096-0da9-42a2-b28a-df7147204665"
|
||||
sourceRef="evaluatePriority" targetRef="assignToAgent"></sequenceFlow>
|
||||
<userTask id="assignToAgent" name="Agent Handle" flowable:assignee="${agentUid}"
|
||||
flowable:formFieldValidation="true">
|
||||
<documentation>Assigned agent handles the ticket</documentation>
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="solution" name="Solution" type="string" required="true"/>
|
||||
<flowable:formProperty id="solution" name="Solution" type="string" required="true"></flowable:formProperty>
|
||||
<flowable:formProperty id="status" name="Status" type="enum">
|
||||
<flowable:value id="resolved" name="Resolved"/>
|
||||
<flowable:value id="pending" name="Pending"/>
|
||||
<flowable:value id="escalated" name="Escalated"/>
|
||||
<flowable:value id="resolved" name="Resolved"></flowable:value>
|
||||
<flowable:value id="pending" name="Pending"></flowable:value>
|
||||
<flowable:value id="escalated" name="Escalated"></flowable:value>
|
||||
</flowable:formProperty>
|
||||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
|
||||
<!-- SLA Monitor -->
|
||||
<boundaryEvent id="slaTimer" attachedToRef="assignToAgent">
|
||||
<boundaryEvent id="slaTimer" attachedToRef="assignToAgent" cancelActivity="true">
|
||||
<timerEventDefinition>
|
||||
<timeDuration>${slaTime}</timeDuration>
|
||||
</timerEventDefinition>
|
||||
</boundaryEvent>
|
||||
<sequenceFlow sourceRef="slaTimer" targetRef="slaNotification"/>
|
||||
<sequenceFlow id="sequenceFlow-6bba06cf-67ca-4436-b40b-99e53b9dec73" sourceRef="slaTimer"
|
||||
targetRef="slaNotification"></sequenceFlow>
|
||||
<serviceTask id="slaNotification" name="SLA Timeout Notification"
|
||||
flowable:class="com.bytedesk.ticket.delegate.TicketSLATimeoutNotificationDelegate"/>
|
||||
<sequenceFlow sourceRef="slaNotification" targetRef="escalateTicket"/>
|
||||
|
||||
<!-- Ticket Escalation -->
|
||||
flowable:class="com.bytedesk.ticket.delegate.TicketSLATimeoutNotificationDelegate"></serviceTask>
|
||||
<sequenceFlow id="sequenceFlow-5f9c2d88-90a6-4463-a57d-0a37045d8a19"
|
||||
sourceRef="slaNotification" targetRef="escalateTicket"></sequenceFlow>
|
||||
<serviceTask id="escalateTicket" name="Escalate Ticket"
|
||||
flowable:class="com.bytedesk.ticket.delegate.TicketEscalationDelegate"/>
|
||||
<sequenceFlow sourceRef="escalateTicket" targetRef="supervisorHandle"/>
|
||||
|
||||
<!-- Supervisor Handle -->
|
||||
<userTask id="supervisorHandle" name="Supervisor Handle" flowable:candidateGroups="supervisors">
|
||||
flowable:class="com.bytedesk.ticket.delegate.TicketEscalateDelegate"></serviceTask>
|
||||
<sequenceFlow id="sequenceFlow-e62f7af5-5b8c-4bb0-96aa-38fc86c7fef4"
|
||||
sourceRef="escalateTicket" targetRef="supervisorHandle"></sequenceFlow>
|
||||
<userTask id="supervisorHandle" name="Supervisor Handle"
|
||||
flowable:candidateGroups="supervisors" flowable:formFieldValidation="true">
|
||||
<documentation>Supervisor handles escalated ticket</documentation>
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="solution" name="Solution" type="string" required="true"></flowable:formProperty>
|
||||
<flowable:formProperty id="status" name="Status" type="enum">
|
||||
<flowable:value id="resolved" name="Resolved"></flowable:value>
|
||||
<flowable:value id="pending" name="Pending"></flowable:value>
|
||||
</flowable:formProperty>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
<sequenceFlow sourceRef="supervisorHandle" targetRef="assignToAgent"/>
|
||||
|
||||
<!-- Customer Verification -->
|
||||
<sequenceFlow sourceRef="assignToAgent" targetRef="customerVerify"/>
|
||||
<userTask id="customerVerify" name="Customer Verify" flowable:assignee="${creator}">
|
||||
<sequenceFlow id="sequenceFlow-599241c8-5be4-4a9f-89b1-3dad57547453"
|
||||
sourceRef="supervisorHandle" targetRef="customerVerify"></sequenceFlow>
|
||||
<sequenceFlow id="sequenceFlow-056d0348-b895-4548-8f29-171bf6b045bb"
|
||||
sourceRef="assignToAgent" targetRef="customerVerify"></sequenceFlow>
|
||||
<userTask id="customerVerify" name="Customer Verify" flowable:assignee="${userUid}"
|
||||
flowable:formFieldValidation="true">
|
||||
<documentation>Customer verifies if the issue is resolved</documentation>
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="satisfied" name="Satisfied" type="boolean" required="true"/>
|
||||
<flowable:formProperty id="comment" name="Comment" type="string"/>
|
||||
<flowable:formProperty id="satisfied" name="Satisfied" type="boolean"
|
||||
required="true"></flowable:formProperty>
|
||||
<flowable:formProperty id="comment" name="Comment" type="string"></flowable:formProperty>
|
||||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
|
||||
<!-- Satisfaction Survey -->
|
||||
<sequenceFlow sourceRef="customerVerify" targetRef="satisfactionSurvey"/>
|
||||
<userTask id="satisfactionSurvey" name="Satisfaction Survey" flowable:assignee="${creator}">
|
||||
<sequenceFlow id="sequenceFlow-1ff290a2-7f8d-4303-a819-ec4115a509b0"
|
||||
sourceRef="customerVerify" targetRef="satisfactionSurvey"></sequenceFlow>
|
||||
<userTask id="satisfactionSurvey" name="Satisfaction Survey" flowable:assignee="${userUid}"
|
||||
flowable:formFieldValidation="true">
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="rating" name="Rating" type="enum">
|
||||
<flowable:value id="5" name="Very Satisfied"/>
|
||||
<flowable:value id="4" name="Satisfied"/>
|
||||
<flowable:value id="3" name="Neutral"/>
|
||||
<flowable:value id="2" name="Dissatisfied"/>
|
||||
<flowable:value id="1" name="Very Dissatisfied"/>
|
||||
<flowable:value id="5" name="Very Satisfied"></flowable:value>
|
||||
<flowable:value id="4" name="Satisfied"></flowable:value>
|
||||
<flowable:value id="3" name="Neutral"></flowable:value>
|
||||
<flowable:value id="2" name="Dissatisfied"></flowable:value>
|
||||
<flowable:value id="1" name="Very Dissatisfied"></flowable:value>
|
||||
</flowable:formProperty>
|
||||
<flowable:formProperty id="feedback" name="Feedback" type="string"/>
|
||||
<flowable:formProperty id="feedback" name="Feedback" type="string"></flowable:formProperty>
|
||||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
|
||||
<sequenceFlow sourceRef="satisfactionSurvey" targetRef="end"/>
|
||||
<endEvent id="end" name="End Ticket"/>
|
||||
<sequenceFlow id="sequenceFlow-90cf414f-3cf9-4b11-bbfa-f43d5f85ed2e"
|
||||
sourceRef="satisfactionSurvey" targetRef="end"></sequenceFlow>
|
||||
<endEvent id="end" name="End Ticket"></endEvent>
|
||||
</process>
|
||||
</definitions>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_agentTicketProcess">
|
||||
<bpmndi:BPMNPlane bpmnElement="agentTicketProcess" id="BPMNPlane_agentTicketProcess">
|
||||
<bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
|
||||
<omgdc:Bounds height="30.0" width="30.0" x="135.0" y="115.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="evaluatePriority" id="BPMNShape_evaluatePriority">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="250.0" y="100.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="assignToAgent" id="BPMNShape_assignToAgent">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="400.0" y="100.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="slaTimer" id="BPMNShape_slaTimer">
|
||||
<omgdc:Bounds height="31.0" width="31.0" x="465.20710678118655"
|
||||
y="145.20710678118655"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="slaNotification" id="BPMNShape_slaNotification">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="100.0" y="260.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="escalateTicket" id="BPMNShape_escalateTicket">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="250.0" y="260.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="supervisorHandle" id="BPMNShape_supervisorHandle">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="400.0" y="260.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="customerVerify" id="BPMNShape_customerVerify">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="550.0" y="180.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="satisfactionSurvey" id="BPMNShape_satisfactionSurvey">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="700.0" y="180.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
|
||||
<omgdc:Bounds height="28.0" width="28.0" x="850.0" y="195.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-6bba06cf-67ca-4436-b40b-99e53b9dec73"
|
||||
id="BPMNEdge_sequenceFlow-6bba06cf-67ca-4436-b40b-99e53b9dec73"
|
||||
flowable:sourceDockerX="15.500000000000002"
|
||||
flowable:sourceDockerY="15.500000000000002" flowable:targetDockerX="50.0"
|
||||
flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="480.64236654715717" y="176.15697486332536"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="480.0" y="330.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="150.0" y="330.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="150.0" y="319.95"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-599241c8-5be4-4a9f-89b1-3dad57547453"
|
||||
id="BPMNEdge_sequenceFlow-599241c8-5be4-4a9f-89b1-3dad57547453"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="499.95000000000005" y="290.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="512.0" y="290.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="512.0" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="550.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-6b9988a7-7304-40b8-b71a-9676e0060923"
|
||||
id="BPMNEdge_sequenceFlow-6b9988a7-7304-40b8-b71a-9676e0060923"
|
||||
flowable:sourceDockerX="15.0" flowable:sourceDockerY="15.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="164.94999525015479" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="212.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="212.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="249.99999999997692" y="130.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-e62f7af5-5b8c-4bb0-96aa-38fc86c7fef4"
|
||||
id="BPMNEdge_sequenceFlow-e62f7af5-5b8c-4bb0-96aa-38fc86c7fef4"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="349.9499999998728" y="290.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="399.9999999997658" y="290.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-a275b096-0da9-42a2-b28a-df7147204665"
|
||||
id="BPMNEdge_sequenceFlow-a275b096-0da9-42a2-b28a-df7147204665"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="349.95000000000005" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="362.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="362.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="399.9999999999769" y="130.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-90cf414f-3cf9-4b11-bbfa-f43d5f85ed2e"
|
||||
id="BPMNEdge_sequenceFlow-90cf414f-3cf9-4b11-bbfa-f43d5f85ed2e"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
|
||||
<omgdi:waypoint x="799.9499999999977" y="209.56140350877192"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="850.0005248012809" y="209.1223639291296"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-056d0348-b895-4548-8f29-171bf6b045bb"
|
||||
id="BPMNEdge_sequenceFlow-056d0348-b895-4548-8f29-171bf6b045bb"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="499.95000000000005" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="512.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="512.0" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="550.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-5f9c2d88-90a6-4463-a57d-0a37045d8a19"
|
||||
id="BPMNEdge_sequenceFlow-5f9c2d88-90a6-4463-a57d-0a37045d8a19"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="199.94999999987277" y="290.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="249.9999999997658" y="290.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-1ff290a2-7f8d-4303-a819-ec4115a509b0"
|
||||
id="BPMNEdge_sequenceFlow-1ff290a2-7f8d-4303-a819-ec4115a509b0"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="649.9499999999581" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="700.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</definitions>
|
||||
@@ -1,68 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
||||
xmlns:flowable="http://flowable.org/bpmn"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
targetNamespace="BytedeskTicket">
|
||||
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.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="BytedeskTicket"
|
||||
exporter="Flowable Open Source Modeler" exporterVersion="6.8.0">
|
||||
<process id="groupTicketProcess" name="Group Ticket Process" isExecutable="true">
|
||||
<startEvent id="start" name="Create Ticket"/>
|
||||
|
||||
<!-- Priority Evaluation -->
|
||||
<sequenceFlow sourceRef="start" targetRef="evaluatePriority"/>
|
||||
<businessRuleTask id="evaluatePriority" name="Evaluate Priority"
|
||||
flowable:decisionRef="ticketPriorityRules"/>
|
||||
|
||||
<!-- Assign to Group -->
|
||||
<sequenceFlow sourceRef="evaluatePriority" targetRef="assignToGroup"/>
|
||||
<userTask id="assignToGroup" name="Group Handle" flowable:candidateGroups="${workgroupUid}">
|
||||
<startEvent id="start" name="Create Ticket" flowable:formFieldValidation="true"></startEvent>
|
||||
<sequenceFlow id="sequenceFlow-bc10ee85-13ff-41cb-9801-e3312a63a5c9" sourceRef="start"
|
||||
targetRef="evaluatePriority"></sequenceFlow>
|
||||
<businessRuleTask id="evaluatePriority" name="Evaluate Priority"></businessRuleTask>
|
||||
<sequenceFlow id="sequenceFlow-d42ed887-6f67-4060-8889-8fabec33506b"
|
||||
sourceRef="evaluatePriority" targetRef="assignToGroup"></sequenceFlow>
|
||||
<userTask id="assignToGroup" name="Group Handle" flowable:candidateGroups="${workgroupUid}"
|
||||
flowable:formFieldValidation="true">
|
||||
<documentation>Group members handle the ticket</documentation>
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="solution" name="Solution" type="string" required="true"/>
|
||||
<flowable:formProperty id="solution" name="Solution" type="string" required="true"></flowable:formProperty>
|
||||
<flowable:formProperty id="status" name="Status" type="enum">
|
||||
<flowable:value id="resolved" name="Resolved"/>
|
||||
<flowable:value id="pending" name="Pending"/>
|
||||
<flowable:value id="escalated" name="Escalated"/>
|
||||
<flowable:value id="resolved" name="Resolved"></flowable:value>
|
||||
<flowable:value id="pending" name="Pending"></flowable:value>
|
||||
<flowable:value id="escalated" name="Escalated"></flowable:value>
|
||||
</flowable:formProperty>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
|
||||
<!-- SLA Monitor -->
|
||||
<boundaryEvent id="slaTimer" attachedToRef="assignToGroup">
|
||||
<boundaryEvent id="slaTimer" attachedToRef="assignToGroup" cancelActivity="true">
|
||||
<timerEventDefinition>
|
||||
<timeDuration>${slaTime}</timeDuration>
|
||||
</timerEventDefinition>
|
||||
</boundaryEvent>
|
||||
<sequenceFlow sourceRef="slaTimer" targetRef="slaNotification"/>
|
||||
<sequenceFlow id="sequenceFlow-9a5f6c89-bdd8-428f-b877-3cabfc132b2a" sourceRef="slaTimer"
|
||||
targetRef="slaNotification"></sequenceFlow>
|
||||
<serviceTask id="slaNotification" name="SLA Timeout Notification"
|
||||
flowable:class="com.bytedesk.ticket.delegate.TicketSLATimeoutNotificationDelegate"/>
|
||||
<sequenceFlow sourceRef="slaNotification" targetRef="assignToGroup"/>
|
||||
|
||||
<!-- Customer Verification -->
|
||||
<sequenceFlow sourceRef="assignToGroup" targetRef="customerVerify"/>
|
||||
<userTask id="customerVerify" name="Customer Verify" flowable:assignee="${creator}">
|
||||
flowable:class="com.bytedesk.ticket.delegate.TicketSLATimeoutNotificationDelegate"></serviceTask>
|
||||
<sequenceFlow id="sequenceFlow-07427c3a-696b-4964-b0c6-2c22ad9a0384"
|
||||
sourceRef="slaNotification" targetRef="assignToGroup"></sequenceFlow>
|
||||
<sequenceFlow id="sequenceFlow-dbd150a1-5d93-4c09-aec6-11f47705eb1e"
|
||||
sourceRef="assignToGroup" targetRef="customerVerify"></sequenceFlow>
|
||||
<userTask id="customerVerify" name="Customer Verify" flowable:assignee="${userUid}"
|
||||
flowable:formFieldValidation="true">
|
||||
<documentation>Customer verifies if the issue is resolved</documentation>
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="satisfied" name="Satisfied" type="boolean" required="true"/>
|
||||
<flowable:formProperty id="comment" name="Comment" type="string"/>
|
||||
<flowable:formProperty id="satisfied" name="Satisfied" type="boolean"
|
||||
required="true"></flowable:formProperty>
|
||||
<flowable:formProperty id="comment" name="Comment" type="string"></flowable:formProperty>
|
||||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
|
||||
<!-- Satisfaction Survey -->
|
||||
<sequenceFlow sourceRef="customerVerify" targetRef="satisfactionSurvey"/>
|
||||
<userTask id="satisfactionSurvey" name="Satisfaction Survey" flowable:assignee="${creator}">
|
||||
<sequenceFlow id="sequenceFlow-c405b332-2cc3-4866-842b-c4b0d82f653d"
|
||||
sourceRef="customerVerify" targetRef="satisfactionSurvey"></sequenceFlow>
|
||||
<userTask id="satisfactionSurvey" name="Satisfaction Survey" flowable:assignee="${userUid}"
|
||||
flowable:formFieldValidation="true">
|
||||
<extensionElements>
|
||||
<flowable:formProperty id="rating" name="Rating" type="enum">
|
||||
<flowable:value id="5" name="Very Satisfied"/>
|
||||
<flowable:value id="4" name="Satisfied"/>
|
||||
<flowable:value id="3" name="Neutral"/>
|
||||
<flowable:value id="2" name="Dissatisfied"/>
|
||||
<flowable:value id="1" name="Very Dissatisfied"/>
|
||||
<flowable:value id="5" name="Very Satisfied"></flowable:value>
|
||||
<flowable:value id="4" name="Satisfied"></flowable:value>
|
||||
<flowable:value id="3" name="Neutral"></flowable:value>
|
||||
<flowable:value id="2" name="Dissatisfied"></flowable:value>
|
||||
<flowable:value id="1" name="Very Dissatisfied"></flowable:value>
|
||||
</flowable:formProperty>
|
||||
<flowable:formProperty id="feedback" name="Feedback" type="string"/>
|
||||
<flowable:formProperty id="feedback" name="Feedback" type="string"></flowable:formProperty>
|
||||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
|
||||
</extensionElements>
|
||||
</userTask>
|
||||
|
||||
<sequenceFlow sourceRef="satisfactionSurvey" targetRef="end"/>
|
||||
<endEvent id="end" name="End Ticket"/>
|
||||
<sequenceFlow id="sequenceFlow-0c15524d-972d-4287-a905-582a2abbbcaa"
|
||||
sourceRef="satisfactionSurvey" targetRef="end"></sequenceFlow>
|
||||
<endEvent id="end" name="End Ticket"></endEvent>
|
||||
</process>
|
||||
</definitions>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_groupTicketProcess">
|
||||
<bpmndi:BPMNPlane bpmnElement="groupTicketProcess" id="BPMNPlane_groupTicketProcess">
|
||||
<bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
|
||||
<omgdc:Bounds height="30.0" width="30.0" x="100.0" y="115.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="evaluatePriority" id="BPMNShape_evaluatePriority">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="180.0" y="100.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="assignToGroup" id="BPMNShape_assignToGroup">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="330.0" y="180.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="slaTimer" id="BPMNShape_slaTimer">
|
||||
<omgdc:Bounds height="31.0" width="31.0" x="395.20710678118655"
|
||||
y="225.20710678118655"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="slaNotification" id="BPMNShape_slaNotification">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="180.0" y="260.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="customerVerify" id="BPMNShape_customerVerify">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="480.0" y="180.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="satisfactionSurvey" id="BPMNShape_satisfactionSurvey">
|
||||
<omgdc:Bounds height="60.0" width="100.0" x="630.0" y="180.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
|
||||
<omgdc:Bounds height="28.0" width="28.0" x="780.0" y="195.0"></omgdc:Bounds>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-bc10ee85-13ff-41cb-9801-e3312a63a5c9"
|
||||
id="BPMNEdge_sequenceFlow-bc10ee85-13ff-41cb-9801-e3312a63a5c9"
|
||||
flowable:sourceDockerX="15.0" flowable:sourceDockerY="15.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="129.9499750044467" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="142.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="142.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="179.99999999997692" y="130.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-9a5f6c89-bdd8-428f-b877-3cabfc132b2a"
|
||||
id="BPMNEdge_sequenceFlow-9a5f6c89-bdd8-428f-b877-3cabfc132b2a"
|
||||
flowable:sourceDockerX="15.500000000000002"
|
||||
flowable:sourceDockerY="15.500000000000002" flowable:targetDockerX="50.0"
|
||||
flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="410.5843666811879" y="256.1566324820013"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="410.0" y="330.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="230.0" y="330.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="230.0" y="319.95"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-07427c3a-696b-4964-b0c6-2c22ad9a0384"
|
||||
id="BPMNEdge_sequenceFlow-07427c3a-696b-4964-b0c6-2c22ad9a0384"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="279.95000000000005" y="290.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="292.0" y="290.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="292.0" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="330.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-c405b332-2cc3-4866-842b-c4b0d82f653d"
|
||||
id="BPMNEdge_sequenceFlow-c405b332-2cc3-4866-842b-c4b0d82f653d"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="579.9499999999581" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="630.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-dbd150a1-5d93-4c09-aec6-11f47705eb1e"
|
||||
id="BPMNEdge_sequenceFlow-dbd150a1-5d93-4c09-aec6-11f47705eb1e"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="429.9499999999581" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="480.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-0c15524d-972d-4287-a905-582a2abbbcaa"
|
||||
id="BPMNEdge_sequenceFlow-0c15524d-972d-4287-a905-582a2abbbcaa"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
|
||||
<omgdi:waypoint x="729.9499999999977" y="209.56140350877192"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="780.0005248012809" y="209.1223639291296"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow-d42ed887-6f67-4060-8889-8fabec33506b"
|
||||
id="BPMNEdge_sequenceFlow-d42ed887-6f67-4060-8889-8fabec33506b"
|
||||
flowable:sourceDockerX="50.0" flowable:sourceDockerY="30.0"
|
||||
flowable:targetDockerX="50.0" flowable:targetDockerY="30.0">
|
||||
<omgdi:waypoint x="279.95000000000005" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="292.0" y="130.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="292.0" y="210.0"></omgdi:waypoint>
|
||||
<omgdi:waypoint x="330.0" y="210.0"></omgdi:waypoint>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</definitions>
|
||||
Reference in New Issue
Block a user