From e96aaddc59b17e86beb08cc8f3aa64957cdd57cf Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 15:45:04 +0800
Subject: [PATCH] #备货

---
 rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java |   62 +++++++++++++++----------------
 1 files changed, 30 insertions(+), 32 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java
index 41f0d52..398efba 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/BuiltinMcpToolRegistryImpl.java
@@ -28,6 +28,11 @@
     private final RsfWmsTaskTools rsfWmsTaskTools;
     private final RsfWmsBaseTools rsfWmsBaseTools;
 
+    /**
+     * 鏍¢獙鍐呯疆 MCP 缂栫爜鏄惁鍚堟硶銆�
+     * 褰撳墠鐗堟湰鍙厑璁镐娇鐢ㄦ樉寮忕櫥璁板湪娉ㄥ唽琛ㄤ腑鐨勭紪鐮侊紝鏈煡缂栫爜鐩存帴鎷掔粷锛�
+     * 杩欐牱鍙互纭繚鈥滈〉闈㈠彲閫夐」鈥濆拰鈥滆繍琛屾椂鍙寕杞介」鈥濆缁堜竴鑷淬��
+     */
     @Override
     public void validateBuiltinCode(String builtinCode) {
         if (!StringUtils.hasText(builtinCode)) {
@@ -38,43 +43,43 @@
         }
     }
 
+    /**
+     * 鏍规嵁鎸傝浇璁板綍鍒涘缓鍐呯疆宸ュ叿鍥炶皟銆�
+     * 杩欓噷涓嶄細鍋氫换浣曞姩鎬佸彂鐜帮紝鎵�鏈夊伐鍏烽兘蹇呴』缁忚繃鏄惧紡娉ㄥ唽鍜屾不鐞嗙洰褰曟牎楠屽悗鎵嶈兘鏆撮湶缁欐ā鍨嬨��
+     */
     @Override
     public List<ToolCallback> createToolCallbacks(AiMcpMount mount, Long userId) {
         String builtinCode = mount.getBuiltinCode();
         validateBuiltinCode(builtinCode);
         if (AiDefaults.MCP_BUILTIN_RSF_WMS.equals(builtinCode)) {
             List<ToolCallback> callbacks = new ArrayList<>();
-            callbacks.addAll(createValidatedCallbacks(rsfWmsStockTools, AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK));
-            callbacks.addAll(createValidatedCallbacks(rsfWmsTaskTools, AiDefaults.MCP_BUILTIN_RSF_WMS_TASK));
-            callbacks.addAll(createValidatedCallbacks(rsfWmsBaseTools, AiDefaults.MCP_BUILTIN_RSF_WMS_BASE));
+            callbacks.addAll(createValidatedCallbacks(rsfWmsStockTools, builtinCode));
+            callbacks.addAll(createValidatedCallbacks(rsfWmsTaskTools, builtinCode));
+            callbacks.addAll(createValidatedCallbacks(rsfWmsBaseTools, builtinCode));
             return callbacks;
-        }
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK.equals(builtinCode)) {
-            return createValidatedCallbacks(rsfWmsStockTools, builtinCode);
-        }
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_TASK.equals(builtinCode)) {
-            return createValidatedCallbacks(rsfWmsTaskTools, builtinCode);
-        }
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_BASE.equals(builtinCode)) {
-            return createValidatedCallbacks(rsfWmsBaseTools, builtinCode);
         }
         throw new CoolException("涓嶆敮鎸佺殑鍐呯疆 MCP 缂栫爜: " + builtinCode);
     }
 
