unknown
2025-03-10 e2782dd256f228da065f4fef7db1e3aacf32dc23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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,Integer limit) throws Exception
    {
        try(ASTDBMap dbMap = new ASTDBMap())
        {
            _sqlXml.querySQLToJson(dbMap, jsonFilter, jsonOrder, this, jsonWr,limit);
        }
    }
}