From ff86e3738197b49ed20910501e1fe3f356e2a6e0 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 08 五月 2026 11:51:05 +0800
Subject: [PATCH] 重发优化

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/RcsTvCallbackService.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/RcsTvCallbackService.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/RcsTvCallbackService.java
index e47f443..e515c6e 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/RcsTvCallbackService.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/RcsTvCallbackService.java
@@ -10,6 +10,9 @@
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -64,7 +67,8 @@
                 continue;
             }
             if (StringUtils.hasText(staNo)) {
-                parts.add("[" + staNo + "]" + msg);
+                // 鍏ㄨ鎷彿鍓嶇紑锛岄伩鍏嶇數瑙嗘満绔� Redis 鍊艰鍒�
+                parts.add("銆�" + staNo + "銆�" + msg);
             } else {
                 parts.add(msg);
             }
@@ -79,6 +83,38 @@
         return rcsOk(value);
     }
 
+    /** AGV 寮傚父鏁存鍐欏叆 tvManualErrorMsg锛屽悗娆¤鐩栧墠娆� */
+    public void publishAgvErrorToTv(JsonNode body) {
+        if (body == null || !body.isObject()) {
+            return;
+        }
+        String agvId = text(body.get("agvId"));
+        String faultName = text(body.get("faultName"));
+        String faultNo = text(body.get("faultNo"));
+        if ("undefined".equalsIgnoreCase(faultName)) {
+            faultName = "";
+        }
+        String prefix = StringUtils.hasText(agvId) ? ("銆怉GV" + agvId + "銆�") : "銆怉GV銆�";
+        String desc = StringUtils.hasText(faultName) ? faultName : "寮傚父";
+        StringBuilder sb = new StringBuilder(prefix).append(desc);
+        if (StringUtils.hasText(faultNo)) {
+            sb.append(" ").append(faultNo);
+        }
+        JsonNode tsNode = body.get("timestamp");
+        if (tsNode != null && tsNode.isNumber()) {
+            long ts = tsNode.asLong();
+            if (ts > 0) {
+                sb.append(" ")
+                        .append(Instant.ofEpochMilli(ts)
+                                .atZone(ZoneId.systemDefault())
+                                .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+            }
+        }
+        String value = sb.toString();
+        tvMonitorStringRedisTemplate.opsForValue().set(TvMonitorRedisKeys.TV_MANUAL_ERROR_MSG, value);
+        log.info("AGV 鎶ヨ宸插啓鍏� Redis tvManualErrorMsg agvId={}", agvId);
+    }
+
     private static JsonNode resolveErrorArray(JsonNode body) {
         if (body == null || body.isNull()) {
             return null;

--
Gitblit v1.9.1