package com.smtaiserver.smtaiserver.attach;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import org.dom4j.Document;
|
import org.dom4j.Element;
|
import org.dom4j.Node;
|
|
import com.smtaiserver.smtaiserver.database.SMTDatabase.DBRecord;
|
import com.smtaiserver.smtaiserver.javaai.ast.ASTDBMap;
|
import com.smtservlet.util.Json;
|
import com.smtservlet.util.SMTJsonWriter;
|
import com.smtservlet.util.SMTStatic;
|
|
public class SMTAIAttachTableDef
|
{
|
public static class SMTAIAttachTableColumn
|
{
|
private String _name;
|
private String _title;
|
private char _type;
|
private String _filter;
|
private String _chartType;
|
|
public SMTAIAttachTableColumn(Element xmlColumn) throws Exception
|
{
|
_name = SMTStatic.getXmlAttr(xmlColumn, "name");
|
_title = SMTStatic.getXmlAttr(xmlColumn, "title");
|
_type = SMTStatic.getXmlAttr(xmlColumn, "type").charAt(0);
|
_filter = SMTStatic.getXmlAttr(xmlColumn, "filter", null);
|
_chartType = SMTStatic.getXmlAttr(xmlColumn, "chart_type", null);
|
}
|
|
public String getChartType()
|
{
|
return _chartType;
|
}
|
|
public String getName()
|
{
|
return _name;
|
}
|
|
public String getTitle()
|
{
|
return _title;
|
}
|
|
public char getType()
|
{
|
return _type;
|
}
|
|
public String getFilter()
|
{
|
return _filter;
|
}
|
}
|
|
private boolean _isChartTable = false;
|
private String _id;
|
private String _title;
|
private String _group;
|
private SMTAttachTableSqlXml _sqlXml;
|
private List<SMTAIAttachTableColumn> _listColumns = new ArrayList<>();
|
|
public SMTAIAttachTableDef(DBRecord rec) throws Exception
|
{
|
_id = rec.getString("table_id");
|
_title = rec.getString("table_title");
|
_group = rec.getString("table_group");
|
Document doc = SMTStatic.convStrToXmlDoc("<ROOT>" + rec.getString("table_config") + "</ROOT>");
|
Element xmlSQL = (Element)doc.selectSingleNode("ROOT/SQL");
|
_sqlXml = new SMTAttachTableSqlXml(xmlSQL);
|
Element xmlColumns = (Element)doc.selectSingleNode("ROOT/COLUMNS");
|
_isChartTable = "true".endsWith(SMTStatic.getXmlAttr(xmlColumns, "is_chart", "false"));
|
for(Node nodeColumn : xmlColumns.selectNodes("COLUMN"))
|
{
|
SMTAIAttachTableColumn column = new SMTAIAttachTableColumn((Element)nodeColumn);
|
_listColumns.add(column);
|
}
|
}
|
|
public boolean isChartTable()
|
{
|
return _isChartTable;
|
}
|
|
public List<SMTAIAttachTableColumn> getColumnList()
|
{
|
return _listColumns;
|
}
|
|
public String getId()
|
{
|
return _id;
|
}
|
|
public String getTitle()
|
{
|
return _title;
|
}
|
|
public String getGroup()
|
{
|
return _group;
|
}
|
|
public void queryRecordsToJson(Json jsonFilter, Json jsonOrder, SMTJsonWriter jsonWr) throws Exception
|
{
|
try(ASTDBMap dbMap = new ASTDBMap())
|
{
|
_sqlXml.querySQLToJson(dbMap, jsonFilter, jsonOrder, this, jsonWr);
|
}
|
}
|
}
|