11
This commit is contained in:
@@ -93,7 +93,7 @@ class DeviceWorkStatusNotifier {
|
||||
commandType: cmd.command_type || cmd.type || '',
|
||||
commandParams: cmd.command_params || cmd.params || {}
|
||||
};
|
||||
}
|
||||
}
|
||||
// 如果有当前执行的任务,显示任务状态
|
||||
else if (taskStatusSummary.currentTask) {
|
||||
const task = taskStatusSummary.currentTask;
|
||||
@@ -109,6 +109,11 @@ class DeviceWorkStatusNotifier {
|
||||
};
|
||||
}
|
||||
|
||||
// 如果有等待消息(投递间隔等待等),添加到工作状态
|
||||
if (options.waitingMessage) {
|
||||
workStatus.waitingMessage = options.waitingMessage;
|
||||
}
|
||||
|
||||
// 格式化显示文案(服务端统一处理,客户端直接显示)
|
||||
workStatus.displayText = this._formatDisplayText(workStatus);
|
||||
|
||||
@@ -141,24 +146,37 @@ class DeviceWorkStatusNotifier {
|
||||
// 通过MQTT发布设备工作状态
|
||||
// 主题格式: device_work_status_{sn_code}
|
||||
const topic = `device_work_status_${sn_code}`;
|
||||
const message = JSON.stringify({
|
||||
const messagePayload = {
|
||||
action: 'device_work_status',
|
||||
data: workStatus,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
};
|
||||
const message = JSON.stringify(messagePayload);
|
||||
|
||||
await mqttClient.publish(topic, message);
|
||||
|
||||
|
||||
// 输出详细日志
|
||||
console.log(`[设备工作状态] 已推送到 ${sn_code}:`);
|
||||
console.log(` - Topic: ${topic}`);
|
||||
console.log(` - 显示文本: ${workStatus.displayText}`);
|
||||
|
||||
if (workStatus.currentActivity) {
|
||||
const activity = workStatus.currentActivity;
|
||||
const activityInfo = activity.type === 'command'
|
||||
? `指令[${activity.name}]`
|
||||
const activityInfo = activity.type === 'command'
|
||||
? `指令[${activity.name}]`
|
||||
: `任务[${activity.name}]`;
|
||||
console.log(`[设备工作状态] 已推送到 ${sn_code}: ${activityInfo} - ${workStatus.displayText}`);
|
||||
console.log(` - 当前活动: ${activityInfo}`);
|
||||
} else {
|
||||
console.log(`[设备工作状态] 已推送到 ${sn_code}: ${workStatus.displayText}`);
|
||||
console.log(` - 当前活动: 无`);
|
||||
}
|
||||
|
||||
if (workStatus.waitingMessage) {
|
||||
console.log(` - 等待消息: ${workStatus.waitingMessage.message}`);
|
||||
}
|
||||
|
||||
console.log(` - 待执行: ${workStatus.pendingQueue.totalCount}个`);
|
||||
console.log(` - 下次执行: ${workStatus.pendingQueue.nextExecuteTimeText}`);
|
||||
console.log(` - 消息大小: ${message.length} 字节`);
|
||||
} catch (error) {
|
||||
// 通知失败不影响任务执行,只记录日志
|
||||
console.warn(`[设备工作状态] 推送失败:`, error.message);
|
||||
@@ -235,7 +253,7 @@ class DeviceWorkStatusNotifier {
|
||||
*/
|
||||
_formatDisplayText(workStatus) {
|
||||
const parts = [];
|
||||
|
||||
|
||||
// 当前活动
|
||||
if (workStatus.currentActivity) {
|
||||
const activity = workStatus.currentActivity;
|
||||
@@ -269,13 +287,18 @@ class DeviceWorkStatusNotifier {
|
||||
} else {
|
||||
parts.push('当前活动: 无');
|
||||
}
|
||||
|
||||
|
||||
// 如果有等待消息,添加到显示文本
|
||||
if (workStatus.waitingMessage) {
|
||||
parts.push(workStatus.waitingMessage.message);
|
||||
}
|
||||
|
||||
// 待执行数量
|
||||
parts.push(`待执行: ${workStatus.pendingQueue.totalCount}个`);
|
||||
|
||||
|
||||
// 下次执行时间
|
||||
parts.push(`下次执行: ${workStatus.pendingQueue.nextExecuteTimeText || '暂无'}`);
|
||||
|
||||
|
||||
return parts.join(' | ');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user