From 076cd7a73eb60c86d43eda67c5625704576d44cc Mon Sep 17 00:00:00 2001
From: lbq <1065079612@qq.com>
Date: 星期二, 03 二月 2026 17:32:03 +0800
Subject: [PATCH] 实现mes空托和agv任务接口

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java |  130 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 2 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java
index 0c846f7..d6d375f 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/feign/wms/fallback/WmsServerFeignClientFallback.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.openApi.feign.wms.fallback;
 
+import com.alibaba.fastjson.JSONObject;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.openApi.entity.phyz.InventoryQueryCondition;
 import com.vincent.rsf.openApi.feign.wms.WmsServerFeignClient;
@@ -15,7 +16,132 @@
 
     @Override
     public R queryInventoryDetails(InventoryQueryCondition condition) {
-        log.error("璋冪敤WMS Server搴撳瓨鏌ヨ鏄庣粏鎺ュ彛澶辫触锛岃Е鍙戦檷绾у鐞�");
-        return R.error("鏈嶅姟璋冪敤澶辫触锛岃绋嶅悗閲嶈瘯");
+        return queryInventoryDetails(condition, null);
+    }
+
+    /**
+     * 搴撳瓨鏌ヨ鏄庣粏闄嶇骇澶勭悊锛堝甫寮傚父淇℃伅锛�
+     * @param condition 鏌ヨ鏉′欢
+     * @param throwable 寮傚父淇℃伅锛堝彲閫夛級
+     * @return 閿欒鍝嶅簲
+     */
+    public R queryInventoryDetails(InventoryQueryCondition condition, Throwable throwable) {
+        log.error("璋冪敤WMS Server搴撳瓨鏌ヨ鏄庣粏鎺ュ彛澶辫触锛岃Е鍙戦檷绾у鐞�", throwable);
+        String errorMessage = filterErrorMessage(throwable);
+        return R.error(errorMessage);
+    }
+
+    @Override
+    public R queryInventorySummary(InventoryQueryCondition condition) {
+        return queryInventorySummary(condition, null);
+    }
+
+    /**
+     * 搴撳瓨鏌ヨ姹囨�婚檷绾у鐞嗭紙甯﹀紓甯镐俊鎭級
+     * @param condition 鏌ヨ鏉′欢
+     * @param throwable 寮傚父淇℃伅锛堝彲閫夛級
+     * @return 閿欒鍝嶅簲
+     */
+    public R queryInventorySummary(InventoryQueryCondition condition, Throwable throwable) {
+        log.error("璋冪敤WMS Server搴撳瓨鏌ヨ姹囨�绘帴鍙eけ璐ワ紝瑙﹀彂闄嶇骇澶勭悊", throwable);
+        String errorMessage = filterErrorMessage(throwable);
+        return R.error(errorMessage);
+    }
+
+    @Override
+    public R callForEmptyContainers(JSONObject condition) {
+        return callForEmptyContainers(condition, null);
+    }
+
+    public R callForEmptyContainers(JSONObject condition, Throwable throwable) {
+        log.error("璋冪敤WMS Server绌烘墭鍑哄簱鎺ュ彛澶辫触锛岃Е鍙戦檷绾у鐞�", throwable);
+        String errorMessage = filterErrorMessage(throwable);
+        return R.error(errorMessage);
+    }
+
+    @Override
+    public R emptyContainerWarehousing(JSONObject condition) {
+        return emptyContainerWarehousing(condition, null);
+    }
+
+    public R emptyContainerWarehousing(JSONObject condition, Throwable throwable) {
+        log.error("璋冪敤WMS Server绌烘墭鍏ュ簱鎺ュ彛澶辫触锛岃Е鍙戦檷绾у鐞�", throwable);
+        String errorMessage = filterErrorMessage(throwable);
+        return R.error(errorMessage);
+    }
+
+    @Override
+    public R mesAddTask(JSONObject condition) {
+        return mesAddTask(condition, null);
+    }
+
+    public R mesAddTask(JSONObject condition, Throwable throwable) {
+        log.error("璋冪敤WMS Servermes涓嬪彂agv杩愯緭浠诲姟鎺ュ彛澶辫触锛岃Е鍙戦檷绾у鐞�", throwable);
+        String errorMessage = filterErrorMessage(throwable);
+        return R.error(errorMessage);
+    }
+
+    @Override
+    public R mesCancelTask(JSONObject condition) {
+        return mesCancelTask(condition, null);
+    }
+
+    public R mesCancelTask(JSONObject condition, Throwable throwable) {
+        log.error("璋冪敤WMS Servermes鍙栨秷agv杩愯緭浠诲姟鎺ュ彛澶辫触锛岃Е鍙戦檷绾у鐞�", throwable);
+        String errorMessage = filterErrorMessage(throwable);
+        return R.error(errorMessage);
+    }
+
+    /**
+     * 杩囨护閿欒娑堟伅涓殑URL锛屽彧淇濈暀閿欒绫诲瀷
+     * @param throwable 寮傚父瀵硅薄锛堝彲閫夛級
+     * @return 杩囨护鍚庣殑瀹屾暣閿欒娑堟伅锛堝寘鍚�"鏌ヨ澶辫触锛�"鍓嶇紑锛�
+     */
+    public static String filterErrorMessage(Throwable throwable) {
+        if (throwable == null) {
+            return "鏌ヨ澶辫触锛氭湇鍔¤皟鐢ㄥけ璐ワ紝璇风◢鍚庨噸璇�";
+        }
+        return filterErrorMessage(throwable.getMessage());
+    }
+
+    /**
+     * 杩囨护閿欒娑堟伅涓殑URL锛屽彧淇濈暀閿欒绫诲瀷
+     * @param errorMessage 閿欒娑堟伅瀛楃涓诧紙鍙�夛級
+     * @return 杩囨护鍚庣殑瀹屾暣閿欒娑堟伅锛堝寘鍚�"鏌ヨ澶辫触锛�"鍓嶇紑锛�
+     */
+    public static String filterErrorMessage(String errorMessage) {
+        if (errorMessage == null || errorMessage.isEmpty()) {
+            return "鏌ヨ澶辫触锛氭湭鐭ラ敊璇�";
+        }
+        
+        String filteredMessage = errorMessage;
+        
+        // 濡傛灉鍖呭惈"executing"锛岃鏄庢槸HTTP璇锋眰閿欒锛屽幓鎺塙RL閮ㄥ垎
+        if (filteredMessage.contains("executing")) {
+            int executingIndex = filteredMessage.indexOf("executing");
+            if (executingIndex > 0) {
+                // 鎻愬彇"executing"涔嬪墠鐨勯儴鍒嗭紙濡�"Read timed out"锛�
+                filteredMessage = filteredMessage.substring(0, executingIndex).trim();
+            } else {
+                // 濡傛灉"executing"鍦ㄥ紑澶达紝浣跨敤榛樿閿欒娑堟伅
+                filteredMessage = "璇锋眰瓒呮椂";
+            }
+        }
+        // 濡傛灉鍖呭惈"http://"鎴�"https://"锛屼篃灏濊瘯鍘绘帀URL閮ㄥ垎
+        else if (filteredMessage.contains("http://") || filteredMessage.contains("https://")) {
+            // 浣跨敤姝e垯琛ㄨ揪寮忓幓鎺塙RL
+            filteredMessage = filteredMessage.replaceAll("https?://[^\\s]+", "").trim();
+            if (filteredMessage.isEmpty()) {
+                filteredMessage = "璇锋眰澶辫触";
+            }
+        }
+        
+        // 濡傛灉杩囨护鍚庣殑娑堟伅涓虹┖锛屼娇鐢ㄩ粯璁ら敊璇秷鎭�
+        if (filteredMessage.isEmpty()) {
+            filteredMessage = "鏈煡閿欒";
+        }
+        
+        // 杩斿洖鍖呭惈"鏌ヨ澶辫触锛�"鍓嶇紑鐨勫畬鏁撮敊璇秷鎭�
+        return "鏌ヨ澶辫触锛�" + filteredMessage;
     }
 }

--
Gitblit v1.9.1