refactor(ops): 更新 EventHandler 使用新的服务入口
更新各事件处理器以使用重构后的服务: - CleanOrderEventListener: 使用 VoiceBroadcastService - CleanOrderAuditEventHandler: 使用 VoiceBroadcastService - CleanOrderConfirmEventHandler: 使用 VoiceBroadcastService - BadgeDeviceStatusEventHandler: 更新 import 路径至 environment 模块 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,7 @@ import com.viewsh.module.ops.infrastructure.log.context.BusinessLogContext;
|
||||
import com.viewsh.module.ops.infrastructure.log.enumeration.LogScope;
|
||||
import com.viewsh.module.ops.infrastructure.log.enumeration.LogType;
|
||||
import com.viewsh.module.ops.infrastructure.log.publisher.BusinessLogPublisher;
|
||||
import com.viewsh.module.iot.api.device.IotDeviceControlApi;
|
||||
import com.viewsh.module.iot.api.device.dto.IotDeviceServiceInvokeReqDTO;
|
||||
import com.viewsh.module.ops.environment.service.voice.VoiceBroadcastService;
|
||||
import com.viewsh.module.ops.dal.dataobject.workorder.OpsOrderDO;
|
||||
import com.viewsh.module.ops.dal.mysql.workorder.OpsOrderMapper;
|
||||
import com.viewsh.module.ops.enums.WorkOrderStatusEnum;
|
||||
@@ -80,7 +79,7 @@ public class CleanOrderAuditEventHandler implements RocketMQListener<String> {
|
||||
private BusinessLogPublisher businessLogPublisher;
|
||||
|
||||
@Resource
|
||||
private IotDeviceControlApi iotDeviceControlApi;
|
||||
private VoiceBroadcastService voiceBroadcastService;
|
||||
|
||||
@Resource
|
||||
private OpsOrderMapper opsOrderMapper;
|
||||
@@ -231,28 +230,8 @@ public class CleanOrderAuditEventHandler implements RocketMQListener<String> {
|
||||
*/
|
||||
private void sendTts(Long deviceId, String text) {
|
||||
try {
|
||||
// 1. 构建参数
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("text", text);
|
||||
params.put("volume", 80); // 默认音量 80%
|
||||
|
||||
IotDeviceServiceInvokeReqDTO reqDTO = IotDeviceServiceInvokeReqDTO.builder()
|
||||
.deviceId(deviceId)
|
||||
.identifier("playVoice") // 语音播报服务标识符
|
||||
.params(params)
|
||||
.timeoutSeconds(30)
|
||||
.build();
|
||||
|
||||
// 2. 调用 IoT 模块 RPC 接口
|
||||
var result = iotDeviceControlApi.invokeService(reqDTO);
|
||||
|
||||
if (result.getData() != null && result.getData().getSuccess()) {
|
||||
log.info("[CleanOrderAuditEventHandler] TTS 下发成功: deviceId={}, text={}", deviceId, text);
|
||||
} else {
|
||||
log.warn("[CleanOrderAuditEventHandler] TTS 下发失败: deviceId={}, error={}",
|
||||
deviceId, result.getData() != null ? result.getData().getErrorMsg() : "Unknown error");
|
||||
}
|
||||
|
||||
voiceBroadcastService.broadcast(deviceId, text, 80);
|
||||
log.info("[CleanOrderAuditEventHandler] TTS 下发成功: deviceId={}, text={}", deviceId, text);
|
||||
} catch (Exception e) {
|
||||
log.error("[CleanOrderAuditEventHandler] TTS 下发异常: deviceId={}", deviceId, e);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.viewsh.module.ops.environment.integration.consumer;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.viewsh.module.iot.api.device.IotDeviceControlApi;
|
||||
import com.viewsh.module.iot.api.device.dto.IotDeviceServiceInvokeReqDTO;
|
||||
import com.viewsh.module.ops.core.lifecycle.OrderLifecycleManager;
|
||||
import com.viewsh.module.ops.environment.service.voice.VoiceBroadcastService;
|
||||
import com.viewsh.module.ops.core.lifecycle.model.OrderTransitionRequest;
|
||||
import com.viewsh.module.ops.dal.dataobject.workorder.OpsOrderDO;
|
||||
import com.viewsh.module.ops.dal.mysql.workorder.OpsOrderMapper;
|
||||
@@ -64,7 +63,7 @@ public class CleanOrderConfirmEventHandler implements RocketMQListener<String> {
|
||||
private BusinessLogPublisher businessLogPublisher;
|
||||
|
||||
@Resource
|
||||
private IotDeviceControlApi iotDeviceControlApi;
|
||||
private VoiceBroadcastService voiceBroadcastService;
|
||||
|
||||
@Override
|
||||
public void onMessage(String message) {
|
||||
@@ -146,25 +145,8 @@ public class CleanOrderConfirmEventHandler implements RocketMQListener<String> {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("text", text);
|
||||
params.put("volume", 80);
|
||||
|
||||
IotDeviceServiceInvokeReqDTO req = IotDeviceServiceInvokeReqDTO.builder()
|
||||
.deviceId(deviceId)
|
||||
.identifier("playVoice")
|
||||
.params(params)
|
||||
.timeoutSeconds(30)
|
||||
.build();
|
||||
|
||||
var result = iotDeviceControlApi.invokeService(req);
|
||||
|
||||
if (result.getData() != null && result.getData().getSuccess()) {
|
||||
log.info("[CleanOrderConfirmEventHandler] TTS 下发成功: deviceId={}, text={}", deviceId, text);
|
||||
} else {
|
||||
log.warn("[CleanOrderConfirmEventHandler] TTS 下发失败: deviceId={}, error={}",
|
||||
deviceId, result.getData() != null ? result.getData().getErrorMsg() : "Unknown error");
|
||||
}
|
||||
voiceBroadcastService.broadcast(deviceId, text, 80);
|
||||
log.info("[CleanOrderConfirmEventHandler] TTS 下发成功: deviceId={}, text={}", deviceId, text);
|
||||
} catch (Exception e) {
|
||||
log.error("[CleanOrderConfirmEventHandler] TTS 发送失败: deviceId={}", deviceId, e);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.viewsh.module.ops.environment.integration.handler;
|
||||
|
||||
import com.viewsh.module.ops.core.badge.BadgeDeviceStatusService;
|
||||
import com.viewsh.module.ops.environment.service.badge.BadgeDeviceStatusService;
|
||||
import com.viewsh.module.ops.core.event.OrderStateChangedEvent;
|
||||
import com.viewsh.module.ops.enums.BadgeDeviceStatusEnum;
|
||||
import com.viewsh.module.ops.enums.WorkOrderStatusEnum;
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.viewsh.module.ops.environment.dal.dataobject.workorder.OpsOrderCleanE
|
||||
import com.viewsh.module.ops.environment.dal.mysql.workorder.OpsOrderCleanExtMapper;
|
||||
import com.viewsh.module.ops.environment.service.cleaner.CleanerStatusService;
|
||||
import com.viewsh.module.ops.environment.service.cleanorder.CleanOrderService;
|
||||
import com.viewsh.module.ops.environment.service.voice.VoiceBroadcastDeduplicationService;
|
||||
import com.viewsh.module.ops.environment.service.voice.VoiceBroadcastService;
|
||||
import com.viewsh.module.system.api.notify.NotifyMessageSendApi;
|
||||
import com.viewsh.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
|
||||
import jakarta.annotation.Resource;
|
||||
@@ -67,7 +67,7 @@ public class CleanOrderEventListener {
|
||||
private CleanOrderService cleanOrderService;
|
||||
|
||||
@Resource
|
||||
private VoiceBroadcastDeduplicationService voiceBroadcastDeduplicationService;
|
||||
private VoiceBroadcastService voiceBroadcastService;
|
||||
|
||||
@Resource
|
||||
private NotifyMessageSendApi notifyMessageSendApi;
|
||||
@@ -366,8 +366,9 @@ public class CleanOrderEventListener {
|
||||
try {
|
||||
log.info("[待办增加通知] cleanerId={}, queueCount={}", cleanerId, queueCount);
|
||||
|
||||
// 1. 使用去重服务合并播报
|
||||
voiceBroadcastDeduplicationService.recordAndBroadcast(cleanerId, 1, false);
|
||||
// 1. 语音播报
|
||||
String voiceMessage = CleanNotificationConstants.VoiceHelper.formatQueuedOrder(queueCount, 1);
|
||||
playVoice(cleanerId, voiceMessage);
|
||||
|
||||
// 2. 震动提醒
|
||||
vibrate(cleanerId, CleanNotificationConstants.VibrationDuration.LIGHT);
|
||||
@@ -488,7 +489,7 @@ public class CleanOrderEventListener {
|
||||
playVoice(cleanerId, CleanNotificationConstants.VoiceMessage.NEW_ORDER);
|
||||
}
|
||||
|
||||
// ==================== IoT 设备操作方法 ====================
|
||||
// ==================== IoT 设备操作<EFBFBD><EFBFBD><EFBFBD>法 ====================
|
||||
|
||||
/**
|
||||
* 语音播报
|
||||
@@ -501,15 +502,7 @@ public class CleanOrderEventListener {
|
||||
return;
|
||||
}
|
||||
|
||||
IotDeviceServiceInvokeReqDTO reqDTO = new IotDeviceServiceInvokeReqDTO();
|
||||
reqDTO.setDeviceId(deviceId);
|
||||
reqDTO.setIdentifier("playVoice");
|
||||
reqDTO.setParams(MapUtil.<String, Object>builder()
|
||||
.put("text", message)
|
||||
.put("volume", 80)
|
||||
.build());
|
||||
|
||||
iotDeviceControlApi.invokeService(reqDTO);
|
||||
voiceBroadcastService.broadcast(deviceId, message);
|
||||
log.debug("[语音播报] 调用成功: cleanerId={}, deviceId={}, message={}", cleanerId, deviceId, message);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user