fix(environment): 对账修复后同步清理 TTS 循环播报
- BadgeDeviceStatusSyncJob 在修复设备工单一致性后额外停止 TTS 循环\n- 避免工单已清除但语音循环标记残留,导致设备继续播报\n- 对 TTS 清理失败增加 warn 日志,避免影响主对账流程
This commit is contained in:
@@ -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;
|
||||
|
||||
/**
|
||||
* 执行全量对账
|
||||
* <p>
|
||||
@@ -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 在线/离线状态对账
|
||||
|
||||
Reference in New Issue
Block a user