From 002aac2eb465e9b41a6209b71c241b214ac30258 Mon Sep 17 00:00:00 2001
From: qfrjava <13402782+qfrjava@user.noreply.gitee.com>
Date: 星期日, 27 四月 2025 18:40:03 +0800
Subject: [PATCH] feat(lightrag): 增加通用转发接口和文档上传功能

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java |  217 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 128 insertions(+), 89 deletions(-)

diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java
index 84e40a5..8c921fb 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTMetricsManagerControl.java
@@ -1,19 +1,5 @@
 package com.smtaiserver.smtaiserver.control;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.Node;
-import org.dom4j.tree.DefaultText;
-import org.springframework.web.servlet.ModelAndView;
-
 import com.smtaiserver.smtaiserver.core.SMTAIServerApp;
 import com.smtaiserver.smtaiserver.core.SMTAIServerRequest;
 import com.smtaiserver.smtaiserver.core.SMTCheckChatStreamView;
@@ -31,88 +17,141 @@
 import com.smtservlet.util.Json;
 import com.smtservlet.util.SMTJsonWriter;
 import com.smtservlet.util.SMTStatic;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.Node;
+import org.dom4j.tree.DefaultText;
+import org.springframework.web.servlet.ModelAndView;
 
 public class SMTMetricsManagerControl 
 {
-	public ModelAndView getDimensionList(SMTAIServerRequest tranReq) throws Exception 
-	{
-	   	SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
-    	try
-    	{
-			DBRecords recs = db.querySQL("SELECT dim_id, dim_title, dim_type, dim_alias, dim_name, dim_unit, dim_group ,dim_value_list FROM ai_dimension", null);
-			
-			SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
-			
-			jsonWr.beginArray("values");
-			for(DBRecord rec : recs.getRecords())
-			{
-				jsonWr.beginMap(null);
-				{
-					jsonWr.addKeyValue("id", rec.getString("dim_id"));
-					jsonWr.addKeyValue("title", rec.getString("dim_name"));
-					jsonWr.addKeyValue("prompt", rec.getString("dim_title"));
-					jsonWr.addKeyValue("unit", rec.getString("dim_unit"));
-					jsonWr.addKeyValue("group", rec.getString("dim_group"));
-					jsonWr.addKeyValue("dimValueList", rec.getString("dim_value_list"));
+  public ModelAndView getDimensionList(SMTAIServerRequest tranReq) throws Exception {
+    SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+    try {
+      DBRecords recs =
+          db.querySQL(
+              "SELECT dim_id, dim_title, dim_type, dim_alias, dim_name, dim_unit, dim_group ,dim_value_list FROM ai_dimension",
+              null);
 
-					jsonWr.beginMap("alias");
-					String sAlias = rec.getString("dim_alias");
-					if(!SMTStatic.isNullOrEmpty(sAlias))
-					{
-						Json jsonAliasMap =null;
-						try {
-							jsonAliasMap = Json.read(sAlias);
-						}catch (Exception e){
-							continue;
-						}
-						for( Entry<String, Json> entry : jsonAliasMap.asJsonMap().entrySet())
-						{
-							jsonWr.beginArray(entry.getKey());
-							for(Json jsonAliasValue : entry.getValue().asJsonList())
-							{
-								jsonWr.addKeyValue(null, jsonAliasValue.asString());
-							}
-							jsonWr.endArray();
-						}
-					}
-					jsonWr.endMap();
-					
-					
-					switch(rec.getString("dim_type").charAt(0))
-					{
-					case 'S':
-						jsonWr.addKeyValue("type", "瀛楃涓�");
-						break;
-				
-					case 'D':
-						jsonWr.addKeyValue("type", "娴偣鏁�");
-						break;
-						
-					case 'I':
-						jsonWr.addKeyValue("type", "鏁存暟");
-						break;
-						
-					case 'L':
-						jsonWr.addKeyValue("type", "闀挎暣鏁�");
-						break;
-						
-					case 'T':
-						jsonWr.addKeyValue("type", "鏃堕棿");
-						break;
-					}
+      SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
 
+      jsonWr.beginArray("values");
+      for (DBRecord rec : recs.getRecords()) {
+        jsonWr.beginMap(null);
+        {
+          jsonWr.addKeyValue("id", rec.getString("dim_id"));
+          jsonWr.addKeyValue("title", rec.getString("dim_name"));
+          jsonWr.addKeyValue("prompt", rec.getString("dim_title"));
+          jsonWr.addKeyValue("unit", rec.getString("dim_unit"));
+          jsonWr.addKeyValue("group", rec.getString("dim_group"));
+			jsonWr.beginMap("value_list");  // 寮�濮嬩竴涓� "value_list" 鐨� Map
+
+			String valueList = rec.getString("dim_value_list");
+			if (!SMTStatic.isNullOrEmpty(valueList)) {
+				Json jsonValueList = null;
+				try {
+					// 瑙f瀽dim_value_list鏁版嵁
+					jsonValueList = Json.read(valueList);
+				} catch (Exception e) {
+					continue;  // 濡傛灉瑙f瀽澶辫触鍒欒烦杩囧綋鍓嶈褰�
 				}
-				jsonWr.endMap();
+
+				// 濡傛灉鏄疢ap锛屽寘鍚玸ql鏌ヨ
+				if (jsonValueList.has("sql")) {
+					SMTJsonWriter jsonWriter02 = new SMTJsonWriter(false);
+
+					Json sqlJson = jsonValueList.getJson("sql");  // 鑾峰彇 sql 瀛楁
+						Json sqlQuery = sqlJson.getJson("sql");  // 鑾峰彇 SQL 鏌ヨ璇彞
+						Json dsId = sqlJson.getJson("ds_id");  // 鑾峰彇 SQL 鏌ヨ璇彞
+						if (sqlQuery.isString()) {
+							jsonWriter02.addKeyValue("sql", sqlQuery.asString());  // 灏哠QL璇彞娣诲姞鍒癑SON涓�
+							jsonWriter02.addKeyValue("ds_id", dsId.asString());  // 灏哠QL璇彞娣诲姞鍒癑SON涓�
+							jsonWr.addKeyValue("sql",jsonWriter02);
+						}
+				} else if (jsonValueList.has("values")) {
+					// 濡傛灉鍖呭惈 values 鏁扮粍
+					Json valuesJson = jsonValueList.getJson("values");
+					if (valuesJson.isArray()) {
+						jsonWr.beginArray("values");  // 寮�濮� "dimValueList" 鐨勬暟缁�
+
+						// 閬嶅巻 values 鏁扮粍
+						for (Json jsonItem : valuesJson.asJsonList()) {
+							jsonWr.addKeyValue(null, jsonItem.asString());  // 灏嗘瘡涓�兼坊鍔犲埌鏁扮粍
+						}
+
+						jsonWr.endArray();  // 缁撴潫 "dimValueList" 鏁扮粍
+					}
+				}
 			}
-			jsonWr.endArray();
-			
-			return tranReq.returnJson(jsonWr);
-    	}
-    	finally
-    	{
-    		db.close();
-    	}		
-	}
+
+			jsonWr.endMap();  // 缁撴潫 "value_list" 鐨� Map
+
+
+			// 澶勭悊 alias 閮ㄥ垎
+          jsonWr.beginMap("alias"); // 寮�濮� "alias" 鐨� Map
+          String sAlias = rec.getString("dim_alias");
+          if (!SMTStatic.isNullOrEmpty(sAlias)) {
+            Json jsonAliasMap = null;
+            try {
+              jsonAliasMap = Json.read(sAlias);
+            } catch (Exception e) {
+              continue; // 濡傛灉瑙f瀽澶辫触鍒欒烦杩囧綋鍓嶈褰�
+            }
+
+            // 閬嶅巻 alias 鏄犲皠
+            for (Entry<String, Json> entry : jsonAliasMap.asJsonMap().entrySet()) {
+              jsonWr.beginArray(entry.getKey()); // 寮�濮嬩竴涓柊鏁扮粍
+              for (Json jsonAliasValue : entry.getValue().asJsonList()) {
+                jsonWr.addKeyValue(null, jsonAliasValue.asString()); // 娣诲姞姣忎釜鍊煎埌鏁扮粍
+              }
+              jsonWr.endArray(); // 缁撴潫褰撳墠鐨勬暟缁�
+            }
+          }
+
+          jsonWr.endMap(); // 缁撴潫 "alias" 鐨� Map
+
+          jsonWr.addKeyValue("type", rec.getString("dim_type"));
+          //					switch(rec.getString("dim_type").charAt(0))
+          //					{
+          //					case 'S':
+          //						jsonWr.addKeyValue("type", "瀛楃涓�");
+          //						break;
+          //
+          //					case 'D':
+          //						jsonWr.addKeyValue("type", "娴偣鏁�");
+          //						break;
+          //
+          //					case 'I':
+          //						jsonWr.addKeyValue("type", "鏁存暟");
+          //						break;
+          //
+          //					case 'L':
+          //						jsonWr.addKeyValue("type", "闀挎暣鏁�");
+          //						break;
+          //
+          //					case 'T':
+          //						jsonWr.addKeyValue("type", "鏃堕棿");
+          //						break;
+          //					}
+
+        }
+        jsonWr.endMap();
+      }
+      jsonWr.endArray();
+
+      return tranReq.returnJson(jsonWr);
+    } finally {
+      db.close();
+    }
+  }
+
 	public ModelAndView addDimension(SMTAIServerRequest tranReq) throws Exception {
 		String loginUserId = tranReq.getLoginUserId();
 

--
Gitblit v1.9.3