|
|
@ -60,7 +60,6 @@ func (the *consumerAxySkAlarm) Initial(cfg string) error { |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
the.historyStationAlarmMap = make(map[string]AXY_SK.HistoryAlarm) |
|
|
|
err = the.monitorInitial() |
|
|
|
return err |
|
|
|
} |
|
|
@ -208,7 +207,8 @@ func (the *consumerAxySkAlarm) judgeSK() string { |
|
|
|
trigger.StructId, trigger.FactorId, level) |
|
|
|
onceTriggerStationAlarmMap[sid] = conditionStr |
|
|
|
//判断历史有没有
|
|
|
|
if hv, ok := the.historyStationAlarmMap[sid]; ok { |
|
|
|
hisK := fmt.Sprintf("%s_%s", sid, fmt.Sprintf("3077000%d", level)) |
|
|
|
if hv, ok := the.historyStationAlarmMap[hisK]; ok { |
|
|
|
if hv.AlarmLevel < level { //低等级告警过滤
|
|
|
|
log.Printf("测点[%s]本次触发 level=[%d] > 历史有效等级%d,不再重复触发", sid, level, hv.AlarmLevel) |
|
|
|
continue |
|
|
@ -225,8 +225,8 @@ func (the *consumerAxySkAlarm) judgeSK() string { |
|
|
|
} |
|
|
|
} |
|
|
|
//纪录历史告警
|
|
|
|
log.Printf("trigger.Id=%d, 测点[%s]本次触发双控,时刻[%s]level=%d", trigger.Id, sid, alarmTime.Format("2006-01-02 15:04:05"), level) |
|
|
|
the.historyStationAlarmMap[sid] = AXY_SK.HistoryAlarm{ |
|
|
|
log.Printf("trigger.Id=%d, 测点[%s]本次触发双控,%s,时刻[%s]level=%d", trigger.Id, sid, hisK, alarmTime.Format("2006-01-02 15:04:05"), level) |
|
|
|
the.historyStationAlarmMap[hisK] = AXY_SK.HistoryAlarm{ |
|
|
|
SourceId: sid, |
|
|
|
AlarmLevel: level, |
|
|
|
Time: alarmTime, |
|
|
@ -235,17 +235,16 @@ func (the *consumerAxySkAlarm) judgeSK() string { |
|
|
|
payload := the.skAlarmInfo(alarmInfoTemplate, level, detail, alarmTime, triggerTypeCodes) |
|
|
|
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload) |
|
|
|
} else { |
|
|
|
hisK := fmt.Sprintf("%s_%s", sid, fmt.Sprintf("3077000%d", trigger.AlarmLevel)) |
|
|
|
if level == 0 { |
|
|
|
if v, ok := the.historyStationAlarmMap[sid]; ok { |
|
|
|
level = v.AlarmLevel |
|
|
|
} |
|
|
|
level = trigger.AlarmLevel |
|
|
|
} |
|
|
|
if _, ok := the.historyStationAlarmMap[sid]; ok { |
|
|
|
log.Printf("trigger.Id=%d, 测点[%s]本次 恢复双控,时刻[%s]level=%d", trigger.Id, sid, alarmTime.Format("2006-01-02 15:04:05"), level) |
|
|
|
if v, ok := the.historyStationAlarmMap[hisK]; ok { |
|
|
|
log.Printf("trigger.Id=%d, 测点[%s]本次 恢复双控%s,时刻[%s]level=%d", trigger.Id, sid, hisK, v.Time.Format("2006-01-02 15:04:05"), level) |
|
|
|
|
|
|
|
payload := the.skAlarmElimination(alarmInfoTemplate, level, detail) |
|
|
|
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload) |
|
|
|
delete(the.historyStationAlarmMap, sid) |
|
|
|
delete(the.historyStationAlarmMap, hisK) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -386,12 +385,13 @@ func (the *consumerAxySkAlarm) updateEsAlarmTriggerHistory(structId int) { |
|
|
|
} |
|
|
|
the.historyStationAlarmMap = make(map[string]AXY_SK.HistoryAlarm) |
|
|
|
for _, alarm := range alarms { |
|
|
|
the.historyStationAlarmMap[alarm.SourceId] = AXY_SK.HistoryAlarm{ |
|
|
|
hisK := fmt.Sprintf("%s_%s", alarm.SourceId, alarm.AlarmCode) |
|
|
|
the.historyStationAlarmMap[hisK] = AXY_SK.HistoryAlarm{ |
|
|
|
SourceId: alarm.SourceId, |
|
|
|
Time: alarm.EndTime, |
|
|
|
AlarmLevel: alarm.CurrentLevel, |
|
|
|
} |
|
|
|
log.Printf("加载双控历史告警 SourceId=%s,time=%v", alarm.SourceId, alarm.EndTime) |
|
|
|
log.Printf("加载双控历史告警 hisK=%s,time=%v", hisK, alarm.EndTime) |
|
|
|
} |
|
|
|
log.Printf("双控历史告警 共 %d条", len(the.historyStationAlarmMap)) |
|
|
|
} |
|
|
|