feat(ops): 添加工单到岗语音播报
1. VoiceBuilder 新增 buildOrderArrived() 方法 2. 到岗时播报"已到达作业区域,请开始清洁作业" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
This commit is contained in:
@@ -278,6 +278,21 @@ public class CleanNotificationConstants {
|
||||
return String.format(VoiceTemplate.ORDER_CONFIRMED, areaName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建工单到岗播报
|
||||
*
|
||||
* @param order 工单信息
|
||||
* @return 播报内容
|
||||
*/
|
||||
public static String buildOrderArrived(OpsOrderDO order) {
|
||||
if (order == null) {
|
||||
return VoiceTemplate.ORDER_ARRIVED_SHORT;
|
||||
}
|
||||
|
||||
String areaName = order.getLocation() != null ? order.getLocation() : DEFAULT_AREA_NAME;
|
||||
return String.format(VoiceTemplate.ORDER_ARRIVED, areaName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建待办增加播报
|
||||
*
|
||||
|
||||
@@ -298,6 +298,12 @@ public class CleanOrderEventListener {
|
||||
public void handleArrived(OrderStateChangedEvent event) {
|
||||
Long orderId = event.getOrderId();
|
||||
|
||||
// 获取 deviceId(优先从 payload 获取,其次使用 operatorId)
|
||||
Long deviceId = event.getPayloadLong("deviceId");
|
||||
if (deviceId == null) {
|
||||
deviceId = event.getOperatorId();
|
||||
}
|
||||
|
||||
// 1. 记录到岗时间到扩展表
|
||||
OpsOrderCleanExtDO updateObj = new OpsOrderCleanExtDO();
|
||||
updateObj.setOpsOrderId(orderId);
|
||||
@@ -307,7 +313,14 @@ public class CleanOrderEventListener {
|
||||
// 2. 计算并更新响应时长(下发→到岗,排除暂停时间)
|
||||
updateResponseSeconds(orderId);
|
||||
|
||||
log.info("[CleanOrderEventListener] 到岗时间已记录: orderId={}", orderId);
|
||||
// 3. 语音播报提醒开始作业
|
||||
if (deviceId != null) {
|
||||
OpsOrderDO order = opsOrderMapper.selectById(orderId);
|
||||
String arrivedMessage = CleanNotificationConstants.VoiceBuilder.buildOrderArrived(order);
|
||||
playVoice(deviceId, arrivedMessage);
|
||||
}
|
||||
|
||||
log.info("[CleanOrderEventListener] 到岗时间已记录: orderId={}, deviceId={}", orderId, deviceId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user