From 4c8b7ca3f6d345d32d46cb13adb6867cd1f0a9e4 Mon Sep 17 00:00:00 2001
From: TangCheng <tangchengmail@163.com>
Date: 星期三, 05 三月 2025 17:47:53 +0800
Subject: [PATCH] 调整代码

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java |   46 +++++++++++++++++++++++++---------------------
 1 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java
index e30e375..b750cc5 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java
@@ -194,31 +194,35 @@
 	  SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null);
 	  String answer = llm.callWithMessage(new String[] {prompt}, question, tranReq);
 	  tranReq.traceLLMDebug(answer);
-	  List<Json> jsonASTList = SMTStatic.convLLMAnswerToJson(answer, true).asJsonList();
-	  if(jsonASTList.size() > 0)
+	  Json oASTList = SMTStatic.convLLMAnswerToJson(answer, true);
+	  if(oASTList != null && oASTList.isArray())
 	  {
-		  Json jsonAST = jsonASTList.get(0);
-		  if("query_water_fee".equals(jsonAST.safeGetStr("call", null)))
+		  List<Json> jsonASTList = oASTList.asJsonList();
+		  if(jsonASTList.size() > 0)
 		  {
-			  jsonAST = jsonAST.getJson("args");
-			  try(ASTDBMap dbMap = new ASTDBMap())
+			  Json jsonAST = jsonASTList.get(0);
+			  if("query_water_fee".equals(jsonAST.safeGetStr("call", null)))
 			  {
-				  SMTDatabase db = dbMap.getDatabase("DS_74_CHENGTOU");
-				  DBRecords recs = db.querySQL(
-					  " SELECT ROUND(SUM(" + jsonAST.getJson("value_name").asString() + ")::NUMERIC(10, 2), 2) AS TOTAL"
-					+ " FROM chengtou_data.bill_data WHERE billing_date BETWEEN ? AND ?" 
-					, new Object[] {
-					SMTStatic.toDate(jsonAST.getJson("start_time").asString()),
-					SMTStatic.toDate(jsonAST.getJson("end_time").asString())
-					});
-				  
-				  if(recs.getRowCount() == 0)
-					  return "浠�" + jsonAST.getJson("start_time").asString() + "鍒�" + jsonAST.getJson("end_time").asString() + "鐨�" + jsonAST.getJson("value_title").asString() + "鏈煡鍒颁换浣曟暟鎹�";
-				  
-				  return "浠�" + jsonAST.getJson("start_time").asString() + "鍒�" + jsonAST.getJson("end_time").asString() + "鐨�" + jsonAST.getJson("value_title").asString()
-				  	+ "鎬昏" + recs.getRecord(0).getString(0);				  	
+				  jsonAST = jsonAST.getJson("args");
+				  try(ASTDBMap dbMap = new ASTDBMap())
+				  {
+					  SMTDatabase db = dbMap.getDatabase("DS_74_CHENGTOU");
+					  DBRecords recs = db.querySQL(
+						  " SELECT ROUND(SUM(" + jsonAST.getJson("value_name").asString() + ")::NUMERIC(10, 2), 2) AS TOTAL"
+						+ " FROM chengtou_data.bill_data WHERE billing_date BETWEEN ? AND ?" 
+						, new Object[] {
+						SMTStatic.toDate(jsonAST.getJson("start_time").asString()),
+						SMTStatic.toDate(jsonAST.getJson("end_time").asString())
+						});
+					  
+					  if(recs.getRowCount() == 0)
+						  return "浠�" + jsonAST.getJson("start_time").asString() + "鍒�" + jsonAST.getJson("end_time").asString() + "鐨�" + jsonAST.getJson("value_title").asString() + "鏈煡鍒颁换浣曟暟鎹�";
+					  
+					  return "浠�" + jsonAST.getJson("start_time").asString() + "鍒�" + jsonAST.getJson("end_time").asString() + "鐨�" + jsonAST.getJson("value_title").asString()
+					  	+ "鎬昏" + recs.getRecord(0).getString(0);				  	
+				  }
+	
 			  }
-
 		  }
 	  }
 	  answer = llm.callWithMessage(null, question, tranReq);

--
Gitblit v1.9.3