From da00f082621df7b7ec6f08354c6dea005dce73cf Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 31 Mar 2026 22:58:40 +0800 Subject: [PATCH] =?UTF-8?q?fix(environment):=20=E5=AF=B9=E8=B4=A6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=90=8E=E5=90=8C=E6=AD=A5=E6=B8=85=E7=90=86=20TTS=20?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E6=92=AD=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BadgeDeviceStatusSyncJob 在修复设备工单一致性后额外停止 TTS 循环\n- 避免工单已清除但语音循环标记残留,导致设备继续播报\n- 对 TTS 清理失败增加 warn 日志,避免影响主对账流程 --- .../ops/environment/job/BadgeDeviceStatusSyncJob.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusSyncJob.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusSyncJob.java index 2005e13..fdb052e 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusSyncJob.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/job/BadgeDeviceStatusSyncJob.java @@ -12,6 +12,7 @@ import com.viewsh.module.ops.dal.mysql.area.OpsAreaDeviceRelationMapper; import com.viewsh.module.ops.enums.BadgeDeviceStatusEnum; import com.viewsh.module.ops.environment.integration.dto.IotDeviceStatusChangedEventDTO; import com.viewsh.module.ops.environment.service.badge.BadgeDeviceStatusService; +import com.viewsh.module.ops.environment.service.voice.TtsQueueConsumer; import com.xxl.job.core.handler.annotation.XxlJob; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -52,6 +53,9 @@ public class BadgeDeviceStatusSyncJob { @Resource private BadgeDeviceStatusService badgeDeviceStatusService; + @Resource + private TtsQueueConsumer ttsQueueConsumer; + /** * 执行全量对账 *

@@ -122,6 +126,12 @@ public class BadgeDeviceStatusSyncJob { boolean orderRepaired = badgeDeviceStatusService.repairDeviceOrderConsistency(iotStatus.getDeviceId()); if (orderRepaired) { orderRepairedCount++; + // 工单已清除,同时清理可能残留的 TTS 循环播报标记 + try { + ttsQueueConsumer.stopLoop(iotStatus.getDeviceId()); + } catch (Exception e) { + log.warn("[SyncJob] 清理TTS循环播报失败: deviceId={}", iotStatus.getDeviceId(), e); + } } // 4b. IoT 在线/离线状态对账