TangCheng
2025-03-05 4c8b7ca3f6d345d32d46cb13adb6867cd1f0a9e4
调整代码
已修改1个文件
46 ■■■■ 文件已修改
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);