package com.battdata_rt; import com.base.Com; import com.sql.MysqlConnPool; import com.sql.Sql_Mysql; import java.io.File; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; public class BattData_RT_RamDB_Thread_SQL { public static void createBattData_RT_RamDB_Table(MysqlConnPool conn_pool, ArrayList bd_al) { String sql_str0 = "DROP TABLE IF EXISTS `db_ram_db`.`tb_batt_rtdata`; "; String sql_str1 = "CREATE TABLE IF NOT EXISTS `db_ram_db`.`tb_batt_rtdata` ( `num` BIGINT NOT NULL AUTO_INCREMENT, `BattGroupId` INT NOT NULL DEFAULT 0, `rec_datetime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `mon_num` INT NOT NULL DEFAULT 0, `mon_vol` FLOAT NOT NULL DEFAULT 0, `mon_tmp` FLOAT NOT NULL DEFAULT 0, `mon_res` FLOAT NOT NULL DEFAULT 0, `mon_ser` FLOAT NOT NULL DEFAULT 0, `mon_conn_res` FLOAT NOT NULL DEFAULT 0, `mon_cap` FLOAT NOT NULL DEFAULT 0, INDEX index_BattGroupId (`BattGroupId`), PRIMARY KEY (`num`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"; String sql_str2 = "INSERT INTO `db_ram_db`.`tb_batt_rtdata`(BattGroupId,mon_num) VALUES "; int cnt = 0; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); for (int mc = 0; mc < brt.MonCount; mc++) { if (cnt > 0) { sql_str2 = sql_str2 + ","; } sql_str2 = sql_str2 + "(" + brt.BattGroupId + "," + (mc + 1) + ")"; cnt++; } } Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlExecute(sql_str0); sql.sqlMysqlExecute(sql_str1); sql.sqlMysqlExecute(sql_str2); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static void updateBattData_RT_RamDB_Table(MysqlConnPool conn_pool, ArrayList bd_al) { Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { for (int index = 0; index < bd_al.size(); index++) { BattData_RT brt = (BattData_RT) bd_al.get(index); String sql_str = "UPDATE `db_ram_db`.`tb_batt_rtdata` SET rec_datetime='" + Com.getDateTimeFormat(new Date(), "yyyy-MM-dd HH:mm:ss") + "'"; float tmp_dt = 0.0F; String sql_str_vol = " "; for (int n = 0; n < brt.MonCount; n++) { tmp_dt = ((MonVolData) brt.al_MonVol.get(n)).monVol; if (((MonVolData) brt.al_MonVol_RtOld.get(n)).monVol != tmp_dt) { ((MonVolData) brt.al_MonVol_RtOld.get(n)).monVol = tmp_dt; sql_str_vol = sql_str_vol + " WHEN " + (n + 1) + " THEN " + String.format("%1.3f", new Object[] { Float.valueOf(tmp_dt) }); } } if (sql_str_vol.trim().length() > 1) { sql_str_vol = ", mon_vol = CASE mon_num " + sql_str_vol + " ELSE mon_vol END "; } String sql_str_tmp = " "; for (int n = 0; n < brt.MonCount; n++) { tmp_dt = ((MonVolData) brt.al_MonVol.get(n)).monTmp; if (((MonVolData) brt.al_MonVol_RtOld.get(n)).monTmp != tmp_dt) { ((MonVolData) brt.al_MonVol_RtOld.get(n)).monTmp = tmp_dt; sql_str_tmp = sql_str_tmp + " WHEN " + (n + 1) + " THEN " + String.format("%1.3f", new Object[] { Float.valueOf(tmp_dt) }); } } if (sql_str_tmp.trim().length() > 1) { sql_str_tmp = ", mon_tmp = CASE mon_num " + sql_str_tmp + " ELSE mon_tmp END "; } String sql_str_res = " "; for (int n = 0; n < brt.MonCount; n++) { tmp_dt = ((MonVolData) brt.al_MonVol.get(n)).monRes; if (((MonVolData) brt.al_MonVol_RtOld.get(n)).monRes != tmp_dt) { ((MonVolData) brt.al_MonVol_RtOld.get(n)).monRes = tmp_dt; sql_str_res = sql_str_res + " WHEN " + (n + 1) + " THEN " + String.format("%1.3f", new Object[] { Float.valueOf(tmp_dt) }); } } if (sql_str_res.trim().length() > 1) { sql_str_res = ", mon_res = CASE mon_num " + sql_str_res + " ELSE mon_res END "; } String sql_str_ser = " "; for (int n = 0; n < brt.MonCount; n++) { tmp_dt = ((MonVolData) brt.al_MonVol.get(n)).monSer; if (((MonVolData) brt.al_MonVol_RtOld.get(n)).monSer != tmp_dt) { ((MonVolData) brt.al_MonVol_RtOld.get(n)).monSer = tmp_dt; sql_str_ser = sql_str_ser + " WHEN " + (n + 1) + " THEN " + String.format("%1.3f", new Object[] { Float.valueOf(tmp_dt) }); } } if (sql_str_ser.trim().length() > 1) { sql_str_ser = ", mon_ser = CASE mon_num " + sql_str_ser + " ELSE mon_ser END "; } String sql_str_2 = sql_str_vol + sql_str_tmp + sql_str_res + sql_str_ser; if (sql_str_2.trim().length() > 1) { sql_str_2 = sql_str_2 + " WHERE BattGroupId=" + brt.BattGroupId; } else { sql_str_2 = " WHERE BattGroupId=" + brt.BattGroupId; } sql_str = sql_str + sql_str_2; sql.sqlMysqlExecute(sql_str); } } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static void createBattState_RT_RamDB_Table(MysqlConnPool conn_pool, ArrayList bd_al) { String sql_str0 = "DROP TABLE IF EXISTS `db_ram_db`.`tb_batt_rtstate`; "; String sql_str1 = "CREATE TABLE IF NOT EXISTS `db_ram_db`.`tb_batt_rtstate` ( `num` BIGINT NOT NULL AUTO_INCREMENT, `BattGroupId` INT NOT NULL DEFAULT 0, `batt_count` INT NOT NULL DEFAULT 0, `rec_datetime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `online_vol` FLOAT NOT NULL DEFAULT 0, `group_vol` FLOAT NOT NULL DEFAULT 0, `group_tmp` FLOAT NOT NULL DEFAULT 0, `group_curr` FLOAT NOT NULL DEFAULT 0, `batt_state` INT NOT NULL DEFAULT 0, `batt_test_type` INT NOT NULL DEFAULT 0, `batt_test_starttime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `batt_test_recordtime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `batt_test_tlong` INT NOT NULL DEFAULT 0, `batt_test_cap` FLOAT NOT NULL DEFAULT 0, `batt_real_cap` FLOAT NOT NULL DEFAULT 0, `batt_rest_cap` FLOAT NOT NULL DEFAULT 0, `batt_rest_power1_time` INT NOT NULL DEFAULT 0, `batt_rest_power2_time` INT NOT NULL DEFAULT 0, INDEX index_BattGroupId (`BattGroupId`), PRIMARY KEY (`num`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;"; String sql_str2 = "INSERT INTO `db_ram_db`.`tb_batt_rtstate`(BattGroupId) VALUES "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); if (n > 0) { sql_str2 = sql_str2 + ","; } sql_str2 = sql_str2 + "(" + brt.BattGroupId + ")"; } Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlExecute(sql_str0); sql.sqlMysqlExecute(sql_str1); sql.sqlMysqlExecute(sql_str2); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static void updateBattState_RT_RamDB_Table(MysqlConnPool conn_pool, ArrayList bd_al) { Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { String sql_str = "UPDATE `db_ram_db`.`tb_batt_rtstate` SET rec_datetime='" + Com.getDateTimeFormat(new Date(), "yyyy-MM-dd HH:mm:ss") + "',"; sql_str = sql_str + " batt_count = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.MonCount; } sql_str = sql_str + " END, online_vol = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getOnlineVol(); } sql_str = sql_str + " END, group_vol = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getGroupVol(); } sql_str = sql_str + " END, group_tmp = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getGroupTmp(); } sql_str = sql_str + " END, group_curr = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getTestCurr(); } sql_str = sql_str + " END, batt_state = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getBattState(); } sql_str = sql_str + " END, batt_test_type = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getBattTestType(); } sql_str = sql_str + " END, batt_test_starttime = CASE BattGroupId "; Date dt = new Date(); for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); dt.setTime(brt.getTestStartTime()); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN '" + Com.getDateTimeFormat(dt, "yyyy-MM-dd HH:mm:ss") + "'"; } sql_str = sql_str + " END, batt_test_recordtime = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); dt.setTime(brt.getTestRecordTime()); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN '" + Com.getDateTimeFormat(dt, "yyyy-MM-dd HH:mm:ss") + "'"; } sql_str = sql_str + " END, batt_test_tlong = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getTestTimeLong(); } sql_str = sql_str + " END, batt_test_cap = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getTestCap(); } sql_str = sql_str + " END, batt_real_cap = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getBattRealCap(); } sql_str = sql_str + " END, batt_rest_cap = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getBattRestCap(); } sql_str = sql_str + " END, batt_rest_power1_time = CASE BattGroupId "; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); sql_str = sql_str + " WHEN " + brt.BattGroupId + " THEN " + brt.getBattRestTime(); } sql_str = sql_str + " END WHERE BattGroupId IN ("; for (int n = 0; n < bd_al.size(); n++) { BattData_RT brt = (BattData_RT) bd_al.get(n); if (n > 0) { sql_str = sql_str + ","; } sql_str = sql_str + brt.BattGroupId; } sql_str = sql_str + ")"; sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static void createServerState_RamDB_Table(MysqlConnPool conn_pool) { String sql_str0 = "DROP TABLE IF EXISTS `db_ram_db`.`tb_server_state`; "; String sql_str1 = "CREATE TABLE IF NOT EXISTS `db_ram_db`.`tb_server_state` ( `num` BIGINT NOT NULL AUTO_INCREMENT, `server_version` FLOAT NOT NULL DEFAULT 0, `server_datetime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', `max_mem` BIGINT NOT NULL DEFAULT 0, `total_mem` BIGINT NOT NULL DEFAULT 0, `free_men` BIGINT NOT NULL DEFAULT 0, `total_disc_space` BIGINT NOT NULL DEFAULT 0, `free_disc_space` BIGINT NOT NULL DEFAULT 0, `db_conn_max` INT NOT NULL DEFAULT 0, `db_conn_count` INT NOT NULL DEFAULT 0, PRIMARY KEY (`num`)) ENGINE=MEMORY DEFAULT CHARSET=utf8;"; String sql_str2 = "INSERT INTO `db_ram_db`.`tb_server_state`(server_version) VALUES (1.101)"; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlExecute(sql_str0); sql.sqlMysqlExecute(sql_str1); sql.sqlMysqlExecute(sql_str2); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static void updateServerState_RamDB_Table(MysqlConnPool conn_pool) { Runtime rt = Runtime.getRuntime(); String path = System.getProperty("user.dir"); File diskPartition = new File(path.substring(0, path.indexOf(":") + 1)); long totalCapacity = diskPartition.getTotalSpace() / 1048576L; long usablePatitionSpace = diskPartition.getUsableSpace() / 1048576L; int conn_max = 0; int conn_count = 0; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { ResultSet res = sql.sqlMysqlQuery("show variables like 'max_connections'"); if (res.next()) { conn_max = res.getInt(2); } res = sql.sqlMysqlQuery("show status like 'Threads_connected'"); if (res.next()) { conn_count = res.getInt(2); } String sql_str = "UPDATE `db_ram_db`.`tb_server_state` SET server_datetime='" + Com.getDateTimeFormat(new Date(), "yyyy-MM-dd HH:mm:ss") + "'," + "max_mem=" + rt.maxMemory() + "," + "total_mem=" + rt.totalMemory() + "," + "free_men=" + rt.freeMemory() + "," + "total_disc_space=" + totalCapacity + "," + "free_disc_space=" + usablePatitionSpace + "," + "db_conn_max=" + conn_max + "," + "db_conn_count=" + conn_count; sql.sqlMysqlExecute(sql_str); sql.sqlMysqlUseDB("web_site"); if (sql.sqlMysqlCheckIfTableExist("tb_process_survey")) { String sql_str_1 = "UPDATE tb_process_survey SET ProcessTime='" + Com.getDateTimeFormat(new Date(), "yyyy-MM-dd HH:mm:ss") + "' " + " WHERE ProcessId=11001"; sql.sqlMysqlExecute(sql_str_1); } } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static boolean updateServerStartInfTo_RamDB_Table(MysqlConnPool conn_pool, double ver) { boolean res = false; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlUseDB("web_site"); if (sql.sqlMysqlCheckIfTableExist("tb_process_survey")) { String sql_str_1 = "UPDATE tb_process_survey SET Process_starttime='" + Com.getDateTimeFormat(new Date(), "yyyy-MM-dd HH:mm:ss") + "', " + " ProcessVersion='" + String.format("V%1.3f", new Object[] { Double.valueOf(ver) }) + "' " + " WHERE ProcessId=11001"; sql.sqlMysqlExecute(sql_str_1); res = true; } } catch (SQLException e) { res = false; e.printStackTrace(); } finally { sql.close_con(); } return res; } } /* * Location: * C:\Users\LiJun\Desktop\公司各种设备资料\9600显示模块相关文件\后台程序\2018-09-07\BattFBS9600XSP. * jar Qualified Name: com.battdata_rt.BattData_RT_RamDB_Thread_SQL JD-Core * Version: 0.6.2 */