| | |
| | |
|
| | | import com.base.AppConfig;
|
| | | import com.base.Com;
|
| | | import com.main.main_PowerDev_IEC61850;
|
| | | import com.power.data.PowerData_RT;
|
| | | import com.power.data.PowerData_RT_Array;
|
| | | import com.power.mysql.MysqlConnPool;
|
| | |
| | |
|
| | | }
|
| | |
|
| | | private void InsertPwrDevAlarmToTable(long record_id_t, int dev_id, int alm_type_id, int alm_level,float alm_value, Sql_Mysql sql,int alm_trigger) throws SQLException {
|
| | | private void InsertPwrDevAlarmToTable(long record_id_t, int dev_id, int alm_type_id, int alm_level,float alm_value, Sql_Mysql sql,int alm_trigger,int alm_severity) throws SQLException {
|
| | |
|
| | | //Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn());
|
| | |
|
| | |
| | | + "alm_is_confirmed, "
|
| | | + "alm_confirmed_time,"
|
| | | + "alm_trigger, "
|
| | | + "alm_severity, "
|
| | | + "alm_cleared_type) "
|
| | |
|
| | | + " VALUES "
|
| | |
| | | + false + ", "
|
| | | + "'" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + "', "
|
| | | + "'" + alm_trigger + "', "
|
| | | + "" + alm_severity + ", " |
| | | + PwrDeviceAlarm_Data.ALM_CLEARED_TYPE_NULL + " "
|
| | | + ")";
|
| | |
|
| | |
| | | + " WHERE PowerDeviceId=" + dev_id + " AND alm_type= "+ alm_type_id;
|
| | |
|
| | | //将当前设备实时告警表中的历史告警记录插入到设备历史告警表中
|
| | | String sql_str2 = " INSERT INTO " + Sql_Mysql.TB_PWRDEV_ALARM_HISTORY+"(record_id,PowerDeviceId,alm_type,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,alm_trigger) (SELECT record_id,PowerDeviceId,alm_type,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,alm_trigger from "+Sql_Mysql.TB_PWRDEV_ALARM+" WHERE PowerDeviceId="+dev_id+" AND alm_cleared_type!="+PwrDeviceAlarm_Data.ALM_CLEARED_TYPE_NULL+ " AND alm_type= "+ alm_type_id+")";
|
| | | String sql_str2 = " INSERT INTO " + Sql_Mysql.TB_PWRDEV_ALARM_HISTORY+"(record_id,PowerDeviceId,alm_type,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,alm_trigger,alm_severity) (SELECT record_id,PowerDeviceId,alm_type,alm_level,alm_start_time,alm_end_time,alm_value,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,alm_trigger,alm_severity from "+Sql_Mysql.TB_PWRDEV_ALARM+" WHERE PowerDeviceId="+dev_id+" AND alm_cleared_type!="+PwrDeviceAlarm_Data.ALM_CLEARED_TYPE_NULL+ " AND alm_type= "+ alm_type_id+")";
|
| | |
|
| | | //将实时告警表中的非实时告警删除
|
| | | String sql_str3 = " DELETE FROM " + Sql_Mysql.TB_PWRDEV_ALARM +" WHERE PowerDeviceId = " + dev_id+" AND alm_cleared_type != "+ PwrDeviceAlarm_Data.ALM_CLEARED_TYPE_NULL+ " AND alm_type= "+ alm_type_id;
|
| | |
| | |
|
| | | //try {
|
| | | sql.sqlMysqlUseDB(Sql_Mysql.DB_PWRDEV_ALARM);
|
| | | String sql_str = " SELECT PowerDeviceId,record_id,alm_level,alm_type,alm_cleared_type,alm_start_time "
|
| | | String sql_str = " SELECT PowerDeviceId,record_id,alm_level,alm_type,alm_cleared_type,alm_start_time,alm_severity "
|
| | | + " FROM " + Sql_Mysql.TB_PWRDEV_ALARM
|
| | | + " WHERE PowerDeviceId= "+ dev_id +" AND alm_type = "+alm_type_id
|
| | | + " ORDER BY alm_start_time DESC ";
|
| | |
| | | adata.setAlm_level(rs.getInt("alm_level"));
|
| | | adata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
|
| | | adata.setAlm_type(rs.getInt("alm_type"));
|
| | | adata.setAlm_type(rs.getInt("alm_type"));
|
| | | |
| | | adata.setAlm_severity(rs.getInt("alm_severity"));
|
| | | }
|
| | |
|
| | | //} catch (SQLException e) {
|
| | |
| | |
|
| | | /************************************************************/
|
| | | }
|
| | | |
| | | int alm_trigger = PwrDeviceAlarm_Data.Alm_Trigger_Node; //默认告警来源
|
| | | int alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Importance; //默认为重要告警
|
| | | int alm_trigger = PwrDeviceAlarm_Data.Alm_Trigger_Node; //默认告警来源
|
| | | if(null != almParam) {
|
| | | //default_almlevel = almParam.alm_level; //当前告警等级
|
| | | if(PwrDeviceAlarm_Data.Alm_Trigger_Param == almParam.alarm_source) {
|
| | |
| | | //上下限有效
|
| | | if(almParam.alarm_limitH_EN && alm_val > almParam.alarm_limitH) {
|
| | | alm_st = true;
|
| | | if(alm_val > almParam.alarm_limitH_upper) {
|
| | | alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
|
| | | }
|
| | | }else if(almParam.alarm_limitL_EN && alm_val < almParam.alarm_limitL) {
|
| | | alm_st = true;
|
| | | if(alm_val < almParam.alarm_limitL_lower) {
|
| | | alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
|
| | | }
|
| | | }else {
|
| | | alm_st = false;
|
| | | }
|
| | |
| | | //上限有效
|
| | | if(almParam.alarm_limitH_EN && alm_val > almParam.alarm_limitH) {
|
| | | alm_st = true;
|
| | | if(alm_val > almParam.alarm_limitH_upper) {
|
| | | alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
|
| | | }
|
| | | } else {
|
| | | alm_st = false;
|
| | | }
|
| | |
| | | //下限有效
|
| | | if(almParam.alarm_limitL_EN && alm_val < almParam.alarm_limitL) {
|
| | | alm_st = true;
|
| | | if(alm_val < almParam.alarm_limitL_lower) {
|
| | | alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
|
| | | }
|
| | | }else {
|
| | | alm_st = false;
|
| | | }
|
| | |
| | | if(0 == RecId) {
|
| | | RecId = UUID.randomUUID().getLeastSignificantBits();
|
| | | }
|
| | | InsertPwrDevAlarmToTable(RecId,dev_id,alm_type_id,default_almlevel,alm_val,sql,alm_trigger);
|
| | | InsertPwrDevAlarmToTable(RecId,dev_id,alm_type_id,default_almlevel,alm_val,sql,alm_trigger,alm_severity);
|
| | |
|
| | | }else if((adata != null) && (alm_st == false)) {
|
| | | ChangeRT_AlarmToHistoryAlarm(dev_id,alm_type_id,sql);
|
| | | }else if((adata!=null) && (adata.alm_level != default_almlevel)) {
|
| | | updatePwrDevAlarmLevelToTable( m_Conn_Pool,adata ,default_almlevel);
|
| | | }else if((adata != null) && (alm_severity != adata.alm_severity) && (alm_st)) {
|
| | | //当前告警存在,但是告警重要等级不一致时,下次告警检测再触发
|
| | | ChangeRT_AlarmToHistoryAlarm(dev_id,alm_type_id,sql);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | param.alarm_type = res.getInt("alarm_type"); //'0-上下限有效 1-上限有效 2-下限有效',
|
| | | param.alarm_en_node = res.getInt("alarm_en_node"); //告警来源是点位时告警使能[0:不启用;1:启用]
|
| | |
|
| | | |
| | | param.alarm_limitH_upper = res.getFloat("alarm_limitH_upper"); //'告警上上限阈值',
|
| | | param.alarm_limitL_lower = res.getFloat("alarm_limitL_lower"); //'告警下下限阈值',
|
| | | |
| | | |
| | | rtpd.almParams.put(param.alm_id, param);
|
| | | }
|
| | | } catch (SQLException e) {
|