From fecaa28bc746437c185c18058e4d51459af0e442 Mon Sep 17 00:00:00 2001 From: lzh Date: Sun, 1 Feb 2026 01:49:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E4=BC=98=E5=8C=96=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2=E8=AF=AD=E9=9F=B3=E6=92=AD=E6=8A=A5?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 播报当前工单作业区域(替代工单标题) - 播报剩余待办工单数量 - 简化播报文案,更人性化 Co-Authored-By: Claude Opus 4.5 --- .../constants/CleanNotificationConstants.java | 33 +++++++++++++------ .../consumer/CleanOrderAuditEventHandler.java | 8 ++--- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/constants/CleanNotificationConstants.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/constants/CleanNotificationConstants.java index ce6636f..551f84e 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/constants/CleanNotificationConstants.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/constants/CleanNotificationConstants.java @@ -174,9 +174,9 @@ public class CleanNotificationConstants { /** * 按键查询播报(有工单时) - * 参数: {orderTitle} - 当前工单标题 + * 参数: {areaName} - 作业区域 */ - public static final String QUERY_HAS_ORDER = "当前工单:%s"; + public static final String QUERY_HAS_ORDER = "当前工单在%s"; /** * 按键查询播报(无工单时) @@ -187,7 +187,13 @@ public class CleanNotificationConstants { * 按键查询播报(待办数量提示) * 参数: {count} - 待办数量 */ - public static final String QUEUE_COUNT = "您还有%d个待办工单"; + public static final String QUEUE_COUNT = "还有%d个待办"; + + /** + * 按键查询播报(区域+待办数量) + * 参数: {areaName} - 作业区域, {count} - 待办数量 + */ + public static final String QUERY_AREA_AND_PENDING = "当前工单在%s,还有%d个待办"; } /** @@ -350,15 +356,22 @@ public class CleanNotificationConstants { /** * 构建按键查询播报 * - * @param currentOrderTitle 当前工单标题 - * @param pendingCount 待办数量(不含当前工单) + * @param areaName 当前工单作业区域 + * @param pendingCount 待办数量(不含当前工单) * @return 播报内容 */ - public static String buildQuery(String currentOrderTitle, int pendingCount) { - // 优先显示当前正在处理的工单 - if (currentOrderTitle != null && !currentOrderTitle.isEmpty()) { - String title = truncateTitle(currentOrderTitle); - return String.format(VoiceTemplate.QUERY_HAS_ORDER, title); + public static String buildQuery(String areaName, int pendingCount) { + // 处理区域名称 + String name = (areaName != null && !areaName.isEmpty()) ? areaName : DEFAULT_AREA_NAME; + + // 有当前工单 + if (name != null && !name.isEmpty()) { + if (pendingCount > 0) { + // 当前工单 + 待办数量 + return String.format(VoiceTemplate.QUERY_AREA_AND_PENDING, name, pendingCount); + } + // 只有当前工单,无待办 + return String.format(VoiceTemplate.QUERY_HAS_ORDER, name); } // 没有当前工单,显示待办数量 if (pendingCount > 0) { diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/integration/consumer/CleanOrderAuditEventHandler.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/integration/consumer/CleanOrderAuditEventHandler.java index cb582f9..4aa4ff2 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/integration/consumer/CleanOrderAuditEventHandler.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/integration/consumer/CleanOrderAuditEventHandler.java @@ -159,7 +159,7 @@ public class CleanOrderAuditEventHandler implements RocketMQListener { } // 1. 获取当前正在处理的工单(DISPATCHED, CONFIRMED, ARRIVED 状态) - String currentOrderTitle = null; + String currentAreaName = null; OpsOrderDO currentOrder = opsOrderMapper.selectOne(new LambdaQueryWrapperX() .eq(OpsOrderDO::getAssigneeDeviceId, deviceId) .in(OpsOrderDO::getStatus, Arrays.asList( @@ -169,8 +169,8 @@ public class CleanOrderAuditEventHandler implements RocketMQListener { .orderByAsc(OpsOrderDO::getId) .last("LIMIT 1")); - if (currentOrder != null && currentOrder.getTitle() != null) { - currentOrderTitle = currentOrder.getTitle(); + if (currentOrder != null && currentOrder.getLocation() != null) { + currentAreaName = currentOrder.getLocation(); } // 2. 查询待办工单数量(QUEUED 状态,不含当前处理中工单) @@ -179,7 +179,7 @@ public class CleanOrderAuditEventHandler implements RocketMQListener { .eq(OpsOrderDO::getStatus, WorkOrderStatusEnum.QUEUED.getStatus())); // 3. 构建 TTS 文本(使用统一模板构建器) - String ttsText = CleanNotificationConstants.VoiceBuilder.buildQuery(currentOrderTitle, pendingCount.intValue()); + String ttsText = CleanNotificationConstants.VoiceBuilder.buildQuery(currentAreaName, pendingCount.intValue()); // 4. 下发 TTS Long orderId = currentOrder != null ? currentOrder.getId() : null;