| | |
| | | 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;
|
| | |
| | | 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 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.beginMap("alias");
|
| | | String sAlias = rec.getString("dim_alias");
|
| | | if(!SMTStatic.isNullOrEmpty(sAlias))
|
| | | {
|
| | | Json jsonAliasMap = Json.read(sAlias);
|
| | | |
| | | 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;
|
| | | }
|
| | | 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.beginMap("value_list"); // 开始一个 "value_list" 的 Map
|
| | |
|
| | | String valueList = rec.getString("dim_value_list");
|
| | | if (!SMTStatic.isNullOrEmpty(valueList)) {
|
| | | Json jsonValueList = null;
|
| | | try {
|
| | | // 解析dim_value_list数据
|
| | | jsonValueList = Json.read(valueList);
|
| | | } catch (Exception e) {
|
| | | continue; // 如果解析失败则跳过当前记录
|
| | | }
|
| | | jsonWr.endMap();
|
| | |
|
| | | // 如果是Map,包含sql查询
|
| | | 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()); // 将SQL语句添加到JSON中
|
| | | jsonWriter02.addKeyValue("ds_id", dsId.asString()); // 将SQL语句添加到JSON中
|
| | | 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();
|
| | | |
| | |
|
| | | 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; // 如果解析失败则跳过当前记录
|
| | | }
|
| | |
|
| | | // 遍历 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();
|
| | |
|
| | | // 解析请求参数
|
| | | String dimId = tranReq.convParamToString("dim_id", true);
|
| | | String dimTitle = tranReq.convParamToString("dim_title", true);
|
| | | String dimType = tranReq.convParamToString("dim_type", true);
|
| | | String dimAlias = tranReq.convParamToString("dim_alias", false);
|
| | | String dimName = tranReq.convParamToString("dim_name", true);
|
| | | String dimGroup = tranReq.convParamToString("dim_group", false);
|
| | | String dimUnit = tranReq.convParamToString("dim_unit", false);
|
| | | String dimValueList = tranReq.convParamToString("dim_value_list", false);
|
| | |
|
| | | SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
|
| | |
|
| | | try {
|
| | | // 检查维度ID是否已存在
|
| | | String selectSql = "SELECT * FROM ai_doc.ai_dimension WHERE dim_id = ?";
|
| | | Object[] selectParams = {dimId};
|
| | | if (db.querySQL(selectSql, selectParams).getRowCount() > 0) {
|
| | | return tranReq.returnJsonState(false, "维度ID已存在", null);
|
| | | }
|
| | |
|
| | | // 构建 SQL 语句
|
| | | String insertSql = "INSERT INTO ai_doc.ai_dimension (dim_id, dim_title, dim_type, dim_alias, dim_name, dim_group, dim_unit, dim_value_list) " +
|
| | | "VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
|
| | | Object[] insertParams = {dimId, dimTitle, dimType, dimAlias, dimName, dimGroup, dimUnit, dimValueList};
|
| | |
|
| | | // 执行插入操作
|
| | | db.executeSQL(insertSql, insertParams);
|
| | |
|
| | | // 返回 JSON 结果
|
| | | SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
|
| | | return tranReq.returnJson(jsonWr);
|
| | | }
|
| | | finally
|
| | | {
|
| | | db.close();
|
| | | } |
| | | } finally {
|
| | | db.close();
|
| | | }
|
| | | }
|
| | | |
| | | public ModelAndView updateDimension(SMTAIServerRequest tranReq) throws Exception {
|
| | | // 解析请求参数
|
| | | String dimId = tranReq.convParamToString("dim_id", true);
|
| | | String dimTitle = tranReq.convParamToString("dim_title", false);
|
| | | String dimType = tranReq.convParamToString("dim_type", false);
|
| | | String dimAlias = tranReq.convParamToString("dim_alias", false);
|
| | | String dimName = tranReq.convParamToString("dim_name", false);
|
| | | String dimGroup = tranReq.convParamToString("dim_group", false);
|
| | | String dimUnit = tranReq.convParamToString("dim_unit", false);
|
| | | String dimValueList = tranReq.convParamToString("dim_value_list", false);
|
| | |
|
| | | SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
|
| | |
|
| | | try {
|
| | | // 检查维度ID是否存在
|
| | | String selectSql = "SELECT * FROM ai_doc.ai_dimension WHERE dim_id = ?";
|
| | | Object[] selectParams = {dimId};
|
| | | if (db.querySQL(selectSql, selectParams).getRowCount() == 0) {
|
| | | return tranReq.returnJsonState(false, "维度ID不存在", null);
|
| | | }
|
| | |
|
| | | // 构建 SQL 语句
|
| | | String updateSql = "UPDATE ai_doc.ai_dimension SET dim_title = ?, dim_type = ?, dim_alias = ?, dim_name = ?, dim_group = ?, dim_unit = ?, dim_value_list = ? " +
|
| | | "WHERE dim_id = ?";
|
| | | Object[] updateParams = {dimTitle, dimType, dimAlias, dimName, dimGroup, dimUnit, dimValueList, dimId};
|
| | |
|
| | | // 执行更新操作
|
| | | db.executeSQL(updateSql, updateParams);
|
| | |
|
| | | // 返回 JSON 结果
|
| | | SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
|
| | | return tranReq.returnJson(jsonWr);
|
| | | } finally {
|
| | | db.close();
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | public ModelAndView checkMetricsAgentValidate(SMTAIServerRequest tranReq) throws Exception
|
| | | {
|
| | | String agentId = tranReq.convParamToString("agent_id", true);
|