+    /**
+     * 杩斿洖鏌愪釜鍐呯疆缂栫爜涓嬪彲棰勮鐨勫伐鍏风洰褰曚俊鎭��
+     * 璇ョ洰褰曟瘮杩愯鏃跺洖璋冨浜嗗伐鍏风敤閫斻�佹煡璇㈣竟鐣屽拰绀轰緥鎻愰棶锛屼緵绠$悊椤靛睍绀恒��
+     */
     @Override
     public List<AiMcpToolPreviewDto> listBuiltinToolCatalog(String builtinCode) {
         validateBuiltinCode(builtinCode);
         if (AiDefaults.MCP_BUILTIN_RSF_WMS.equals(builtinCode)) {
-            List<AiMcpToolPreviewDto> catalog = new ArrayList<>();
-            catalog.addAll(catalogByBuiltinCode(AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK).values());
-            catalog.addAll(catalogByBuiltinCode(AiDefaults.MCP_BUILTIN_RSF_WMS_TASK).values());
-            catalog.addAll(catalogByBuiltinCode(AiDefaults.MCP_BUILTIN_RSF_WMS_BASE).values());
-            return catalog;
+            return new ArrayList<>(catalogByBuiltinCode(builtinCode).values());
         }
         return new ArrayList<>(catalogByBuiltinCode(builtinCode).values());
     }
 
     private List<ToolCallback> createValidatedCallbacks(Object toolBean, String builtinCode) {
+        /**
+         * 鎶� `@Tool` Bean 杞垚 Spring AI ToolCallback锛屽苟寮哄埗鏍¢獙锛�
+         * 1. 宸ュ叿鍚嶅繀椤荤鍚堝懡鍚嶈鑼�
+         * 2. 姣忎釜宸ュ叿閮藉繀椤诲嚭鐜板湪娌荤悊鐩綍閲�
+         */
         List<ToolCallback> callbacks = Arrays.asList(ToolCallbacks.from(toolBean));
         Map<String, AiMcpToolPreviewDto> catalog = catalogByBuiltinCode(builtinCode);
         for (ToolCallback callback : callbacks) {
@@ -93,16 +98,16 @@
     }
 
     private List<String> supportedBuiltinCodes() {
-        return List.of(
-                AiDefaults.MCP_BUILTIN_RSF_WMS,
-                AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK,
-                AiDefaults.MCP_BUILTIN_RSF_WMS_TASK,
-                AiDefaults.MCP_BUILTIN_RSF_WMS_BASE
-        );
+        /** 褰撳墠鐗堟湰鍏佽鎸傝浇鐨勫叏閮ㄥ唴缃� MCP 缂栫爜銆� */
+        return List.of(AiDefaults.MCP_BUILTIN_RSF_WMS);
     }
 
     private Map<String, AiMcpToolPreviewDto> catalogByBuiltinCode(String builtinCode) {
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK.equals(builtinCode)) {
+        /**
+         * 鏋勯�犲唴缃伐鍏锋不鐞嗙洰褰曘��
+         * 杩欓噷鐨勭洰褰曟槸杩愯鏃舵牎楠屽拰绠$悊绔瑙堢殑鍏卞悓浜嬪疄鏉ユ簮锛屼笉鑳戒笌宸ュ叿瀹炵幇鑴辫妭銆�
+         */
+        if (AiDefaults.MCP_BUILTIN_RSF_WMS.equals(builtinCode)) {
             Map<String, AiMcpToolPreviewDto> catalog = new LinkedHashMap<>();
             catalog.put("rsf_query_available_inventory", buildCatalogItem(
                     "rsf_query_available_inventory",
@@ -118,10 +123,6 @@
                     "蹇呴』鎻愪緵绔欑偣绫诲瀷鍒楄〃锛岀被鍨嬫暟閲忔渶澶� 10 涓紝鏈�澶氳繑鍥� 50 涓珯鐐广��",
                     List.of("鏌ヨ鍏ュ簱鍜屽嚭搴撲綔涓氬彲鐢ㄧ珯鐐�", "鍒楀嚭 AGV_PICK 绫诲瀷鐨勪綔涓氱珯鐐�")
             ));
-            return catalog;
-        }
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_TASK.equals(builtinCode)) {
-            Map<String, AiMcpToolPreviewDto> catalog = new LinkedHashMap<>();
             catalog.put("rsf_query_task_list", buildCatalogItem(
                     "rsf_query_task_list",
                     "浠诲姟鏌ヨ",
@@ -136,10 +137,6 @@
                     "蹇呴』鎻愪緵浠诲姟 ID 鎴栦换鍔″彿涔嬩竴锛屽彧杩斿洖鍗曚釜浠诲姟銆�",
                     List.of("鏌ヨ浠诲姟 12345 鐨勮鎯�", "鏍规嵁浠诲姟鍙� TASK24001 鏌ョ湅鎵ц鏄庣粏")
             ));
-            return catalog;
-        }
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_BASE.equals(builtinCode)) {
-            Map<String, AiMcpToolPreviewDto> catalog = new LinkedHashMap<>();
             catalog.put("rsf_query_warehouses", buildCatalogItem(
                     "rsf_query_warehouses",
                     "鍩虹璧勬枡",
@@ -168,6 +165,7 @@
 
     private AiMcpToolPreviewDto buildCatalogItem(String name, String toolGroup, String toolPurpose,
                                                  String queryBoundary, List<String> exampleQuestions) {
+        /** 缁熶竴鍒涘缓宸ュ叿鐩綍鏉$洰锛岄伩鍏嶄笉鍚屽伐鍏风粍鍑虹幇瀛楁椋庢牸涓嶄竴鑷淬�� */
         return AiMcpToolPreviewDto.builder()
                 .name(name)
                 .toolGroup(toolGroup)

--
Gitblit v1.9.1