From 1f55ec0b375f1df85bddbc611137afeffca2d1d1 Mon Sep 17 00:00:00 2001 From: jack ning Date: Tue, 18 Feb 2025 11:31:44 +0800 Subject: [PATCH] update modules/ticket: mod 4 files --- .../bytedesk/ticket/consts/TicketConsts.java | 14 +++++- .../ticket/ticket/TicketEventListener.java | 19 ++++---- .../ticket/ticket/TicketRestService.java | 8 ++-- .../bytedesk/ticket/ticket/TicketService.java | 46 +++++++++---------- 4 files changed, 51 insertions(+), 36 deletions(-) diff --git a/modules/ticket/src/main/java/com/bytedesk/ticket/consts/TicketConsts.java b/modules/ticket/src/main/java/com/bytedesk/ticket/consts/TicketConsts.java index 087cc8ac6b..81dbb1c7ed 100644 --- a/modules/ticket/src/main/java/com/bytedesk/ticket/consts/TicketConsts.java +++ b/modules/ticket/src/main/java/com/bytedesk/ticket/consts/TicketConsts.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2025-01-23 15:00:11 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-02-17 15:25:08 + * @LastEditTime: 2025-02-18 11:28:12 * @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. @@ -40,6 +40,18 @@ public class TicketConsts { // 未分配 public static final String TICKET_FILTER_UNASSIGNED = "UNASSIGNED"; + // task definition key + public static final String TICKET_TASK_DEFINITION_ASSIGN_TO_GROUP = "assignToGroup"; + + // variables + public static final String TICKET_VARIABLE_TICKET_UID = "ticketUid"; + + public static final String TICKET_VARIABLE_WORKGROUP_UID = "workgroupUid"; + + public static final String TICKET_VARIABLE_REPORTER_UID = "reporterUid"; + + public static final String TICKET_VARIABLE_ORGUID = "orgUid"; + } diff --git a/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketEventListener.java b/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketEventListener.java index a1af12ce99..03028f568d 100644 --- a/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketEventListener.java +++ b/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketEventListener.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2025-01-23 14:52:45 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-02-18 10:59:56 + * @LastEditTime: 2025-02-18 11:25:35 * @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. @@ -57,10 +57,10 @@ public class TicketEventListener { // 启动工单流程 Map variables = new HashMap<>(); - variables.put("ticketUid", ticket.getUid()); - variables.put("workgroupUid", JSON.parseObject(ticket.getWorkgroup(), UserProtobuf.class).getUid()); - variables.put("reporterUid", JSON.parseObject(ticket.getReporter(), UserProtobuf.class).getUid()); - variables.put("orgUid", ticket.getOrgUid()); + variables.put(TicketConsts.TICKET_VARIABLE_TICKET_UID, ticket.getUid()); + variables.put(TicketConsts.TICKET_VARIABLE_WORKGROUP_UID, JSON.parseObject(ticket.getWorkgroup(), UserProtobuf.class).getUid()); + variables.put(TicketConsts.TICKET_VARIABLE_REPORTER_UID, JSON.parseObject(ticket.getReporter(), UserProtobuf.class).getUid()); + variables.put(TicketConsts.TICKET_VARIABLE_ORGUID, ticket.getOrgUid()); // 根据不同优先级设置不同的SLA时间 switch (ticket.getPriority()) { @@ -104,9 +104,9 @@ public class TicketEventListener { if (StringUtils.hasText(ticketEntity.getAssignee())) { Task task = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) - .taskDefinitionKey("assignToGroup") - .processVariableValueEquals("ticketUid", ticketEntity.getUid()) - .processVariableValueEquals("orgUid", ticketEntity.getOrgUid()) + .taskDefinitionKey(TicketConsts.TICKET_TASK_DEFINITION_ASSIGN_TO_GROUP) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_TICKET_UID, ticketEntity.getUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, ticketEntity.getOrgUid()) .singleResult(); if (task != null) { taskService.claim(task.getId(), JSON.parseObject(ticketEntity.getAssignee(), UserProtobuf.class).getUid()); @@ -135,6 +135,9 @@ public class TicketEventListener { @EventListener public void handleTicketUpdateWorkgroupEvent(TicketUpdateWorkgroupEvent event) { log.info("TicketEventListener handleTicketUpdateWorkgroupEvent: {}", event); + TicketEntity ticket = event.getTicket(); + // 更新当前技能组workgroupUid + runtimeService.setVariable(ticket.getProcessInstanceId(), TicketConsts.TICKET_VARIABLE_WORKGROUP_UID, event.getNewWorkgroupUid()); } // 监听上传BPMN流程图 diff --git a/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketRestService.java b/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketRestService.java index 2e44f65ce8..f36e0ecdc4 100644 --- a/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketRestService.java +++ b/modules/ticket/src/main/java/com/bytedesk/ticket/ticket/TicketRestService.java @@ -270,8 +270,8 @@ public class TicketRestService extends BaseRestService tasks = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .orderByTaskCreateTime().desc() .listPage(pageable.getPageNumber(), pageable.getPageSize()); long total = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .orderByTaskCreateTime().desc() .count(); List responses = tasks.stream() .map(task -> { - String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), "ticketUid"); + String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), TicketConsts.TICKET_VARIABLE_TICKET_UID); Optional ticket = ticketRepository.findByUid(ticketUid); if (ticket.isPresent()) { return TicketConvertUtils.convertToResponse(ticket.get()); @@ -94,18 +94,18 @@ public class TicketService { List tasks = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) .taskAssignee(request.getReporterUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .listPage(pageable.getPageNumber(), pageable.getPageSize()); long total = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) .taskAssignee(request.getReporterUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .count(); List responses = tasks.stream() .map(task -> { - String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), "ticketUid"); + String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), TicketConsts.TICKET_VARIABLE_TICKET_UID); Optional ticket = ticketRepository.findByUid(ticketUid); if (ticket.isPresent()) { return TicketConvertUtils.convertToResponse(ticket.get()); @@ -127,22 +127,22 @@ public class TicketService { List tasks = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) .taskAssignee(request.getAssigneeUid()) - .taskDefinitionKey("assignToGroup") - .processVariableValueEquals("orgUid", request.getOrgUid()) + .taskDefinitionKey(TicketConsts.TICKET_TASK_DEFINITION_ASSIGN_TO_GROUP) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .orderByTaskCreateTime().desc() .listPage(pageable.getPageNumber(), pageable.getPageSize()); long total = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) .taskAssignee(request.getAssigneeUid()) - .taskDefinitionKey("assignToGroup") - .processVariableValueEquals("orgUid", request.getOrgUid()) + .taskDefinitionKey(TicketConsts.TICKET_TASK_DEFINITION_ASSIGN_TO_GROUP) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .orderByTaskCreateTime().desc() .count(); List responses = tasks.stream() .map(task -> { - String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), "ticketUid"); + String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), TicketConsts.TICKET_VARIABLE_TICKET_UID); Optional ticket = ticketRepository.findByUid(ticketUid); if (ticket.isPresent()) { return TicketConvertUtils.convertToResponse(ticket.get()); @@ -164,18 +164,18 @@ public class TicketService { List tasks = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) .taskCandidateGroup(request.getWorkgroupUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .listPage(pageable.getPageNumber(), pageable.getPageSize()); long total = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) .taskCandidateGroup(request.getWorkgroupUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .count(); List responses = tasks.stream() .map(task -> { - String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), "ticketUid"); + String ticketUid = (String) runtimeService.getVariable(task.getExecutionId(), TicketConsts.TICKET_VARIABLE_TICKET_UID); Optional ticket = ticketRepository.findByUid(ticketUid); if (ticket.isPresent()) { return TicketConvertUtils.convertToResponse(ticket.get()); @@ -196,9 +196,9 @@ public class TicketService { public void claimTicket(TicketRequest request) { Task task = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) - .taskDefinitionKey("assignToGroup") - .processVariableValueEquals("ticketUid", request.getUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .taskDefinitionKey(TicketConsts.TICKET_TASK_DEFINITION_ASSIGN_TO_GROUP) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_TICKET_UID, request.getUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .singleResult(); if (task != null) { @@ -231,10 +231,10 @@ public class TicketService { public void unclaimTicket(TicketRequest request) { Task task = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) - .taskDefinitionKey("assignToGroup") + .taskDefinitionKey(TicketConsts.TICKET_TASK_DEFINITION_ASSIGN_TO_GROUP) .taskAssignee(request.getAssigneeUid()) - .processVariableValueEquals("ticketUid", request.getUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_TICKET_UID, request.getUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .singleResult(); if (task != null) { @@ -258,8 +258,8 @@ public class TicketService { public void completeTicket(TicketRequest request) { Task task = taskService.createTaskQuery() .processDefinitionKey(TicketConsts.TICKET_PROCESS_KEY_GROUP_SIMPLE) - .processVariableValueEquals("ticketUid", request.getUid()) - .processVariableValueEquals("orgUid", request.getOrgUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_TICKET_UID, request.getUid()) + .processVariableValueEquals(TicketConsts.TICKET_VARIABLE_ORGUID, request.getOrgUid()) .singleResult(); if (task != null) {