Browse Source

更新 最新版本

dev
lucas 1 week ago
parent
commit
0993fd5323
  1. 38
      consumers/consumerAxySkAlarm.go

38
consumers/consumerAxySkAlarm.go

@ -110,22 +110,7 @@ func (the *consumerAxySkAlarm) monitorInitial() error {
//the.updateTriggerStationConfig()
return nil
}
func (the *consumerAxySkAlarm) updateTriggerConfig() {
log.Printf("--> 定时 查询pg 更新 双控配置信息")
sql := `SELECT at.* FROM t_alarm_trigger as at order by at.struct_id, at.factor_id,at.alarm_level asc;`
err := the.infoPg.Query(&the.configAlarmTrigger, sql)
if err != nil {
log.Printf("查询数据库异常:err-> %s", err.Error())
return
}
for i, trigger := range the.configAlarmTrigger {
the.configAlarmTrigger[i].ConditionArray = trigger.ConditionRaw
}
log.Printf("当前共 %d条 启用配置", len(the.configAlarmTrigger))
//立即触发
the.judgeSK()
}
func (the *consumerAxySkAlarm) updateTriggerStationConfig() {
log.Printf("--> 定时 查询pg 更新 双控配置信息")
sql := `SELECT at.*,s.id as station_id,s.name as station_name
@ -204,13 +189,13 @@ func (the *consumerAxySkAlarm) judgeSK() string {
//判断是否满足告警
for sid, stationAlarmInfo := range stationAlarmMap {
log.Printf("判断测点[%s] 是否满足双控告警", sid)
if v, ok := onceTriggerStationAlarmMap[sid]; ok {
log.Printf("测点[%s]本次已经触发过[%s],不再重复触发", sid, v)
continue
}
isAlarm, level, detail, alarmTime, triggerTypeCodes := the.isRuleAlarm(trigger, stationAlarmInfo)
isAlarm, level, detail, alarmTime, triggerTypeCodes := the.isRuleAlarm(trigger, stationAlarmInfo)
log.Printf("trigger.Id=%d, 测点[%s]判断双控 告警[%v] level=%d", trigger.Id, sid, isAlarm, level)
var alarmInfoTemplate *models.EsAlarm
if stationAlarmInfo.Alarm3007 != nil {
alarmInfoTemplate = stationAlarmInfo.Alarm3007
@ -240,7 +225,7 @@ func (the *consumerAxySkAlarm) judgeSK() string {
}
}
//纪录历史告警
log.Printf("测点[%s]本次触发双控,时刻[%s]level=%d", sid, alarmTime.Format("2006-01-02 15:04:05"), level)
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{
SourceId: sid,
AlarmLevel: level,
@ -255,9 +240,13 @@ func (the *consumerAxySkAlarm) judgeSK() string {
level = v.AlarmLevel
}
}
payload := the.skAlarmElimination(alarmInfoTemplate, level, detail)
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload)
delete(the.historyStationAlarmMap, sid)
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)
payload := the.skAlarmElimination(alarmInfoTemplate, level, detail)
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload)
delete(the.historyStationAlarmMap, sid)
}
}
}
}
@ -274,7 +263,7 @@ func (the *consumerAxySkAlarm) skAlarmInfo(alarmInfoTemplate *models.EsAlarm, le
AlarmTypeCode: "3077",
AlarmCode: fmt.Sprintf("3077000%d", level),
Content: detail,
Time: alarmTime.Add(8 * time.Hour).Format("2006-01-02T15:04:05+0800"),
Time: alarmTime.Add(8 * time.Hour).Format("2006-01-02T15:04:05.000+0800"),
SourceTypeId: 2, // 0:DTU, 1:传感器, 2:测点
Sponsor: "goInOut_axySkAlarm",
Extras: nil,
@ -293,7 +282,7 @@ func (the *consumerAxySkAlarm) skAlarmElimination(alarmInfoTemplate *models.EsAl
AlarmTypeCode: "3077",
AlarmCode: fmt.Sprintf("3077000%d", level),
Content: "",
Time: time.Now().Format("2006-01-02T15:04:05+0800"),
Time: time.Now().Format("2006-01-02T15:04:05.000+0800"),
SourceTypeId: 2, // 0:DTU, 1:传感器, 2:测点
Sponsor: "goInOut_axySkAlarm",
Extras: nil,
@ -395,13 +384,16 @@ func (the *consumerAxySkAlarm) updateEsAlarmTriggerHistory(structId int) {
if err != nil {
log.Printf("结构物[%d] 查询历史有效AlarmTrigger 异常=>%s", structId, err.Error())
}
the.historyStationAlarmMap = make(map[string]AXY_SK.HistoryAlarm)
for _, alarm := range alarms {
the.historyStationAlarmMap[alarm.SourceId] = AXY_SK.HistoryAlarm{
SourceId: alarm.SourceId,
Time: alarm.EndTime,
AlarmLevel: alarm.CurrentLevel,
}
log.Printf("加载双控历史告警 SourceId=%s,time=%v", alarm.SourceId, alarm.EndTime)
}
log.Printf("双控历史告警 共 %d条", len(the.historyStationAlarmMap))
}
func (the *consumerAxySkAlarm) getEsAlarmTriggerHistoryQueryStr(structId int) string {

Loading…
Cancel
Save