From b0728aba5c01842e24da3cff04e44be06c6bb655 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 13:38:38 +0800
Subject: [PATCH] #AI.去除多余mcp

---
 rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiMcpMountServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiMcpMountServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiMcpMountServiceImpl.java
index 87eb622..e358929 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiMcpMountServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiMcpMountServiceImpl.java
@@ -121,6 +121,48 @@
     }
 
     @Override
+    public AiMcpConnectivityTestDto testDraftConnectivity(AiMcpMount mount, Long userId, Long tenantId) {
+        ensureTenantId(tenantId);
+        if (userId == null) {
+            throw new CoolException("褰撳墠鐧诲綍鐢ㄦ埛涓嶅瓨鍦�");
+        }
+        if (mount == null) {
+            throw new CoolException("MCP 鎸傝浇鍙傛暟涓嶈兘涓虹┖");
+        }
+        mount.setTenantId(tenantId);
+        fillDefaults(mount);
+        ensureRequiredFields(mount, tenantId);
+        long startedAt = System.currentTimeMillis();
+        try (McpMountRuntimeFactory.McpMountRuntime runtime = mcpMountRuntimeFactory.create(List.of(mount), userId)) {
+            long elapsedMs = System.currentTimeMillis() - startedAt;
+            if (!runtime.getErrors().isEmpty()) {
+                return AiMcpConnectivityTestDto.builder()
+                        .mountId(mount.getId())
+                        .mountName(mount.getName())
+                        .healthStatus(AiDefaults.MCP_HEALTH_UNHEALTHY)
+                        .message(String.join("锛�", runtime.getErrors()))
+                        .initElapsedMs(elapsedMs)
+                        .toolCount(runtime.getToolCallbacks().length)
+                        .testedAt(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
+                        .build();
+            }
+            return AiMcpConnectivityTestDto.builder()
+                    .mountId(mount.getId())
+                    .mountName(mount.getName())
+                    .healthStatus(AiDefaults.MCP_HEALTH_HEALTHY)
+                    .message("鑽夌杩為�氭�ф祴璇曟垚鍔燂紝瑙f瀽鍑� " + runtime.getToolCallbacks().length + " 涓伐鍏�")
+                    .initElapsedMs(elapsedMs)
+                    .toolCount(runtime.getToolCallbacks().length)
+                    .testedAt(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
+                    .build();
+        } catch (CoolException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new CoolException("鑽夌杩為�氭�ф祴璇曞け璐�: " + e.getMessage());
+        }
+    }
+
+    @Override
     public AiMcpToolTestDto testTool(Long mountId, Long userId, Long tenantId, AiMcpToolTestRequest request) {
         if (userId == null) {
             throw new CoolException("褰撳墠鐧诲綍鐢ㄦ埛涓嶅瓨鍦�");
@@ -256,19 +298,10 @@
     }
 
     private List<String> resolveConflictCodes(String builtinCode) {
-        List<String> codes = new ArrayList<>();
         if (AiDefaults.MCP_BUILTIN_RSF_WMS.equals(builtinCode)) {
-            codes.add(AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK);
-            codes.add(AiDefaults.MCP_BUILTIN_RSF_WMS_TASK);
-            codes.add(AiDefaults.MCP_BUILTIN_RSF_WMS_BASE);
-            return codes;
+            return List.of();
         }
-        if (AiDefaults.MCP_BUILTIN_RSF_WMS_STOCK.equals(builtinCode)
-                || AiDefaults.MCP_BUILTIN_RSF_WMS_TASK.equals(builtinCode)
-                || AiDefaults.MCP_BUILTIN_RSF_WMS_BASE.equals(builtinCode)) {
-            codes.add(AiDefaults.MCP_BUILTIN_RSF_WMS);
-        }
-        return codes;
+        throw new CoolException("涓嶆敮鎸佺殑鍐呯疆 MCP 缂栫爜: " + builtinCode);
     }
 
     private void ensureTenantId(Long tenantId) {

--
Gitblit v1.9.1