BattMonitor_DB_Builder/bin/com/version_inf/version_inf.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BattMonitor_DB_Builder/src/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BattMonitor_DB_Builder/src/com/database_util/DB_Ram_db.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BattMonitor_DB_Builder/src/com/database_util/DB_db_user.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BattMonitor_DB_Builder/src/com/sql/Sql_Mysql.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
BattMonitor_DB_Builder/src/com/version_inf/version_inf.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
BattMonitor_DB_Builder/bin/com/version_inf/version_inf.txt
@@ -163,4 +163,9 @@ 1.'db_pwrdev_data_rt`.`tb_pwrdev_acdcdata' 表中新增温湿度传感器相关字段 2.新增`db_ram_db`.`tb_lithium_data`表用于更新锂电池实时数据 V1.56 edit at date 2021-06-08 1.新增用户登陆限制表'db_user.tb_user_limit' 2.用户表新增'login_type'[登陆状态]字段 3.新增南京送检蓄电池告警表'db_ram_db.tb_batt_rtalarm'和'db_ram_db.tb_batt_rsalarm'表的建表语句 BattMonitor_DB_Builder/src/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.java
@@ -135,6 +135,33 @@ } return maxMonNum; } /** * 查询当前电池组在 tb_batt_rtdata 表中最大单体数 * @param conn_pool * @param battGroupId * @return */ public static int seachBattRTAlarmMaxMonNum(MysqlConnPool conn_pool,int battGroupId){ int maxMonNum = 0; String sql_str = " SELECT MAX(mon_num) as maxmon_num " + " FROM " + Sql_Mysql.Tb_Batt_RTAlarm_Table + " WHERE BattGroupId = " + battGroupId; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); //System.out.println(sql_str); ResultSet rs = sql.sqlMysqlQuery(sql_str); try { if(rs.next()){ maxMonNum = rs.getInt("maxmon_num"); } } catch (SQLException e) { e.printStackTrace(); } finally{ sql.close_con(); } return maxMonNum; } /************************************************************************************************/ /************************************************************************************************/ /************************************************************************************************/ BattMonitor_DB_Builder/src/com/database_util/DB_Ram_db.java
@@ -2,7 +2,10 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import com.base.Com; import com.battdata_rt.BattData_RT_RamDB_Thread_SQL; import com.sql.MysqlConnPool; import com.sql.Sql_Mysql; @@ -71,6 +74,11 @@ createFBS9100_ChargerstateTable(pool, recreate); createTb_Lithium_DataTable(pool, recreate); //南京送检特有 createTb_Batt_RTAlarm_Table(pool, recreate); //南京送检特有 createTb_Batt_RSAlarm_Table(pool, recreate); } @@ -1652,6 +1660,112 @@ } } /** * 创建组端信息告警记录表 * @param pool * @param recreate */ public static void createTb_Batt_RSAlarm_Table(MysqlConnPool pool, boolean recreate) { String sql_str01 = " DROP TABLE IF EXISTS "+Sql_Mysql.Tb_Batt_RSAlarm_Table; String sql_str02 = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_Batt_RSAlarm_Table + " (" + " `num` bigint(20) NOT NULL AUTO_INCREMENT ," + " `BattGroupId` int(11) NOT NULL DEFAULT '1000001' COMMENT '电池组ID'," + " `record_time` datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '记录时间'," + " `groupvol_alm` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组电压告警'," + " `test_end_vol` float NOT NULL DEFAULT '0' COMMENT '测试终止电压'," + " `test_end_cap` float NOT NULL DEFAULT '0' COMMENT '测试终止剩余容量'," + " `test_timelong` int(11) NOT NULL DEFAULT '0' COMMENT '测试终止时间(秒)'," + " PRIMARY KEY (`num`)," + " KEY `index_BattGroupId` (`BattGroupId`) USING BTREE," + " KEY `index_record_time` (`record_time`) USING BTREE" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { if(true == recreate) { sql.sqlMysqlExecute(sql_str01); } //System.out.println(sql_str02); sql.sqlMysqlExecute(sql_str02); //添加未录入电池组的组端信息 String sql_str03 = "INSERT INTO " + Sql_Mysql.Tb_Batt_RSAlarm_Table + " (BattGroupId)" + " SELECT BattGroupId FROM " + Sql_Mysql.BattInf_Table + " WHERE BattGroupId NOT IN (SELECT BattGroupId FROM " + Sql_Mysql.Tb_Batt_RSAlarm_Table + ")"; //System.out.println(sql_str03); sql.sqlMysqlExecute(sql_str03); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } /** * 创建单体信息告警记录表 * @param pool * @param recreate */ public static void createTb_Batt_RTAlarm_Table(MysqlConnPool pool, boolean recreate) { String sql_str01 = " DROP TABLE IF EXISTS "+Sql_Mysql.Tb_Batt_RTAlarm_Table; String sql_str02 = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_Batt_RTAlarm_Table + " (" + " `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `BattGroupId` int(11) NOT NULL DEFAULT '1000001' COMMENT '电池组id'," + " `record_time` datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '记录时间'," + " `mon_num` int(11) NOT NULL DEFAULT '0' COMMENT '单体编号'," + " `monvol_alm` tinyint(4) NOT NULL DEFAULT '0' COMMENT '单体电压告警'," + " `montmp_alm` tinyint(4) NOT NULL DEFAULT '0' COMMENT '单体温度告警'," + " `monres_alm` tinyint(4) NOT NULL DEFAULT '0' COMMENT '单体内阻告警'," + " `monrestcap_alm` tinyint(4) NOT NULL DEFAULT '0' COMMENT '单体剩余容量告警'," + " PRIMARY KEY (`num`)," + " KEY `index_BattGroupId` (`BattGroupId`) USING BTREE," + " KEY `index_record_time` (`record_time`) USING BTREE" + ") ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;"; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { if(true == recreate) { sql.sqlMysqlExecute(sql_str01); } sql.sqlMysqlExecute(sql_str02); ResultSet res_t = sql.sqlMysqlQuery("SELECT BattGroupId,MonCount FROM " + Sql_Mysql.BattInf_Table); while(res_t.next()) { int bg_id = res_t.getInt("BattGroupId"); int mon_cnt = res_t.getInt("MonCount"); if(mon_cnt > 0){ int max_monnum = BattData_RT_RamDB_Thread_SQL.seachBattRTAlarmMaxMonNum(pool,bg_id); //当前电池组在 tb_batt_rtdata 表中的最大单体个数 if(mon_cnt > max_monnum){ //需要从max_monnum开始添加单体记录 String sql_str2 = "INSERT INTO " + Sql_Mysql.Tb_Batt_RTAlarm_Table + "(BattGroupId, mon_num)" + " VALUES "; boolean isStart = true; for(int mc = max_monnum; mc < mon_cnt; mc++) { if(isStart) { isStart = false; }else{ sql_str2 += ","; } sql_str2 += "(" + bg_id + "," + (mc+1) + ")"; } System.out.println("电池组"+bg_id+"从单体"+(max_monnum+1)+"开始在tb_batt_rtdata表中添加单体数据 at " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); sql.sqlMysqlExecute(sql_str2); }else if(mon_cnt < max_monnum){ //删除当前电池组中超过单体个数的数据 String sql_str2 = " DELETE FROM " + Sql_Mysql.Tb_Batt_RTAlarm_Table + " WHERE BattGroupId = " +bg_id+ " AND mon_num > "+mon_cnt; sql.sqlMysqlExecute(sql_str2); System.out.println("电池组"+bg_id+"从单体"+(mon_cnt+1)+"开始删除tb_batt_rtdata单体数据 at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); } } } } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } /** * 创建 tb_fbs9100_chargerstate 表 BattMonitor_DB_Builder/src/com/database_util/DB_db_user.java
@@ -55,13 +55,7 @@ createUser_Battgroup_Baojigroup_Table(pool, recreate); createUser_Limit_Table(pool, recreate); @@ -846,6 +840,32 @@ } } /** * */ public static void createUser_Limit_Table(MysqlConnPool pool, boolean recreate) { String sql_str01 = " DROP TABLE IF EXISTS "+Sql_Mysql.User_Limit_Table; String sql_str02 = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.User_Limit_Table + " (" + " `id` int(11) NOT NULL AUTO_INCREMENT," + " `userId` int(11) DEFAULT NULL," + " `limitDuration` int(3) DEFAULT NULL COMMENT '限制时间,单位:秒'," + " `loginTime` datetime DEFAULT NULL COMMENT '登录时间'," + " PRIMARY KEY (`id`)" + ") ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8;"; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { if(true == recreate) { sql.sqlMysqlExecute(sql_str01); } sql.sqlMysqlExecute(sql_str02); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } /** * 创建线程手动启动工具表 */ @@ -948,6 +968,15 @@ sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.TB_UserInf + " ADD COLUMN `license` text DEFAULT NULL;"); } //添加login_type[登陆状态] res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" + " WHERE table_schema='db_user'" + " AND table_name='tb_user_inf'" + " AND column_name='login_type'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.TB_UserInf + " ADD COLUMN `login_type` tinyint(1) DEFAULT '1' COMMENT '登录类型:1-密码,2-人脸';"); } res = sql.sqlMysqlQuery("SELECT COUNT(*) as num_count FROM " + Sql_Mysql.TB_UserInf); if(res.next()) { int count = res.getInt("num_count"); BattMonitor_DB_Builder/src/com/sql/Sql_Mysql.java
@@ -142,6 +142,10 @@ public final static String FBS9100_ChargerstateTable = DB_RamDB + ".`tb_fbs9100_chargerstate`"; //充电机 public final static String Tb_Lithium_DataTable = DB_RamDB + ".`tb_lithium_data`"; //锂电池数据表 public final static String Tb_Batt_RSAlarm_Table = DB_RamDB + ".`tb_batt_rsalarm`"; //锂电池数据表 public final static String Tb_Batt_RTAlarm_Table = DB_RamDB + ".`tb_batt_rtalarm`"; //锂电池数据表 /**************************** db_user数据库 ***************************************************/ public final static String User_Permitgroup_Table = DB_USER + ".`tb_user_permitgroup`"; //权限表 @@ -165,6 +169,7 @@ public final static String User_Battgroup_Baojigroup_Usr_Table = DB_USER + ".`tb_user_battgroup_baojigroup_usr`"; // public final static String User_Battgroup_Baojigroup_Battgroup_Table = DB_USER + ".`tb_user_battgroup_baojigroup_battgroup`"; // public final static String User_Battgroup_Baojigroup_Table = DB_USER + ".`tb_user_battgroup_baojigroup`"; // public final static String User_Limit_Table = DB_USER + ".`tb_user_limit`"; // BattMonitor_DB_Builder/src/com/version_inf/version_inf.txt
@@ -163,4 +163,9 @@ 1.'db_pwrdev_data_rt`.`tb_pwrdev_acdcdata' 表中新增温湿度传感器相关字段 2.新增`db_ram_db`.`tb_lithium_data`表用于更新锂电池实时数据 V1.56 edit at date 2021-06-08 1.新增用户登陆限制表'db_user.tb_user_limit' 2.用户表新增'login_type'[登陆状态]字段 3.新增南京送检蓄电池告警表'db_ram_db.tb_batt_rtalarm'和'db_ram_db.tb_batt_rsalarm'表的建表语句