From fdbf7bdd34c51269eefe203c1b78c7fcdfdb20e7 Mon Sep 17 00:00:00 2001
From: TangCheng <tangchengmail@163.com>
Date: 星期三, 05 三月 2025 17:54:40 +0800
Subject: [PATCH] 修复问题

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java |   77 ++++++++++++++++++++------------------
 1 files changed, 41 insertions(+), 36 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 2c2b918..d6ef453 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
@@ -203,42 +203,47 @@
     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 jsonAST = jsonASTList.get(0);
-      if ("query_water_fee".equals(jsonAST.safeGetStr("call", null))) {
-        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);
-        }
+    Json ojsonASTList = SMTStatic.convLLMAnswerToJson(answer, true);
+    if(ojsonASTList != null && ojsonASTList.isArray())
+    {
+	    List<Json> jsonASTList = ojsonASTList.asJsonList();
+	    if (jsonASTList.size() > 0) 
+	    {
+	      Json jsonAST = jsonASTList.get(0);
+	      if ("query_water_fee".equals(jsonAST.safeGetStr("call", null))) {
+	        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.getRecord(0).getString(0) == null)
+	            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