From 6576a240f36adb22a2ade354946babc0b18f0466 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 16 四月 2026 17:38:27 +0800
Subject: [PATCH] 站点信号

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/tv/TvRcsStationPollService.java |   65 ++++++++++++++++++++++++++++----
 1 files changed, 57 insertions(+), 8 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/tv/TvRcsStationPollService.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/tv/TvRcsStationPollService.java
index 29ea3a0..59f95ab 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/tv/TvRcsStationPollService.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/tv/TvRcsStationPollService.java
@@ -23,11 +23,12 @@
 import java.util.Map;
 
 /**
- * 瀹氭椂锛欸ET RCS /station/getTaskNo锛汸OST RCS /station/getError锛涗换鍔″彿瀛樺湪鏃惰皟 WMS queryTask 鍚堝苟鏂欑涓庣墿鏂欐槑缁嗚繘 Redis
+ * 瀹氭椂锛欸ET RCS /cv/station/getTaskNo锛汸OST RCS /cv/station/getError锛涗换鍔″彿瀛樺湪鏃惰皟 WMS queryTask 鍚堝苟鏂欑涓庣墿鏂欐槑缁嗚繘 Redis
  */
 @Slf4j
 @Service
 public class TvRcsStationPollService {
+    private static final int MAX_LOG_LEN = 2000;
 
     @Resource
     private RestTemplate restTemplate;
@@ -46,7 +47,7 @@
         String stationId = pollProperties.getTaskNoStationId();
         if (StringUtils.hasText(pollProperties.getTaskNoPollUrl())) {
             try {
-                String raw = restTemplate.getForObject(pollProperties.getTaskNoPollUrl(), String.class);
+                String raw = pollTaskNoRaw();
                 String taskNo = applyTaskNoResponse(raw, stationId);
                 enrichSnapshotFromWms(stationId, taskNo);
             } catch (RestClientException e) {
@@ -118,17 +119,54 @@
     }
 
     private String pollErrorRaw() throws Exception {
+        String url = pollProperties.getErrorPollUrl();
         if (pollProperties.isErrorPollUsePost()) {
-            ObjectNode body = objectMapper.createObjectNode();
-            body.put("staNo", pollProperties.getErrorStationId());
+            String reqBody = objectMapper.writeValueAsString(createStationBody(pollProperties.getErrorStationId()));
             HttpHeaders headers = new HttpHeaders();
             headers.setContentType(MediaType.APPLICATION_JSON);
-            HttpEntity<String> entity = new HttpEntity<>(objectMapper.writeValueAsString(body), headers);
+            HttpEntity<String> entity = new HttpEntity<>(reqBody, headers);
+            log.info("RCS绔欑偣杞璇锋眰 POST /cv/station/getError url={} body={}", url, trimForLog(reqBody));
             ResponseEntity<String> resp = restTemplate.exchange(
-                    pollProperties.getErrorPollUrl(), HttpMethod.POST, entity, String.class);
-            return resp.getBody();
+                    url, HttpMethod.POST, entity, String.class);
+            String respBody = resp.getBody();
+            log.info("RCS绔欑偣杞鍝嶅簲 POST /cv/station/getError body={}", trimForLog(respBody));
+            return respBody;
         }
-        return restTemplate.getForObject(pollProperties.getErrorPollUrl(), String.class);
+        log.info("RCS绔欑偣杞璇锋眰 GET /cv/station/getError url={}", url);
+        String raw = restTemplate.getForObject(url, String.class);
+        log.info("RCS绔欑偣杞鍝嶅簲 GET /cv/station/getError body={}", trimForLog(raw));
+        return raw;
+    }
+
+    private String pollTaskNoRaw() throws Exception {
+        String url = pollProperties.getTaskNoPollUrl();
+        if (pollProperties.isTaskNoPollUsePost()) {
+            String reqBody = objectMapper.writeValueAsString(createStationBody(pollProperties.getTaskNoStationId()));
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            HttpEntity<String> entity = new HttpEntity<>(reqBody, headers);
+            // log.info("RCS绔欑偣杞璇锋眰 GET /cv/station/getTaskNo url={}", url);
+            log.info("RCS绔欑偣杞璇锋眰 POST /cv/station/getTaskNo url={} body={}", url, trimForLog(reqBody));
+            ResponseEntity<String> resp = restTemplate.exchange(
+                    url, HttpMethod.POST, entity, String.class);
+            String respBody = resp.getBody();
+            // log.info("RCS绔欑偣杞鍝嶅簲 GET /cv/station/getTaskNo body={}", trimForLog(raw));
+            log.info("RCS绔欑偣杞鍝嶅簲 POST /cv/station/getTaskNo body={}", trimForLog(respBody));
+            return respBody;
+        }
+        log.info("RCS绔欑偣杞璇锋眰 GET /cv/station/getTaskNo url={}", url);
+        String raw = restTemplate.getForObject(url, String.class);
+        log.info("RCS绔欑偣杞鍝嶅簲 GET /cv/station/getTaskNo body={}", trimForLog(raw));
+        return raw;
+    }
+
+    private ObjectNode createStationBody(String stationId) {
+        ObjectNode body = objectMapper.createObjectNode();
+        if (StringUtils.hasText(stationId)) {
+            body.put("stationId", stationId);
+            body.put("staNo", stationId);
+        }
+        return body;
     }
 
     /** 鍐欏叆 tvRcs 浠诲姟鍙� Hash锛涜繑鍥炶В鏋愬嚭鐨� taskNo锛堢敤浜� WMS 鍚堝苟锛� */
@@ -291,4 +329,15 @@
         }
         return arr;
     }
+
+    private static String trimForLog(String raw) {
+        if (raw == null) {
+            return "null";
+        }
+        String text = raw.trim();
+        if (text.length() <= MAX_LOG_LEN) {
+            return text;
+        }
+        return text.substring(0, MAX_LOG_LEN) + "...(truncated)";
+    }
 }

--
Gitblit v1.9.1