package com.battalarm; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; import com.battalarm.BattAlarmParam.AlarmParamCell; import com.battdata_rt.BattData_RT; import com.battdata_rt.BattData_RT_Array; import com.battdata_rt.MonVolData; import com.config.AppConfig; import com.sql.MysqlConnPool; import com.sql.Sql_Mysql; import main.main_FBS9100S_Alarm; public class BattAlarm_Thread_New2 extends Thread { public final static String BattAlarmParamTableName = "tb_alarm_param"; //µç³Ø¸æ¾¯²ÎÊý±í public final static String BattAlarmDataTableName = "tb_battalarm_data"; //µç³Ø¸æ¾¯Êý¾Ý±í public final static String DevAlarmDataTableName = "tb_dev_param"; //É豸¸æ¾¯²ÎÊý±í public final static String BattAlarmDataHistoryTableName = "tb_battalarm_data_history"; //µç³Ø¸æ¾¯ÀúÊ·¼Ç¼±í private AppConfig m_AppCfg = null; private MysqlConnPool m_Conn_Pool; private BattData_RT_Array m_AL_Data; private BattAlarmParam m_AlarmParam_COE; private Map appParam; private Logger logger = null; public BattAlarm_Thread_New2(AppConfig cfg, MysqlConnPool con_pool, BattData_RT_Array al_data,Map appParam) { m_AppCfg = cfg; m_Conn_Pool = con_pool; m_AlarmParam_COE = new BattAlarmParam(); m_AL_Data = al_data; this.appParam = appParam; logger = LogManager.getLogger(this); //System.out.println("µç³Ø×éÊýÁ¿£º" + m_AL_Data.getItemCount()); CreateBattAlarmParamTable(m_Conn_Pool.getConn()); //´´½¨µç³Ø¸æ¾¯²ÎÊý±í for(int i=0;iËùÓÐÉ豸ʹÓÃÏàͬµÄ¸æ¾¯²ÎÊý) //getOrCreateBattAlarmParam(m_Conn_Pool.getConn()); //´´½¨tb_battalarm_data±í (µç³ØÊµÊ±¸æ¾¯±í) createBattAlarmDataTable_IfNotExist(m_Conn_Pool.getConn()); //´´½¨tb_battalarm_data_history±í (µç³ØÀúÊ·¸æ¾¯±í) createBattAlarmDataHistoryTable_IfNotExist(m_Conn_Pool); } /** * Èç¹û²»´æÔÚÔò´´½¨µç³Ø¸æ¾¯²ÎÊý±í * @param conn * */ public void CreateBattAlarmParamTable(Connection conn){ Sql_Mysql sql = new Sql_Mysql(conn); try { sql.sqlMysqlUseDB(Sql_Mysql.DB_PARAM); if(false == sql.sqlMysqlCheckIfTableExist(DevAlarmDataTableName)){ String sql_str = "CREATE TABLE IF NOT EXISTS `tb_dev_param` (" + " `num` int(11) NOT NULL AUTO_INCREMENT," + " `dev_Id` int(11) NOT NULL DEFAULT '91000000'," + " `alm_id` int(11) NOT NULL DEFAULT '119001'," + " `alm_name` varchar(64) NOT NULL DEFAULT 'Batt_Alarm_Type_'," + " `alm_high_coe` float NOT NULL DEFAULT '0.9'," + " `alm_low_coe` float NOT NULL DEFAULT '0.5'," + " `alm_high_level` int(11) NOT NULL DEFAULT '4'," + " `alm_low_level` int(11) NOT NULL DEFAULT '1'," + " `alm_high_en` int(11) NOT NULL DEFAULT '0'," + " `alm_low_en` int(11) NOT NULL DEFAULT '0'," + " `note` varchar(64) NOT NULL DEFAULT ''," + " `alm_high_coe_upper` float NOT NULL DEFAULT '3.2' COMMENT 'ÉÏÉÏÏ޸澯ϵÊýÖµ'," + " `alm_high_coe_upper_en` tinyint(4) NOT NULL DEFAULT '1' COMMENT 'ÉÏÉÏÏÞʹÄÜ[0-²»ÆôÓà 1-ÆôÓÃ]'," + " `alm_low_coe_lower` float NOT NULL DEFAULT '0' COMMENT 'ÏÂÏÂÏ޸澯ϵÊýÖµ'," + " `alm_low_coe_lower_en` tinyint(4) NOT NULL DEFAULT '1' COMMENT 'ÏÂÏÂÏÞãÐֵʹÄÜ[0-²»ÆôÓà 1-ÆôÓÃ]'," + " PRIMARY KEY (`num`)," + " KEY `index_alm_id` (`alm_id`)," + " KEY `index_dev_id` (`dev_Id`)" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8"; sql.sqlMysqlExecute(sql_str); //´´½¨Ðµĸ澯²ÎÊý±í //System.out.println("´´½¨Ðµĸ澯²ÎÊý±í"); } } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { if(sql != null){ sql.close_con(); } } } /** * ´ÓÊý¾Ý¿âÖлñȡÿ¸öµç³Ø¸æ¾¯²ÎÊý,»òÕß½«Ð¼ÓÈëµÄÉ豸Ìí¼Ó´ïµ½²ÎÊýÊý¾Ý¿â±íÖÐ * @param conn * @param battdata */ public void getBattAlarmParam(Connection conn,BattData_RT battdata){ Sql_Mysql sql = new Sql_Mysql(conn); String sql_str; ResultSet res = null; try { boolean flag = false; sql_str = " SELECT num,dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,note,alm_high_coe_upper,alm_high_coe_upper_en,alm_low_coe_lower,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower " + " FROM db_param.tb_dev_param " + " WHERE dev_Id = "+battdata.FBSDeviceId; res = sql.sqlMysqlQuery(sql_str); AlarmParamCell param; int pm_id; boolean ALM_TYPE_OnlineVol_Init = false; boolean ALM_TYPE_GroupVol_Init = false; boolean ALM_TYPE_BattChargeCurr_Init = false; boolean ALM_TYPE_BattDisChargeCurr_Init = false; boolean ALM_TYPE_MonVol_Init = false; boolean ALM_TYPE_MonTmp_Init = false; boolean ALM_TYPE_MonRes_Init = false; boolean ALM_TYPE_ConnRes_Init = false; boolean ALM_TYPE_DisChargeMonVol_Init = false; boolean ALM_TYPE_MONLYVOL_Init = false; boolean ALM_TYPE_MONREALCAP_Init = false; while(res.next()){ pm_id = res.getInt("alm_id"); switch(pm_id) { case BattAlarmData.ALM_TYPE_OnlineVol_ID: { ALM_TYPE_OnlineVol_Init = true; param = battdata.m_BattAlarmParam.alm_OnlineVol; }break; case BattAlarmData.ALM_TYPE_GroupVol_ID: { ALM_TYPE_GroupVol_Init = true; param = battdata.m_BattAlarmParam.alm_GroupVol; }break; case BattAlarmData.ALM_TYPE_BattChargeCurr_ID:{ ALM_TYPE_BattChargeCurr_Init = true; param = battdata.m_BattAlarmParam.alm_BattChargeCurr; }break; case BattAlarmData.ALM_TYPE_BattDisChargeCurr_ID:{ ALM_TYPE_BattDisChargeCurr_Init = true; param = battdata.m_BattAlarmParam.alm_BattDisChargeCurr; }break; case BattAlarmData.ALM_TYPE_MonVol_ID:{ ALM_TYPE_MonVol_Init = true; param = battdata.m_BattAlarmParam.alm_MonVol; }break; case BattAlarmData.ALM_TYPE_MonTmp_ID:{ ALM_TYPE_MonTmp_Init = true; param = battdata.m_BattAlarmParam.alm_MonTmp; }break; case BattAlarmData.ALM_TYPE_MonRes_ID:{ ALM_TYPE_MonRes_Init = true; param = battdata.m_BattAlarmParam.alm_MonRes; }break; case BattAlarmData.ALM_TYPE_ConnRes_ID:{ ALM_TYPE_ConnRes_Init = true; param = battdata.m_BattAlarmParam.alm_ConnRes; }break; case BattAlarmData.ALM_TYPE_DisChargeMonVol_ID:{ ALM_TYPE_DisChargeMonVol_Init = true; param = battdata.m_BattAlarmParam.alm_DischargeMonVol; }break; case BattAlarmData.ALM_TYPE_MONLYVOL_ID:{ ALM_TYPE_MONLYVOL_Init = true; param = battdata.m_BattAlarmParam.alm_MonLYVol; }break; case BattAlarmData.ALM_TYPE_MONREALCAP_ID:{ ALM_TYPE_MONREALCAP_Init = true; param = battdata.m_BattAlarmParam.alm_MonREALCAP; }break; default: param = null; break; } if(null != param) { param.alm_Id = res.getInt("alm_id"); param.alm_Name = res.getString("alm_name"); param.alm_High = res.getFloat("alm_high_coe"); param.alm_Low = res.getFloat("alm_low_coe"); param.alm_High_Level = res.getInt("alm_high_level"); param.alm_Low_Level = res.getInt("alm_low_level"); param.alm_High_EN = res.getBoolean("alm_high_en"); param.alm_Low_EN = res.getBoolean("alm_low_en"); param.alm_high_coe_upper = res.getFloat("alm_high_coe_upper"); param.alm_low_coe_lower = res.getFloat("alm_low_coe_lower"); param.alm_high_coe_upper_en = res.getBoolean("alm_high_coe_upper_en"); param.alm_low_coe_lower_en = res.getBoolean("alm_low_coe_lower_en"); param.alm_delay_time = res.getInt("alm_delay_time"); param.alm_high_level_upper = res.getInt("alm_high_level_upper"); param.alm_low_level_lower = res.getInt("alm_low_level_lower"); //System.err.println(param); } flag = true; } if(!ALM_TYPE_OnlineVol_Init) { //ÉÐÎÞÔÚÏßµçѹ¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_OnlineVol_ID+",'Batt_Alarm_Type_OnlineVol', "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_High+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_delay_time+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_OnlineVol.alm_low_level_lower+");"); } if(!ALM_TYPE_GroupVol_Init) { //ÉÐÎÞ×é¶Ëµçѹ¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + " ("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_GroupVol_ID+",'Batt_Alarm_Type_GroupVol', "+battdata.m_BattAlarmParam.alm_GroupVol.alm_High+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_delay_time+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_GroupVol.alm_low_level_lower+");"); } if(!ALM_TYPE_BattChargeCurr_Init) { //ÉÐÎÞµç³Ø³äµçµçÁ÷¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_BattChargeCurr_ID+",'Batt_Alarm_Type_BattChargeCurr', "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_High+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_Low+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_delay_time+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_low_level_lower+");"); } if(!ALM_TYPE_BattDisChargeCurr_Init) { //ÉÐÎÞµç³Ø·ÅµçµçÁ÷¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_BattDisChargeCurr_ID+",'Batt_Alarm_Type_BattDisChargeCurr', "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_High+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_Low+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_delay_time+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_low_level_lower+");"); } if(!ALM_TYPE_MonVol_Init) { //ÉÐÎÞµ¥Ìåµçѹ¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MonVol_ID+",'Batt_Alarm_Type_MonVol', "+battdata.m_BattAlarmParam.alm_MonVol.alm_High+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_MonVol.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_MonVol.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_MonVol.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_MonVol.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_MonVol.alm_delay_time+","+battdata.m_BattAlarmParam.alm_MonVol.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_MonVol.alm_low_level_lower+");"); } if(!ALM_TYPE_MonTmp_Init) { //ÉÐÎÞµ¥Ìåµçѹ¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MonTmp_ID+",'Batt_Alarm_Type_MonTmp', "+battdata.m_BattAlarmParam.alm_MonTmp.alm_High+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_delay_time+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_MonTmp.alm_low_level_lower+");"); } if(!ALM_TYPE_MonRes_Init) { //ÉÐÎÞµ¥ÌåÄÚ×è¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MonRes_ID+",'Batt_Alarm_Type_MonRes', "+battdata.m_BattAlarmParam.alm_MonRes.alm_High+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_MonRes.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_MonRes.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_MonRes.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_MonRes.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_MonRes.alm_delay_time+","+battdata.m_BattAlarmParam.alm_MonRes.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_MonRes.alm_low_level_lower+");"); } if(!ALM_TYPE_ConnRes_Init) { //ÉÐÎÞÁ¬½ÓÌõ×迹¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_ConnRes_ID+",'Batt_Alarm_Type_ConnRes', "+battdata.m_BattAlarmParam.alm_ConnRes.alm_High+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_Low+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_delay_time+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_ConnRes.alm_low_level_lower+");"); } if(!ALM_TYPE_DisChargeMonVol_Init) { //ÉÐÎ޷ŵ絥Ìåµçѹ¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_DisChargeMonVol_ID+",'Batt_Alarm_Type_DisChargeMonVol', "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_High+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_delay_time+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_low_level_lower+");"); } if(!ALM_TYPE_MONLYVOL_Init) { //ÉÐÎÞ©Һµçѹ¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MONLYVOL_ID+",'Batt_Alarm_Type_MonLYVol', "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_High+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_delay_time+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_MonLYVol.alm_low_level_lower+");"); } if(!ALM_TYPE_MONREALCAP_Init) { //ÉÐÎÞµ¥ÌåÔ¤¹ÀÈÝÁ¿¸æ¾¯²ÎÊý sql.sqlMysqlExecute("INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en,alm_high_coe_upper,alm_low_coe_lower,alm_high_coe_upper_en,alm_low_coe_lower_en,alm_delay_time,alm_high_level_upper,alm_low_level_lower)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MONREALCAP_ID+",'Batt_Alarm_Type_MonREALCAP', "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_High+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_Low_EN+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_high_coe_upper+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_low_coe_lower+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_high_coe_upper_en+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_low_coe_lower_en+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_delay_time+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_high_level_upper+","+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_low_level_lower+");"); } /*if(!flag){ sql_str = "INSERT INTO db_param.tb_dev_param " + "(dev_Id,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en)" + " VALUES " + "("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_OnlineVol_ID+",'Batt_Alarm_Type_OnlineVol', "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_High+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_OnlineVol.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_GroupVol_ID+",'Batt_Alarm_Type_GroupVol', "+battdata.m_BattAlarmParam.alm_GroupVol.alm_High+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_GroupVol.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_BattChargeCurr_ID+",'Batt_Alarm_Type_BattChargeCurr', "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_High+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_Low+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_BattChargeCurr.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_BattDisChargeCurr_ID+",'Batt_Alarm_Type_BattDisChargeCurr', "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_High+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_Low+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_BattDisChargeCurr.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MonVol_ID+",'Batt_Alarm_Type_MonVol', "+battdata.m_BattAlarmParam.alm_MonVol.alm_High+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonVol.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MonTmp_ID+",'Batt_Alarm_Type_MonTmp', "+battdata.m_BattAlarmParam.alm_MonTmp.alm_High+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonTmp.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MonRes_ID+",'Batt_Alarm_Type_MonRes', "+battdata.m_BattAlarmParam.alm_MonRes.alm_High+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonRes.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_ConnRes_ID+",'Batt_Alarm_Type_ConnRes', "+battdata.m_BattAlarmParam.alm_ConnRes.alm_High+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_Low+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_ConnRes.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_DisChargeMonVol_ID+",'Batt_Alarm_Type_DisChargeMonVol', "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_High+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_DischargeMonVol.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MONLYVOL_ID+",'Batt_Alarm_Type_MonLYVol', "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_High+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonLYVol.alm_Low_EN+")" + ",("+battdata.FBSDeviceId+","+BattAlarmData.ALM_TYPE_MONREALCAP_ID+",'Batt_Alarm_Type_MonREALCAP', "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_High+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_Low+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_High_Level+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_Low_Level+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_High_EN+", "+battdata.m_BattAlarmParam.alm_MonREALCAP.alm_Low_EN+");" ; sql.sqlMysqlExecute(sql_str); }*/ } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally{ if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } } /** * ´´½¨Êý¾Ý¿â±ítb_alarm_param£¬²¢ÇÒ¸ù¾Ý±íÖеÄÊý¾ÝÉèÖÃBattAlarmDataÀàÖеÄÉ豸¸æ¾¯²ÎÊý * @param conn */ public void getOrCreateBattAlarmParam(Connection conn) { Sql_Mysql sql = new Sql_Mysql(conn); String sql_str; ResultSet res = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_PARAM); if(false == sql.sqlMysqlCheckIfTableExist(BattAlarmParamTableName)) { System.out.println(BattAlarmParamTableName + " is not exist, create it now..."); ArrayList al_sqlstr = new ArrayList(); sql_str = "CREATE TABLE `" + BattAlarmParamTableName + "` " + "( `num` INT NOT NULL AUTO_INCREMENT, " + "`alm_id` INT NOT NULL DEFAULT 0, " + "`alm_name` VARCHAR(50) NOT NULL DEFAULT ' ', " + "`alm_high_coe` FLOAT NOT NULL DEFAULT 0, " + "`alm_low_coe` FLOAT NOT NULL DEFAULT 0, " + "`alm_high_level` INT NOT NULL DEFAULT 0, " + "`alm_low_level` INT NOT NULL DEFAULT 0, " + "`alm_high_en` BOOLEAN NOT NULL DEFAULT false, " + "`alm_low_en` BOOLEAN NOT NULL DEFAULT false, " + "PRIMARY KEY (`num`));"; al_sqlstr.add(sql_str); sql_str = "INSERT INTO " + BattAlarmParamTableName + " (alm_id, " + "alm_name, " + "alm_high_coe, " + "alm_low_coe, " + "alm_high_level, " + "alm_low_level, " + "alm_high_en, " + "alm_low_en)" + " VALUES " + "(" + BattAlarmData.ALM_TYPE_OnlineVol_ID + ", 'Batt_Alarm_Type_OnlineVol', 1.2, 0.8, 2, 2, FALSE, FALSE), " + "(" + BattAlarmData.ALM_TYPE_GroupVol_ID + ", 'Batt_Alarm_Type_GroupVol', 1.2, 0.8, 2, 2, TRUE, TRUE), " + "(" + BattAlarmData.ALM_TYPE_BattChargeCurr_ID + ", 'Batt_Alarm_Type_BattChargeCurr', 3, 0, 3, 3, TRUE, FALSE), " + "(" + BattAlarmData.ALM_TYPE_BattDisChargeCurr_ID + ", 'Batt_Alarm_Type_BattDisChargeCurr', 3, 0, 3, 3, TRUE, FALSE), " + "(" + BattAlarmData.ALM_TYPE_MonVol_ID + ", 'Batt_Alarm_Type_MonVol', 1.2, 0.8, 2, 2, TRUE, TRUE), " + "(" + BattAlarmData.ALM_TYPE_MonTmp_ID + ", 'Batt_Alarm_Type_MonTmp', 1.5, 0.5, 2, 2, TRUE, TRUE), " + "(" + BattAlarmData.ALM_TYPE_MonRes_ID + ", 'Batt_Alarm_Type_MonRes', 2, 0.5, 2, 2, TRUE, TRUE), " + "(" + BattAlarmData.ALM_TYPE_ConnRes_ID + ", 'Batt_Alarm_Type_ConnRes', 2, 0.5, 2, 2, TRUE, TRUE), " + "(" + BattAlarmData.ALM_TYPE_DisChargeMonVol_ID + ", 'Batt_Alarm_Type_DisChargeMonVol', 1.2, 0.8, 2, 2, FALSE, TRUE)," + "(" + BattAlarmData.ALM_TYPE_MONLYVOL_ID + ", 'Batt_Alarm_Type_MonLYVol', 1.2, 0.7, 2, 2, TRUE, FALSE)"; al_sqlstr.add(sql_str); for(int n=0; n 600) m_MonitorParam.SaveDataTimeInterval = 600; if(m_MonitorParam.MonVolChangeLevel < 0) m_MonitorParam.MonVolChangeLevel = 0; if(m_MonitorParam.MonVolChangeLevel > 1) m_MonitorParam.MonVolChangeLevel = 1; if(m_MonitorParam.TestTimeLongMinimum < 60) m_MonitorParam.TestTimeLongMinimum = 60; if(m_MonitorParam.TestTimeLongMinimum > 3600) m_MonitorParam.TestTimeLongMinimum = 3600; if(m_MonitorParam.TestDataRecordCountMax < 5000) m_MonitorParam.TestDataRecordCountMax = 5000; if(m_MonitorParam.TestDataRecordCountMax > 20000) m_MonitorParam.TestDataRecordCountMax = 20000; if(m_MonitorParam.BattTestGroupCountMax < 10) m_MonitorParam.BattTestGroupCountMax = 10; if(m_MonitorParam.BattTestGroupCountMax > 50) m_MonitorParam.BattTestGroupCountMax = 50; */ } /** * ´´½¨tb_battalarm_dataÊý¾Ý¿â±í£¬²¢ÇÒÏò±íÖÐÌí¼ÓË÷Òý * @param conn */ public static void createBattAlarmDataTable_IfNotExist(Connection conn) { Sql_Mysql sql = new Sql_Mysql(conn); ResultSet res = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); if(false == sql.sqlMysqlCheckIfTableExist(BattAlarmDataTableName)) { sql.logger.info(BattAlarmDataTableName + " is not exist, create it now..."); String sql_str = "CREATE TABLE `" + BattAlarmDataTableName + "` " + "( `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `BattGroupId` int(11) NOT NULL DEFAULT '0'," + " `MonNum` int(11) NOT NULL DEFAULT '0'," + " `Record_Id` bigint(20) NOT NULL DEFAULT '0'," + " `alm_id` int(11) NOT NULL DEFAULT '0'," + " `alm_signal_id` int(11) NOT NULL DEFAULT '0'," + " `alm_level` int(11) NOT NULL DEFAULT '0'," + " `alm_start_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_end_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_value` float NOT NULL DEFAULT '0'," + " `alm_is_confirmed` tinyint(1) NOT NULL DEFAULT '0'," + " `alm_confirmed_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_cleared_type` int(11) NOT NULL DEFAULT '0'," + " `usr_Id` int(11) NOT NULL DEFAULT '0'," + " `work_flag` tinyint(4) NOT NULL DEFAULT '0'," + " `msg_flag` tinyint(4) NOT NULL DEFAULT '0'," + " `alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '¸æ¾¯ÖØÒªµÈ¼¶[0:ÖØÒª£»1:½ô¼±]'," + " PRIMARY KEY (`num`)," + " KEY `index_battgroup_id` (`BattGroupId`)," + " KEY `index_Record_Id` (`Record_Id`)," + " KEY `index_alm_id` (`alm_id`)," + " KEY `index_alm_start_time` (`alm_start_time`)," + " KEY `index_alm_cleared_type` (`alm_cleared_type`)," + " KEY `index_alm_signal_id` (`alm_signal_id`)," + " KEY `index_alm_level` (`alm_level`)" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"; sql.sqlMysqlExecute(sql_str); } //--------------½«alm_is_cleared boolean×ֶθÄΪalm_cleared_type intÀàÐÍ 2016-05-09--------------// res = sql.sqlMysqlQuery("SELECT DATA_TYPE FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='" + BattAlarmDataTableName + "'" + " AND column_name='alm_is_cleared'"); if(true == res.next()) { if(false == "int".equals(res.getString("DATA_TYPE").toLowerCase())) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " CHANGE alm_is_cleared alm_cleared_type INT NOT NULL DEFAULT 0;"); } } //Ìí¼ÓÖ¸¶¨µÄwork_flagÁÐ(Åɵ¥¹ÜÀí) res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='tb_battalarm_data'" + " AND column_name='work_flag'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.Battalarm_Data_Table + " ADD COLUMN `work_flag` tinyint NOT NULL DEFAULT 0;"); } res = null; //Ìí¼ÓÖ¸¶¨µÄmsg_flagÁÐ(Åɵ¥¹ÜÀí) res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='tb_battalarm_data'" + " AND column_name='msg_flag'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.Battalarm_Data_Table + " ADD COLUMN `msg_flag` tinyint NOT NULL DEFAULT 0;"); } res = null; //Ìí¼ÓÖ¸¶¨µÄalm_severity ÁÐ(¸æ¾¯ÖØÒªµÈ¼¶) res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='tb_battalarm_data'" + " AND column_name='alm_severity'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.Battalarm_Data_Table + " ADD COLUMN `alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '¸æ¾¯ÖØÒªµÈ¼¶[0:ÖØÒª£»1:½ô¼±]';"); } //---------------------------------------------------------------------------------------------// //------------------------------------- Ìí¼ÓË÷Òý 2016-05-02 ------------------------------------// res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='BattGroupId'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_battgroup_id` (`BattGroupId` ASC);"); //sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_mon_Id` (`alm_mon_Id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='Record_Id'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_Record_Id` (`Record_Id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='alm_id'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_id` (`alm_id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='alm_start_time'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_start_time` (`alm_start_time` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='alm_cleared_type'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_cleared_type` (`alm_cleared_type` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='alm_signal_id'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_signal_id` (`alm_signal_id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataTableName + " where column_name='alm_level'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_level` (`alm_level` ASC);"); } //---------------------------------------------------------------------------------------------// } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } } /** * ´´½¨µç³Ø¸æ¾¯ÀúÊ·¼Ç¼±í * @param m_Conn_Pool */ private void createBattAlarmDataHistoryTable_IfNotExist(MysqlConnPool m_Conn_Pool) { Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); ResultSet res = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); if(false == sql.sqlMysqlCheckIfTableExist(BattAlarmDataHistoryTableName)) { sql.logger.info(BattAlarmDataHistoryTableName + " is not exist, create it now..."); String sql_str = "CREATE TABLE IF NOT EXISTS `tb_battalarm_data_history` (" + " `num` bigint(20) NOT NULL AUTO_INCREMENT," + " `BattGroupId` int(11) NOT NULL DEFAULT '0'," + " `MonNum` int(11) NOT NULL DEFAULT '0'," + " `Record_Id` bigint(20) NOT NULL DEFAULT '0'," + " `alm_id` int(11) NOT NULL DEFAULT '0'," + " `alm_signal_id` int(11) NOT NULL DEFAULT '0'," + " `alm_level` int(11) NOT NULL DEFAULT '0'," + " `alm_start_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_end_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_value` float NOT NULL DEFAULT '0'," + " `alm_is_confirmed` tinyint(1) NOT NULL DEFAULT '0'," + " `alm_confirmed_time` datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," + " `alm_cleared_type` int(11) NOT NULL DEFAULT '0'," + " `usr_Id` int(11) NOT NULL DEFAULT '0'," + " `alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '¸æ¾¯ÖØÒªµÈ¼¶[0:ÖØÒª£»1:½ô¼±]'," + " PRIMARY KEY (`num`)," + " KEY `index_battgroup_id` (`BattGroupId`)," + " KEY `index_Record_Id` (`Record_Id`)," + " KEY `index_alm_id` (`alm_id`)," + " KEY `index_alm_start_time` (`alm_start_time`)," + " KEY `index_alm_cleared_type` (`alm_cleared_type`)," + " KEY `index_alm_signal_id` (`alm_signal_id`)," + " KEY `index_alm_level` (`alm_level`)" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"; sql.sqlMysqlExecute(sql_str); } res = null; //Ìí¼ÓÖ¸¶¨µÄalm_severity ÁÐ(¸æ¾¯ÖØÒªµÈ¼¶) res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns" + " WHERE table_schema='db_alarm'" + " AND table_name='tb_battalarm_data_history'" + " AND column_name='alm_severity'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.Battalarm_Data_History_Table + " ADD COLUMN `alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '¸æ¾¯ÖØÒªµÈ¼¶[0:ÖØÒª£»1:½ô¼±]';"); } //------------------------------------- Ìí¼ÓË÷Òý 2016-05-02 ------------------------------------// res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='BattGroupId'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_battgroup_id` (`BattGroupId` ASC);"); //sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataTableName + " ADD INDEX `index_alm_mon_Id` (`alm_mon_Id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='Record_Id'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_Record_Id` (`Record_Id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='alm_id'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_alm_id` (`alm_id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='alm_start_time'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_alm_start_time` (`alm_start_time` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='alm_cleared_type'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_alm_cleared_type` (`alm_cleared_type` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='alm_signal_id'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_alm_signal_id` (`alm_signal_id` ASC);"); } res = sql.sqlMysqlQuery("show index from " + BattAlarmDataHistoryTableName + " where column_name='alm_level'"); if(false == res.next()) { sql.sqlMysqlExecute("ALTER TABLE " + BattAlarmDataHistoryTableName + " ADD INDEX `index_alm_level` (`alm_level` ASC);"); } } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } } /** * ¸ù¾Ý¸æ¾¯¶ÔÏóÌí¼Óеĸ澯¼Ç¼»òÕßÈ¡Ïû¸æ¾¯¼Ç¼ * @param m_Conn_Pool.getConn() * @param alm_data */ public void insertOrUpdateBattAlarmDataToTable(MysqlConnPool m_Conn_Pool, BattAlarmData alm_data) { Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); if(true == sql.sqlMysqlCheckIfTableExist(BattAlarmDataTableName)) { //System.out.println("alm_id:"+alm_data.alm_id+"\t alm_signal_id:"+alm_data.alm_signal_id+"\t clear_type:"+alm_data.alm_cleared_type); //вúÉúµÄ¸æ¾¯¼Ç¼ if(BattAlarmData.ALM_CLEARED_TYPE_NULL == alm_data.alm_cleared_type) { BattAlarmData last_alarm = searchBattLastHistory(m_Conn_Pool,alm_data); if(last_alarm != null && last_alarm.alm_id == alm_data.alm_id && last_alarm.mon_num == alm_data.mon_num && last_alarm.alm_cleared_type == BattAlarmData.ALM_CLEARED_TYPE_NULL) { //µ±Ç°¸æ¾¯¼Ç¼ÒѾ­ÔÚµç³ØÊµÊ±¸æ¾¯±íÖдæÔÚ if(last_alarm.alm_signal_id != alm_data.alm_signal_id ) { //Èç¹û´æÔÚÏàͬÖÖÀ಻ͬÀàÐ͵ĸ澯 (¸æ¾¯Ãû³ÆÒ»ÖÂ;¸æ¾¯ÉÏÏÂÏÞ²»Í¬) //System.out.println("È¡Ïû֮ǰµÄ¸æ¾¯£¬Ìí¼Óеĸ澯"); //System.out.println("µç³Ø×éid"+alm_data.battgroup_id+"\t¸æ¾¯Öµ:"+alm_data.alm_value); last_alarm.alm_cleared_type = BattAlarmData.ALM_CLEARED_TYPE_AUTO; chageRealToHistoryAlarm(m_Conn_Pool, last_alarm); //½«Ö®Ç°ÏàͬÖÖÀ಻ͬÀàÐ͵ĸ澯±ä³ÉÀúÊ·¸æ¾¯ insertNewBattRealAlarm(m_Conn_Pool, alm_data); //²åÈ뵱ǰеĸ澯 }else{ //2023 lijun ¸æ¾¯µÈ¼¶±ä»¯Ê±ÐèÒª¸üи澯µÈ¼¶ if(last_alarm.alm_signal_level != alm_data.alm_signal_level) { //System.out.println(alm_data.battgroup_id+"¸æ¾¯µÈ¼¶Çл»last_level:"+last_alarm.alm_signal_level+"\tnow_level:"+alm_data.alm_signal_level); updateBattParamAlarm(m_Conn_Pool,alm_data); } } }else if(last_alarm != null && last_alarm.alm_cleared_type == BattAlarmData.ALM_CLEARED_TYPE_MANUAL){ //ÈôÊý¾Ý¿âÖÐÒÑ´æÔÚµ±Ç°ÀàÐ͵ÄÈ¡ÏûµÄ¸æ¾¯Ò²²»²åÈëÊý¾Ý¿âÖÐ }else{ //System.out.println("и澯¼Ç¼"+alm_data.alm_cleared_type); insertNewBattRealAlarm(m_Conn_Pool, alm_data); //²åÈëеĸ澯¼Ç¼ //System.out.println("Ö±½ÓÌí¼Óеĸ澯¼Ç¼"+alm_data.alm_cleared_type+"\t¸æ¾¯Öµ£º"+alm_data.alm_value+"\t record_id"+alm_data.record_id); } } else { //¸æ¾¯ÑÓ³Ù½áÊøµÄ¸æ¾¯¼Ç¼ if(BattAlarmData.ALM_CLEARED_TYPE_AUTO == alm_data.alm_cleared_type) { //System.out.println("Õý³£¸æ¾¯Ïûʧ"); chageRealToHistoryAlarm(m_Conn_Pool, alm_data); //½«ÊµÊ±¸æ¾¯±ä³ÉÀúÊ·¸æ¾¯ } } } } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); //System.out.println("sql.close_con()"); } } /** * ¸üÐÂÔ­À´ÊµÊ±¸æ¾¯µÄµÈ¼¶ * @param m_Conn_Pool2 * @param now_alarm */ private void updateBattParamAlarm(MysqlConnPool m_Conn_Pool2, BattAlarmData now_alarm) { String sql_str = " UPDATE db_alarm.tb_battalarm_data " + " SET alm_level = " + now_alarm.alm_signal_level + " WHERE BattGroupId = " + now_alarm.battgroup_id + " AND MonNum = " + now_alarm.mon_num + " AND alm_id = " + now_alarm.alm_id; Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool2.getConn()); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } public void insertNewBattRealAlarm(MysqlConnPool m_Conn_Pool, BattAlarmData alm_data) { Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); String sql_str = " INSERT INTO " + BattAlarmDataTableName + " " + "(BattGroupId, " + "MonNum, " + "Record_Id, " + "alm_id, " + "alm_signal_id, " + "alm_level, " + "alm_start_time, " + "alm_end_time, " + "alm_value, " + "alm_is_confirmed, " + "alm_confirmed_time, " + "alm_cleared_type, " + "alm_severity, " + "usr_Id) " + " VALUES " + "(" + alm_data.battgroup_id + ", " + alm_data.mon_num + ", " + alm_data.record_id + ", " + alm_data.alm_id + ", " + alm_data.alm_signal_id + ", " + alm_data.alm_signal_level + ", " + "'" + Com.getDateTimeFormat(alm_data.alm_start_time, Com.DTF_YMDhms) + "', " + "'" + Com.getDateTimeFormat(alm_data.alm_end_time, Com.DTF_YMDhms) + "', " + alm_data.alm_value + ", " + alm_data.alm_is_confirmed + ", " + "'" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + "', " + alm_data.alm_cleared_type + ", " + alm_data.alm_severity + ", " + alm_data.usr_id + ")"; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } /** * ½«µ±Ç°¸æ¾¯±ä³ÉÀúÊ·¸æ¾¯ * @param m_Conn_Pool * @param alm_data */ public void chageRealToHistoryAlarm(MysqlConnPool m_Conn_Pool, BattAlarmData alm_data) { String sql_str = " UPDATE " + BattAlarmDataTableName + " SET " + " alm_end_time='" + Com.getDateTimeFormat(alm_data.alm_end_time, Com.DTF_YMDhms) + "', " + " alm_cleared_type=" + alm_data.alm_cleared_type + " WHERE MonNum ="+alm_data.mon_num+" AND BattGroupId ="+alm_data.battgroup_id+" AND alm_id ="+alm_data.alm_id + " AND alm_signal_id = " + alm_data.alm_signal_id; Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } /** * Åжϵ±Ç°¸æ¾¯Ö®Ç°ÊÇ·ñ´æÔÚµ±Ç°µç³Ø×鵱ǰÖÐÀàµÄ¸æ¾¯,´æÔÚÔòÈ¡Ïûµ±Ç°µÄʵʱ¸æ¾¯,±ä³ÉÀúÊ·¸æ¾¯ * @param m_Conn_Pool.getConn() * @param alm_data */ public void checkBattAlarmData(MysqlConnPool m_Conn_Pool, BattAlarmData alm_data) { //²éѯʵʱ¼Ç¼±íÖÐÊÇ·ñ´æÔÚµ±Ç°ÖÖÀàµÄʵʱ¸æ¾¯¼Ç¼ String sql_str0 = "SELECT * FROM tb_battalarm_data " + " WHERE alm_id NOT IN(119010,119011) AND MonNum ="+alm_data.mon_num+" " + " AND BattGroupId ="+alm_data.battgroup_id+" AND alm_cleared_type != 0 " + " AND alm_id ="+alm_data.alm_id; //½«µ±Ç°µÄµç³ØÊµÊ±¸æ¾¯±ä³ÉÀúÊ·¸æ¾¯ String sql_str1 = " UPDATE tb_battalarm_data " + " SET alm_cleared_type = 1, " + " alm_end_time='" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + "' " + " WHERE alm_id NOT IN(119010,119011) AND MonNum ="+alm_data.mon_num+" AND alm_cleared_type = 1" + " AND BattGroupId ="+alm_data.battgroup_id+" AND alm_id ="+alm_data.alm_id; //½«µ±Ç°µÄʵʱ¸æ¾¯¼Ç¼²åÈëµ½ÀúÊ·¸æ¾¯±íÖÐ (²»°üÀ¨ÈÝÁ¿¸æ¾¯¼Ç¼) String sql_str2 = "INSERT INTO tb_battalarm_data_history" + "(BattGroupId,MonNum,Record_Id,alm_id,alm_signal_id,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,usr_Id,alm_severity) " + "(SELECT BattGroupId,MonNum,Record_Id,alm_id,alm_signal_id,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,usr_Id,alm_severity from tb_battalarm_data " + " WHERE alm_id NOT IN(119010,119011) AND MonNum ="+alm_data.mon_num+" AND BattGroupId ="+alm_data.battgroup_id+" " + " AND alm_cleared_type = 1 AND alm_id ="+alm_data.alm_id+ " AND alm_signal_id = " + alm_data.alm_signal_id + ")"; //½«ÊµÊ±¸æ¾¯±íÖеĸ澯¼Ç¼Çå¿Õ(²»°üÀ¨ÈÝÁ¿¸æ¾¯¼Ç¼) String sql_str3 = "DELETE FROM tb_battalarm_data " + " WHERE alm_id NOT IN(119010,119011) AND MonNum ="+alm_data.mon_num + " " + " AND BattGroupId ="+alm_data.battgroup_id+" AND alm_cleared_type =1 " + " AND alm_id ="+alm_data.alm_id + " AND alm_signal_id = " + alm_data.alm_signal_id; Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn()); try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); //ResultSet rs = sql.sqlMysqlQuery(sql_str0); //if(rs.next()){ //System.out.println("¸æ¾¯ÀàÐÍ:"+alm_data.alm_id+"\tµç³Ø×éid"+alm_data.battgroup_id+"\t µ¥Ìå±àºÅ"+alm_data.mon_num); //Èç¹û´æÔÚµ±Ç°µç³Ø×é,µ±Ç°ÖÖÀàµÄ¸æ¾¯¼Ç¼,¾Í½«Ö®Ç°µÄ¸æ¾¯¼Ç¼´æÈëÀúÊ·¸æ¾¯¼Ç¼,²¢É¾³ýʵʱ¸æ¾¯Öеĸ澯¼Ç¼ ArrayList sql_strs = new ArrayList(); //sql_strs.add(sql_str1); sql_strs.add(sql_str2); sql_strs.add(sql_str3); sql.makeManualCommit(sql_strs); //sql.sqlMysqlExecute(sql_str1); //sql.sqlMysqlExecute(sql_str2); //sql.sqlMysqlExecute(sql_str3); //} } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } private void getBattRtDataFromRamDB(Connection conn, BattData_RT rt_data) { Sql_Mysql sql = new Sql_Mysql(conn); ResultSet res = null; try { res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.BattRtState_Table + " WHERE BattGroupId=" + rt_data.BattGroupId); if(res.next()) { rt_data.TestData.onlineVol = res.getFloat("online_vol"); rt_data.TestData.groupVol = res.getFloat("group_vol"); rt_data.TestData.testCurr = res.getFloat("group_curr"); rt_data.TestData.battState = (byte) res.getInt("batt_state"); rt_data.TestData.recordTime = res.getTimestamp("rec_datetime"); } res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.BattRtData_Table + " WHERE BattGroupId=" + rt_data.BattGroupId + " ORDER BY mon_num ASC"); while(res.next()) { int batt_index = res.getInt("mon_num") - 1; if((batt_index >= 0) && (batt_index < rt_data.MonCount)) { MonVolData md = rt_data.al_MonVol.get(batt_index); md.monVol = res.getFloat("mon_vol"); md.monTmp = res.getFloat("mon_tmp"); md.monRes = res.getFloat("mon_res"); md.monLYVol = res.getFloat("mon_LY_vol"); md.monRealCap = res.getFloat("mon_cap"); //md.rec_date = res.getTimestamp("rec_datetime"); //System.out.println(md); } } res = sql.sqlMysqlQuery(" SELECT * FROM " + Sql_Mysql.FBS9100State_Table + " WHERE dev_id = " + rt_data.FBSDeviceId); if(res.next()) { rt_data.dev_workstate = res.getInt("dev_workstate"); //System.out.println("dev_workstate:"+rt_data.dev_workstate+"DDDD"+rt_data.FBSDeviceId); if(rt_data.FBSDeviceId/100000 == 6186) { //BTS2202É豸µÄ¹¤×÷״̬¶ÔÓ¦ rt_data.dev_workstate = res.getInt("dev_alarmstate"); } //System.out.println(rt_data.FBSDeviceId+"É豸¹¤×÷״̬£º" + rt_data.dev_workstate); } //¼ÆËãµç³Ø×éµÄµ¥Ìåʵ¼ÊÈÝÁ¿µç³Ø×éµÄ·ÅÍêÊ£ÓàÈÝÁ¿ BattAlarm_Thread_SQL.queryBattLastTestData(m_Conn_Pool, rt_data); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e1) { sql.logger.error(e1.toString(), e1); } } sql.close_con(); } } //¸üÐÂÉ豸¸æ¾¯Ï̵߳Äʱ¼ä´Á public static void updateBattAlarm_Time(MysqlConnPool conn_pool){ Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlUseDB(Sql_Mysql.WEB_Site); String sql_str = "UPDATE tb_process_survey SET ProcessTime = '"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + "' WHERE ProcessName = 'BMS_FBSDEV_ALARM_BATT' " + "AND ServerName='BMS_FBSDEV_ALARM'"; //System.out.println(sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } //Çå¿ÕÏß³ÌÆô¶¯Ç°µÄʵʱ¸æ¾¯ public static void clearHistoryAlarm_BattNew(MysqlConnPool conn_pool){ ArrayList sql_strs = new ArrayList(); //½«µ±Ç°µÄµç³ØÊµÊ±¸æ¾¯±ä³ÉÀúÊ·¸æ¾¯ String sql_str1 = " UPDATE tb_battalarm_data " + " SET alm_cleared_type = 1, " + " alm_end_time='" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + "' " + " WHERE alm_cleared_type = 0 AND alm_id NOT IN(119010,119011)"; sql_strs.add(sql_str1); //½«µ±Ç°µÄÀúÊ·¸æ¾¯¼Ç¼²åÈëµ½ÀúÊ·¸æ¾¯±íÖÐ (²»°üÀ¨ÈÝÁ¿¸æ¾¯¼Ç¼) String sql_str2 = "insert into tb_battalarm_data_history(BattGroupId,MonNum,Record_Id,alm_id,alm_signal_id,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,usr_Id) (select BattGroupId,MonNum,Record_Id,alm_id,alm_signal_id,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,usr_Id from tb_battalarm_data where alm_id NOT IN(119010,119011) AND alm_cleared_type = 1)"; sql_strs.add(sql_str2); //½«ÊµÊ±¸æ¾¯±íÖеĸ澯¼Ç¼Çå¿Õ(²»°üÀ¨ÈÝÁ¿¸æ¾¯¼Ç¼) String sql_str3 = "DELETE FROM tb_battalarm_data WHERE alm_cleared_type = 1 AND alm_id NOT IN(119010,119011)"; sql_strs.add(sql_str3); Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); sql.makeManualCommit(sql_strs); //sql.sqlMysqlExecute(sql_str1); //sql.sqlMysqlExecute(sql_str2); //sql.sqlMysqlExecute(sql_str3); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } //¸üÐÂÏß³Ì¼à¿ØµÄÆô¶¯Ê±¼ä public static void updateBattAlarm_StartTime(MysqlConnPool conn_pool,String version){ Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { sql.sqlMysqlUseDB(Sql_Mysql.WEB_Site); String sql_str = "UPDATE tb_process_survey " + "SET Process_starttime = '"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"'" + ",ProcessVersion = '"+version+"'" + " WHERE ProcessName = 'BMS_FBSDEV_ALARM_BATT' " + "AND ServerName='BMS_FBSDEV_ALARM'"; //System.out.println(sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error(e.toString(), e); } finally { sql.close_con(); } } /** * ²éѯµ±Ç°µç³Ø×é֮ǰÊÇ·ñ´æÔÚµ±Ç°ÖÖÀàµÄ¸æ¾¯ * @param alm_data * @return */ public static BattAlarmData searchBattLastHistory(MysqlConnPool conn_pool,BattAlarmData alm_data) { BattAlarmData battalarm = null; String sql_str = " SELECT * FROM db_alarm.tb_battalarm_data WHERE BattGroupId = " +alm_data.battgroup_id+ " AND alm_id = " + alm_data.alm_id + " AND alm_cleared_type != 1 AND MonNum = "+alm_data.mon_num; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); ResultSet rs = null; try { rs = sql.sqlMysqlQuery(sql_str); if(rs.next()){ battalarm = new BattAlarmData(); battalarm.battgroup_id = rs.getInt("BattGroupId"); battalarm.mon_num = rs.getInt("MonNum"); battalarm.record_id = rs.getLong("Record_Id"); battalarm.alm_id = rs.getInt("alm_id"); battalarm.alm_signal_id = rs.getInt("alm_signal_id"); battalarm.alm_signal_level = rs.getInt("alm_level"); battalarm.alm_start_time = rs.getTimestamp("alm_start_time"); battalarm.alm_end_time = rs.getTimestamp("alm_end_time"); battalarm.alm_value = rs.getFloat("alm_value"); battalarm.alm_is_confirmed = rs.getBoolean("alm_is_confirmed"); battalarm.alm_confirmed_Time = rs.getTimestamp("alm_confirmed_time"); battalarm.alm_cleared_type = rs.getInt("alm_cleared_type"); battalarm.usr_id = rs.getInt("usr_Id"); } } catch (SQLException e) { sql.logger.error(e.toString(), e); }finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } return battalarm; } /** * ²éѯʵʱ¸æ¾¯±íÖеÄËùÓбä³ÉÀúÊ·¸æ¾¯µÄ¼Ç¼ * @param alm_data * @return */ public static List searchAllHistAlarmFromReal(MysqlConnPool conn_pool) { List alarms = new ArrayList(); String sql_str = " SELECT * FROM db_alarm.tb_battalarm_data WHERE alm_id NOT IN(119010,119011) AND alm_cleared_type = 1"; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); ResultSet rs = null; try { rs = sql.sqlMysqlQuery(sql_str); BattAlarmData battalarm; if(rs.next()){ battalarm = new BattAlarmData(); battalarm.battgroup_id = rs.getInt("BattGroupId"); battalarm.mon_num = rs.getInt("MonNum"); battalarm.record_id = rs.getLong("Record_Id"); battalarm.alm_id = rs.getInt("alm_id"); battalarm.alm_signal_id = rs.getInt("alm_signal_id"); battalarm.alm_signal_level = rs.getInt("alm_level"); battalarm.alm_start_time = rs.getTimestamp("alm_start_time"); battalarm.alm_end_time = rs.getTimestamp("alm_end_time"); battalarm.alm_value = rs.getFloat("alm_value"); battalarm.alm_is_confirmed = rs.getBoolean("alm_is_confirmed"); battalarm.alm_confirmed_Time = rs.getTimestamp("alm_confirmed_time"); battalarm.alm_cleared_type = rs.getInt("alm_cleared_type"); battalarm.usr_id = rs.getInt("usr_Id"); alarms.add(battalarm); } } catch (SQLException e) { sql.logger.error(e.toString(), e); }finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { sql.logger.error(e.toString(), e); } } sql.close_con(); } return alarms; } @Override public void run() { try { updateBattAlarm_StartTime(m_Conn_Pool,"V"+main_FBS9100S_Alarm.m_VersionNum); //¸üÐÂÏß³Ì¼à¿ØÖÐµÄµç³Ø¸æ¾¯µÄÆô¶¯Ê±¼ä logger.info(this.getName() + " - BattAlarm_Thread Delayed For " + m_AppCfg.getBattAlarmClearedDelay() + " Seconds To Start..."); int delay_time_count = m_AppCfg.getBattAlarmFnStartDelay(); // for(int dt=0; dt al_alm = rt_data.makeAlarmData(); //System.err.println("µç³Ø¸æ¾¯¸öÊý:"+al_alm.size()+"=="+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); for(int cnt=0; cnt alarms = searchAllHistAlarmFromReal(m_Conn_Pool); //²éѯµç³ØÊµÊ±¸æ¾¯±íÖÐµÄµç³ØÀúÊ·¸æ¾¯¼Ç¼ //System.out.println("¸æ¾¯ÏûʧÊýÄ¿"+alarms.size()); if(alarms.size() >0) { for(int i =0 ;i alarms = new ArrayList(); String sql_str = " SELECT * FROM " + BattAlarmDataTableName + " " + " WHERE (alm_cleared_type = 0 OR alm_cleared_type = 2) AND alm_id NOT IN(119010,119011) AND BattGroupId= " + battdata.BattGroupId; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); ResultSet rs = null; try { sql.sqlMysqlUseDB(Sql_Mysql.DB_ALARM); rs = sql.sqlMysqlQuery(sql_str); BattAlarmData alarm = null; while(rs.next()) { alarm = new BattAlarmData(); alarm.battgroup_id = rs.getInt("BattGroupId"); alarm.alm_id = rs.getInt("alm_id"); alarm.alm_signal_id = rs.getInt("alm_signal_id"); alarm.alm_cleared_type = rs.getInt("alm_cleared_type"); alarm.mon_num = rs.getInt("monnum"); alarm.record_id = rs.getLong("Record_Id"); alarm.alm_start_time = rs.getTimestamp("alm_start_time"); //¸æ¾¯¿ªÊ¼Ê±¼ä alarm.alm_severity = rs.getInt("alm_severity"); //¸æ¾¯ÖØÒªµÈ¼¶ //µ±Ç°¸æ¾¯µÈ¼¶ alarm.alm_signal_level = rs.getInt("alm_level"); //System.err.println("alm_signal_level:" + alarm.alm_signal_level); alarms.add(alarm); } if(alarms.size()>0) { for(int i=0;i battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).dischargeMonVol_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).dischargeMonVol_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).dischargeMonVol_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).dischargeMonVol_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).dischargeMonVol_AlarmData.alm_start_time = alarm.alm_start_time; }break; //µç³Øµ¥Ìåµçѹ case BattAlarmData.ALM_TYPE_MonVol_ID:{ if(alarm.mon_num > battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_start_time = alarm.alm_start_time; }break; //µ¥ÌåÎÂ¶È case BattAlarmData.ALM_TYPE_MonTmp_ID:{ if(alarm.mon_num > battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_start_time = alarm.alm_start_time; }break; //µ¥ÌåÄÚ×è case BattAlarmData.ALM_TYPE_MonRes_ID:{ if(alarm.mon_num > battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_start_time = alarm.alm_start_time; }break; //Á¬½ÓÌõ×迹 case BattAlarmData.ALM_TYPE_ConnRes_ID:{ if(alarm.mon_num > battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).connRes_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).connRes_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).connRes_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).connRes_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).connRes_AlarmData.alm_start_time = alarm.alm_start_time; }break; //©Һµçѹ case BattAlarmData.ALM_TYPE_MONLYVOL_ID:{ if(alarm.mon_num > battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).monLYVol_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).monLYVol_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).monLYVol_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).monLYVol_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).monLYVol_AlarmData.alm_start_time = alarm.alm_start_time; }break; //µ¥ÌåÔ¤¹ÀÈÝÁ¿ case BattAlarmData.ALM_TYPE_MONREALCAP_ID:{ if(alarm.mon_num > battdata.al_MonVol.size()) { continue; } battdata.al_MonVol.get(alarm.mon_num-1).monRealCap_AlarmData.alm_cleared_type = alarm.alm_cleared_type; battdata.al_MonVol.get(alarm.mon_num-1).monRealCap_AlarmData.alm_signal_id = alarm.alm_signal_id; battdata.al_MonVol.get(alarm.mon_num-1).monRealCap_AlarmData.alm_severity = alarm.alm_severity; battdata.al_MonVol.get(alarm.mon_num-1).monRealCap_AlarmData.alm_signal_level = alarm.alm_signal_level; battdata.al_MonVol.get(alarm.mon_num-1).monRealCap_AlarmData.alm_start_time = alarm.alm_start_time; }break; } } } } catch (SQLException e) { e.printStackTrace(); } finally { if(null != rs) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } sql.close_con(); } } }