蓄电池监控管理平台数据库初始化程序
DELL
2025-04-14 e96689d1c771081cba6a65a3330c19c701e088f8
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
package com.sql.util;
 
import java.sql.SQLException;
import java.util.Date;
 
import com.base.Com;
import com.sql.MysqlConnPool;
import com.sql.Sql_Mysql;
 
public class Db_Lithium_Ram_Db {
    public static void init(MysqlConnPool pool) {
        System.out.println("Db_Lithium_Ram_Db init Start " + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms));
        
        createDb_Lithium_Ram_Db(pool);
        
        createA200_RealState_Table(pool);
        
        createDev_A200_TestParam_Table(pool);
        
        createDev_Inf_Table(pool);
        
        createLithium_Rtdata_Table(pool);
        
        createWorkstate_Cfg_Table(pool);
        
        createWorkstate_ChangeEvent_Table(pool);
 
        System.out.println("Db_Lithium_Ram_Db init End " + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms));
    } 
    
    
    public static void createDb_Lithium_Ram_Db(MysqlConnPool pool) {
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute("CREATE SCHEMA IF NOT EXISTS " + Sql_Mysql.DB_LITHIUM_RAM_DB + " AUTHORIZATION sysdba");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * ´´½¨ db_lithium_ram_db.tb_a200_realstate Êý¾Ý¿â±í
     * @param conn
     */
    public static void createA200_RealState_Table(MysqlConnPool pool)
    {
        
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            String sql_str_auto = "CREATE SEQUENCE IF NOT EXISTS " + Sql_Mysql.A200_RealState_Table + "_auto" + 
                                 " INCREMENT 1" + 
                                 " MINVALUE 1" + 
                                 " MAXVALUE 9223372036854775807" + 
                                 " START 1" + 
                                 " CACHE 1;";
            //´´½¨×ÔÔöÐòÁÐ
            sql.sqlMysqlExecute(sql_str_auto);
            
            String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.A200_RealState_Table + " "
                            + "(num bigint NOT NULL DEFAULT nextval('" + Sql_Mysql.A200_RealState_Table + "_auto'::regclass)," + 
                            "    dev_id integer NOT NULL DEFAULT 1," + 
                            "    record_time timestamp without time zone NOT NULL DEFAULT '2000-01-01 00:00:00'::timestamp without time zone," + 
                            "    battery_name character varying NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                            "    test_type integer NOT NULL DEFAULT 2," + 
                            "    is_testing integer NOT NULL DEFAULT 0," + 
                            "    start_test_time timestamp without time zone NOT NULL DEFAULT '2000-01-01 00:00:00'::timestamp without time zone," + 
                            "    test_duration integer NOT NULL DEFAULT 0," + 
                            "    stop_test_time timestamp without time zone NOT NULL DEFAULT '2000-01-01 00:00:00'::timestamp without time zone," + 
                            "    max_battery_voltage double precision NOT NULL DEFAULT 0," + 
                            "    min_battery_voltage double precision NOT NULL DEFAULT 0," + 
                            "    max_battery_voltage_number integer NOT NULL DEFAULT 1," + 
                            "    min_battery_voltage_number integer NOT NULL DEFAULT 1," + 
                            "    diff_battery_voltage double precision NOT NULL DEFAULT 0," + 
                            "    storage_voltage double precision NOT NULL DEFAULT 0," + 
                            "    test_current double precision NOT NULL DEFAULT 0," + 
                            "    test_capacity double precision NOT NULL DEFAULT 0," + 
                            "    min_battery_temperature double precision NOT NULL DEFAULT 0," + 
                            "    max_battery_temperature double precision NOT NULL DEFAULT 0," + 
                            "    max_battery_temperature_number double precision NOT NULL DEFAULT 1," + 
                            "    min_battery_temperature_number double precision NOT NULL DEFAULT 1," + 
                            "    stop_reason character varying(32) NOT NULL COLLATE pg_catalog.\"default\" DEFAULT 0," + 
                            "    stop_reason_number integer NOT NULL DEFAULT 0," + 
                            "    fault_state integer NOT NULL DEFAULT 0," + 
                            "    work_state integer NOT NULL DEFAULT 0," + 
                            "    last_work_state integer NOT NULL DEFAULT 0," + 
                            "    avg_mon_vol double precision NOT NULL DEFAULT 0," + 
                            "    avg_mon_tmp double precision NOT NULL DEFAULT 0," + 
                            "    test_pause integer NOT NULL DEFAULT 0," + 
                            "     PRIMARY KEY (num)" + 
                            ")";
            sql.sqlMysqlExecute(sql_str);
 
            sql.sqlMysqlExecute("ALTER    TABLE " + Sql_Mysql.A200_RealState_Table + "    OWNER TO sysdba;");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".num IS '×ÔÔöÖ÷¼ü';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".dev_id IS 'É豸ID';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".record_time IS '¸üÐÂʱ¼ä';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".battery_name IS 'PACK/Ä£×éºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".test_type IS '²âÊÔÀàÐÍ[1-·Åµç  2-³äµç]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".is_testing IS 'ÊÇ·ñÕýÔÚ²âÊÔ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".start_test_time IS '²âÊÔ¿ªÊ¼Ê±¼ä';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".test_duration IS '²âÊÔʱ³¤(Ãë)';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".stop_test_time IS '²âÊÔ½áÊøÊ±¼ä';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".max_battery_voltage IS '×î¸ßµ¥Ìåµçѹ£¨V£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".min_battery_voltage IS '×îµÍµ¥Ìåµçѹ(V)';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".max_battery_voltage_number IS '×î¸ßµ¥Ìåµçѹ¶ÔÓ¦µçо±àºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".min_battery_voltage_number IS '×îµÍµ¥Ìåµçѹ¶ÔÓ¦µçо±àºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".diff_battery_voltage IS 'µçоѹ²î(mv)';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".storage_voltage IS '×é¶Ëµçѹ£¨v£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".test_current IS '²âÊÔµçÁ÷£¨A£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".test_capacity IS '²âÊÔÈÝÁ¿£¨AH£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".min_battery_temperature IS '×îСζÈ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".max_battery_temperature IS '×î´óζÈ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".max_battery_temperature_number IS '×î´óζȶÔӦζÈÐòºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".min_battery_temperature_number IS '×îСζȶÔӦζÈÐòºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".stop_reason IS 'Í£»úÔ­Òò';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".stop_reason_number IS 'Í£»úÔ­ÒòÐòºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".fault_state IS '¹ÊÕÏ״̬[0-ÎÞ¹ÊÕÏ  1-ÓйÊÕÏ]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".work_state IS 'É豸¹¤×÷״̬[0-¸¡³ä  1-·Åµç  2-³äµç]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".last_work_state IS 'ÉÏÒ»´Î¹¤×÷״̬[0-¸¡³ä  1-·Åµç  2-³äµç]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".avg_mon_vol IS 'µ¥Ìåµçѹƽ¾ùÖµ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".avg_mon_tmp IS 'µ¥ÌåÎÂ¶ÈÆ½¾ùÖµ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.A200_RealState_Table + ".test_pause IS 'ÊÇ·ñÔÝÍ£²âÊÔ[0-δÔÝÍ£  1-ÔÝÍ£ÖÐ]';");
            sql.sqlMysqlExecute("COMMENT ON   TABLE " + Sql_Mysql.A200_RealState_Table + " IS 'A200ʵʱ״̬±í';");
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    
    /**
     * ´´½¨ db_lithium_ram_db.tb_dev_a200_testparam Êý¾Ý¿â±í
     * @param conn
     */
    public static void createDev_A200_TestParam_Table(MysqlConnPool pool)
    {
        
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            String sql_str_auto = "CREATE SEQUENCE IF NOT EXISTS " + Sql_Mysql.Dev_A200_TestParam_Table + "_auto" + 
                                 " INCREMENT 1" + 
                                 " MINVALUE 1" + 
                                 " MAXVALUE 9223372036854775807" + 
                                 " START 1" + 
                                 " CACHE 1;";
            //´´½¨×ÔÔöÐòÁÐ
            sql.sqlMysqlExecute(sql_str_auto);
            
            String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Dev_A200_TestParam_Table + " "
                            + "(num bigint NOT NULL DEFAULT nextval('" + Sql_Mysql.Dev_A200_TestParam_Table + "_auto'::regclass)," + 
                            "    dev_id integer NOT NULL DEFAULT 1," + 
                            "    op_cmd integer NOT NULL DEFAULT 0," + 
                            "    return_code integer NOT NULL DEFAULT 0," + 
                            "    battery_name character varying NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                            "    nominal_capacity double precision NOT NULL DEFAULT 0," + 
                            "    battery_type integer NOT NULL DEFAULT 0," + 
                            "    battery_number integer NOT NULL DEFAULT 16," + 
                            "    diff_battery_voltage double precision NOT NULL DEFAULT 0," + 
                            "    discharge_current double precision NOT NULL DEFAULT 0," + 
                            "    discharge_time integer NOT NULL DEFAULT 0," + 
                            "    discharge_capacity double precision NOT NULL DEFAULT 0," + 
                            "    is_discharge_capacity_enable integer NOT NULL DEFAULT 0," + 
                            "    min_battery_voltage double precision NOT NULL DEFAULT 0," + 
                            "    is_min_battery_voltage_enable integer NOT NULL DEFAULT 0," + 
                            "    charge_voltage double precision NOT NULL DEFAULT 0," + 
                            "    charge_protect_voltage double precision NOT NULL DEFAULT 0," + 
                            "    charge_current double precision NOT NULL DEFAULT 0," + 
                            "    charge_stop_current double precision NOT NULL DEFAULT 0," + 
                            "    charge_time integer NOT NULL DEFAULT 0," + 
                            "    charge_capacity double precision NOT NULL DEFAULT 0," + 
                            "    is_charge_capacity_enable integer NOT NULL DEFAULT 0," + 
                            "    max_battery_voltage double precision NOT NULL DEFAULT 0," + 
                            "    is_max_battery_voltage_enable integer NOT NULL DEFAULT 0," + 
                            "    charge_power double precision NOT NULL DEFAULT 0," + 
                            "    battery_temperature_protect integer NOT NULL DEFAULT 0," + 
                            "    control_type integer NOT NULL DEFAULT 0," + 
                            "    result_reason character varying NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                            "    discharge_voltage double precision NOT NULL DEFAULT 0," + 
                            "     PRIMARY KEY (num)" + 
                            ")";
            sql.sqlMysqlExecute(sql_str);
 
            sql.sqlMysqlExecute("ALTER    TABLE " + Sql_Mysql.Dev_A200_TestParam_Table + "    OWNER TO sysdba;");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".num IS '×ÔÔöÖ÷¼ü';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".dev_id IS 'É豸ID';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".op_cmd IS 'ÃüÁî';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".return_code IS '·µ»ØÏìÓ¦Âë';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".battery_name IS 'pack/Ä£×éºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".nominal_capacity IS '±ê³ÆÈÝÁ¿(AH£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".battery_type IS 'µç³ØÀàÐÍ[0-Á×ËáÌúï®  1-ÈýԪﮠ  2-Ì«Ëáï® 4-ÃÌËáï®]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".battery_number IS 'µçо´®Êý';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".diff_battery_voltage IS 'µçоѹ²î';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".discharge_current IS '·ÅµçµçÁ÷';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".discharge_time IS '·Åµçʱ¼ä(Ãë)';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".discharge_capacity IS 'Ô¤·ÅÈÝÁ¿£¨AH£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".is_discharge_capacity_enable IS 'Ô¤·ÅÈÝÁ¿ÏÞÖÆÊÇ·ñ¿ªÆô';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".min_battery_voltage IS 'µ¥´®ÏÂÏÞ£¨V£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".is_min_battery_voltage_enable IS 'µ¥´®ÏÂÏÞÊÇ·ñ¿ªÆô';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_voltage IS '³äµçÄ¿±êµçѹ£¨V£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_protect_voltage IS '³äµç±£»¤µçѹ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_current IS '³äµçµçÁ÷£¨A£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_stop_current IS '³äµçÍ£»úµçÁ÷£¨A£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_time IS '³äµçʱ¼ä£¨Ã룩';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_capacity IS '³äµçÈÝÁ¿';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".is_charge_capacity_enable IS 'Ô¤³äÈÝÁ¿ÏÞÖÆÊÇ·ñ¿ªÆô';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".max_battery_voltage IS 'µ¥´®ÉÏÏÞ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".is_max_battery_voltage_enable IS 'µ¥´®ÉÏÏÞÏÞÖÆÊÇ·ñ¿ªÆô';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".charge_power IS '³äµç¹¦ÂÊ£¨KW£©';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".battery_temperature_protect IS 'µ¥Ìåζȱ£»¤';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".control_type IS '¿ØÖÆÀàÐÍ[1-ËùÓÐÍ£»úÔ­Òò¾ùÏÔʾµ¯´°ºÍ·äÃùÉù  2-ËùÓÐÍ£»úÔ­Òò¾ù²»ÏÔʾµ¯´°ºÍ·äÃùÉù  3-Õý³£Í£»úÔ­Òò²»ÏÔʾµ¯´°ºÍ·äÃùÉù£¬Ò쳣ͣ»úÔ­ÒòÏÔʾµ¯´°ºÍ·äÃùÉù 4-Õý³£Í£»úÔ­ÒòÏÔʾµ¯´°ºÍ·äÃùÉù£¬Ò쳣ͣ»úÔ­Òò²»ÏÔʾµ¯´°ºÍ·äÃùÉù]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".result_reason IS '½Ó¿Ú·µ»ØÊ§°ÜÔ­Òò';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_A200_TestParam_Table + ".discharge_voltage IS '·ÅµçÄ¿±êµçѹ[×é¶ËÏÂÏÞ]';");
            sql.sqlMysqlExecute("COMMENT ON   TABLE " + Sql_Mysql.Dev_A200_TestParam_Table + " IS 'A200²âÊÔ²ÎÊý±í';");
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    /**
     * ´´½¨ db_lithium_ram_db.tb_dev_inf Êý¾Ý¿â±í
     * @param conn
     */
    public static void createDev_Inf_Table(MysqlConnPool pool)
    {
        
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            String sql_str_auto = "CREATE SEQUENCE IF NOT EXISTS " + Sql_Mysql.Dev_Inf_Table + "_auto" + 
                                 " INCREMENT 1" + 
                                 " MINVALUE 1" + 
                                 " MAXVALUE 9223372036854775807" + 
                                 " START 1" + 
                                 " CACHE 1;";
            //´´½¨×ÔÔöÐòÁÐ
            sql.sqlMysqlExecute(sql_str_auto);
            
            String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Dev_Inf_Table + " "
                            + "(num bigint NOT NULL DEFAULT nextval('" + Sql_Mysql.Dev_Inf_Table + "_auto'::regclass)," + 
                            "    dev_id integer NOT NULL DEFAULT 100000001," + 
                            "    dev_ip character varying(200) NOT NULL COLLATE pg_catalog.\"default\" DEFAULT '127.0.0.1'::character varying," + 
                            "    dev_type integer NOT NULL DEFAULT 1," + 
                            "    dev_model character varying(200) NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                            "    dev_idcode character varying(200) NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                            "    dev_online integer NOT NULL DEFAULT 1," + 
                            "    create_time date NOT NULL DEFAULT '2000-01-01'::date," + 
                            "    batch_state integer NOT NULL DEFAULT 0," + 
                            "    longitude double precision NOT NULL DEFAULT 0.0," + 
                            "    latitude double precision NOT NULL DEFAULT 0.0," + 
                            "    reload_en integer NOT NULL DEFAULT 1," + 
                            "     PRIMARY KEY (num)" + 
                            ")";
            sql.sqlMysqlExecute(sql_str);
 
            sql.sqlMysqlExecute("ALTER    TABLE " + Sql_Mysql.Dev_Inf_Table + " OWNER TO sysdba;");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".num IS '×ÔÔöÖ÷¼ü';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".dev_id IS 'É豸ID';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".dev_ip IS 'É豸IP';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".dev_type IS 'É豸ÀàÐÍ[1-A200]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".dev_model IS 'É豸ÐͺÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".dev_online IS 'É豸ÔÚÏß״̬';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".batch_state IS 'É豸ÅúÁ¿²âÊÔ״̬[0-δÅúÁ¿  1-ÅúÁ¿ÖÐ]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Dev_Inf_Table + ".reload_en IS 'ÊÇ·ñÐèÒªÖØÐ¼ÓÔØÊý¾Ý[0- ²»ÐèÒªÖØÔØ  1-ÐèÒªÖØÔØ]';");
            sql.sqlMysqlExecute("COMMENT ON   TABLE " + Sql_Mysql.Dev_Inf_Table + " IS 'A200É豸ÐÅÏ¢ÅäÖñí';");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    /**
     *     ´´½¨ db_lithium_ram_db.tb_lithium_rtdata Êý¾Ý¿â±í
     * @param conn
     */
    public static void createLithium_Rtdata_Table(MysqlConnPool pool)
    {
        
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            String sql_str_auto = "CREATE SEQUENCE IF NOT EXISTS " + Sql_Mysql.Lithium_Rtdata_Table + "_auto" + 
                    " INCREMENT 1" + 
                    " MINVALUE 1" + 
                    " MAXVALUE 9223372036854775807" + 
                    " START 1" + 
                    " CACHE 1;";
            //´´½¨×ÔÔöÐòÁÐ
            sql.sqlMysqlExecute(sql_str_auto);
            
            String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Lithium_Rtdata_Table + " "
                    + "(num bigint NOT NULL DEFAULT nextval('" + Sql_Mysql.Lithium_Rtdata_Table + "_auto'::regclass)," + 
                    "    dev_id integer NOT NULL DEFAULT 1," + 
                    "    batt_idx integer NOT NULL DEFAULT 0," + 
                    "    mon_num integer NOT NULL DEFAULT 1," + 
                    "    record_time timestamp without time zone NOT NULL DEFAULT '2000-01-01 00:00:00'::timestamp without time zone," + 
                    "    mon_vol double precision NOT NULL DEFAULT 0," + 
                    "    mon_tmp double precision NOT NULL DEFAULT 0," + 
                    "    mon_curr double precision NOT NULL DEFAULT 0," + 
                    "    mon_cap double precision NOT NULL DEFAULT 0," + 
                    "    mon_wh double precision NOT NULL DEFAULT 0," + 
                    "    mon_state character varying(32) NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                    "    mon_fault character varying(32) NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                    "    need_test integer NOT NULL DEFAULT 0," + 
                    "     PRIMARY KEY (num)" + 
                    ")";
            sql.sqlMysqlExecute(sql_str);
            
            sql.sqlMysqlExecute("ALTER    TABLE " + Sql_Mysql.Lithium_Rtdata_Table + " OWNER TO sysdba;");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".num IS '×ÔÔöÖ÷¼ü';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".dev_id IS 'É豸ID';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".batt_idx IS 'µç³Ø×é±àºÅ[0-×é1 1-×é2 ... 4-×é4]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_num IS 'µ¥Ìå±àºÅ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".record_time IS '¸üÐÂʱ¼ä';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_vol IS 'µ¥Ìåµçѹ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_tmp IS 'µ¥ÌåζÈ';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_curr IS 'µ¥ÌåµçÁ÷';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_cap IS 'µ¥ÌåÈÝÁ¿';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_wh IS 'µ¥ÌåÄÜÁ¿';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_state IS 'µ¥Ìå״̬';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".mon_fault IS '¹ÊÕÏÐÅÏ¢';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Lithium_Rtdata_Table + ".need_test IS 'ÊÇ·ñÐèÒª²âÊÔ[0-²»Ðè 1-ÐèÒª]';");
            sql.sqlMysqlExecute("COMMENT ON   TABLE " + Sql_Mysql.Lithium_Rtdata_Table + " IS 'A200µ¥ÌåÐÅÏ¢±í';");
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    /**
     *     ´´½¨ db_lithium_ram_db.tb_workstate_cfg Êý¾Ý¿â±í
     * @param conn
     */
    public static void createWorkstate_Cfg_Table(MysqlConnPool pool)
    {
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            String sql_str_auto = "CREATE SEQUENCE IF NOT EXISTS " + Sql_Mysql.Workstate_Cfg_Table + "_auto" + 
                    " INCREMENT 1" + 
                    " MINVALUE 1" + 
                    " MAXVALUE 9223372036854775807" + 
                    " START 1" + 
                    " CACHE 1;";
            //´´½¨×ÔÔöÐòÁÐ
            sql.sqlMysqlExecute(sql_str_auto);
            
            String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Workstate_Cfg_Table + " "
                    + "(num bigint NOT NULL DEFAULT nextval('" + Sql_Mysql.Workstate_Cfg_Table + "_auto'::regclass)," + 
                    "    dev_type integer NOT NULL DEFAULT 1," + 
                    "    last_work_state integer NOT NULL DEFAULT 0," + 
                    "    now_work_state integer NOT NULL DEFAULT 0," + 
                    "    event_str character varying NOT NULL COLLATE pg_catalog.\"default\" DEFAULT ''::character varying," + 
                    "     PRIMARY KEY (num)" + 
                    ")";
            sql.sqlMysqlExecute(sql_str);
            
            sql.sqlMysqlExecute("ALTER    TABLE " + Sql_Mysql.Workstate_Cfg_Table + " OWNER TO sysdba;");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_Cfg_Table + ".num IS '×ÔÔöÖ÷¼ü';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_Cfg_Table + ".dev_type IS 'É豸ÀàÐÍ[1-A200³ä·ÅµçÒ»Ìå»ú  2-ACTM¾ùºâÒÇ]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_Cfg_Table + ".last_work_state IS 'ÉÏÒ»´Î¹¤×÷״̬';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_Cfg_Table + ".now_work_state IS 'µ±Ç°É豸¹¤×÷״̬';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_Cfg_Table + ".event_str IS 'ʱ¼äÃèÊö';");
            sql.sqlMysqlExecute("COMMENT ON   TABLE " + Sql_Mysql.Workstate_Cfg_Table + " IS 'É豸¹¤×÷Çл»ÃèÊöÅäÖñí';");
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
 
    
    /**
     *     ´´½¨ db_lithium_ram_db.tb_workstate_changeevent Êý¾Ý¿â±í
     * @param conn
     */
    public static void createWorkstate_ChangeEvent_Table(MysqlConnPool pool)
    {
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            String sql_str_auto = "CREATE SEQUENCE IF NOT EXISTS " + Sql_Mysql.Workstate_ChangeEvent_Table + "_auto" + 
                    " INCREMENT 1" + 
                    " MINVALUE 1" + 
                    " MAXVALUE 9223372036854775807" + 
                    " START 1" + 
                    " CACHE 1;";
            //´´½¨×ÔÔöÐòÁÐ
            sql.sqlMysqlExecute(sql_str_auto);
            
            String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Workstate_ChangeEvent_Table + " "
                    + "(num bigint NOT NULL DEFAULT nextval('" + Sql_Mysql.Workstate_ChangeEvent_Table + "_auto'::regclass)," + 
                    "    dev_id integer NOT NULL DEFAULT 1," + 
                    "    batt_idx integer NOT NULL DEFAULT 0," + 
                    "    last_work_state integer NOT NULL DEFAULT 1," + 
                    "    now_work_state integer NOT NULL DEFAULT 1," + 
                    "    record_time timestamp without time zone NOT NULL DEFAULT '2000-01-01 00:00:00'::timestamp without time zone," + 
                    "     PRIMARY KEY (num)" + 
                    ")";
            sql.sqlMysqlExecute(sql_str);
            
            sql.sqlMysqlExecute("ALTER    TABLE " + Sql_Mysql.Workstate_ChangeEvent_Table + " OWNER TO sysdba;");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_ChangeEvent_Table + ".num IS '×ÔÔöÖ÷¼ü';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_ChangeEvent_Table + ".dev_id IS 'É豸ID';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_ChangeEvent_Table + ".batt_idx IS 'µç³Ø×éºÅ[0-×é1  1-×é2....]';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_ChangeEvent_Table + ".last_work_state IS 'ÉÏÒ»´Î¹¤×÷״̬';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_ChangeEvent_Table + ".now_work_state IS 'µ±Ç°É豸¹¤×÷״̬';");
            sql.sqlMysqlExecute("COMMENT ON COLUMN " + Sql_Mysql.Workstate_ChangeEvent_Table + ".record_time IS 'É豸¹¤×÷״̬Çл»Ê±¼ä';");
            sql.sqlMysqlExecute("COMMENT ON  TABLE " + Sql_Mysql.Workstate_ChangeEvent_Table + " IS 'É豸¹¤×÷״̬Çл»Ê¼þ±í';");
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
}