Browse Source

update 添加 双控告警的 triggers 存储子告警的 type,用于手动恢复必要信息

dev
lucas 1 week ago
parent
commit
b05d8d65ed
  1. 22
      consumers/consumerAxySkAlarm.go

22
consumers/consumerAxySkAlarm.go

@ -208,7 +208,7 @@ func (the *consumerAxySkAlarm) judgeSK() string {
log.Printf("测点[%s]本次已经触发过[%s],不再重复触发", sid, v)
continue
}
isAlarm, level, detail, alarmTime := the.isRuleAlarm(trigger, stationAlarmInfo)
isAlarm, level, detail, alarmTime, triggerTypeCodes := the.isRuleAlarm(trigger, stationAlarmInfo)
var alarmInfoTemplate *models.EsAlarm
if stationAlarmInfo.Alarm3007 != nil {
@ -245,7 +245,7 @@ func (the *consumerAxySkAlarm) judgeSK() string {
Time: alarmTime,
}
payload := the.skAlarmInfo(alarmInfoTemplate, level, detail, alarmTime)
payload := the.skAlarmInfo(alarmInfoTemplate, level, detail, alarmTime, triggerTypeCodes)
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload)
} else {
if level == 0 {
@ -262,7 +262,7 @@ func (the *consumerAxySkAlarm) judgeSK() string {
return ""
}
func (the *consumerAxySkAlarm) skAlarmInfo(alarmInfoTemplate *models.EsAlarm, level int, detail string, alarmTime time.Time) []byte {
func (the *consumerAxySkAlarm) skAlarmInfo(alarmInfoTemplate *models.EsAlarm, level int, detail string, alarmTime time.Time, triggerTypeCodes []string) []byte {
alarmMsg := models.KafkaAlarm{
MessageMode: "AlarmGeneration",
StructureId: alarmInfoTemplate.StructureId,
@ -275,7 +275,7 @@ func (the *consumerAxySkAlarm) skAlarmInfo(alarmInfoTemplate *models.EsAlarm, le
Time: alarmTime.Add(8 * time.Hour).Format("2006-01-02T15:04:05+0800"),
SourceTypeId: 2, // 0:DTU, 1:传感器, 2:测点
Sponsor: "goInOut_axySkAlarm",
Extras: nil,
Extras: map[string][]string{"triggerTypeCodes": triggerTypeCodes},
SubDevices: nil,
}
payload, _ := json.Marshal(alarmMsg)
@ -301,10 +301,11 @@ func (the *consumerAxySkAlarm) skAlarmElimination(alarmInfoTemplate *models.EsAl
return payload
}
func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationAlarm AXY_SK.StationAlarmGroup) (bool, int, string, time.Time) {
func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationAlarm AXY_SK.StationAlarmGroup) (bool, int, string, time.Time, []string) {
level := 0
detail := ""
dt := time.Time{}
var triggerTypeCodes []string
//3007和3008都要有
if trigger.Rule == 0 {
isAlarm := true
@ -323,7 +324,7 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA
dt = stationAlarm.Alarm3007.EndTime
}
detail += stationAlarm.Alarm3007.Detail
triggerTypeCodes = append(triggerTypeCodes, stationAlarm.Alarm3007.AlarmTypeCode)
}
case 1:
@ -339,6 +340,7 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA
if stationAlarm.Alarm3008.EndTime.After(dt) {
dt = stationAlarm.Alarm3008.EndTime
}
triggerTypeCodes = append(triggerTypeCodes, stationAlarm.Alarm3008.AlarmTypeCode)
}
}
@ -346,7 +348,7 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA
if isAlarm {
level = trigger.AlarmLevel
}
return isAlarm, level, detail, dt
return isAlarm, level, detail, dt, triggerTypeCodes
}
//3007和3008 任何一个
@ -362,6 +364,7 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA
if stationAlarm.Alarm3007.EndTime.After(dt) {
dt = stationAlarm.Alarm3007.EndTime
}
triggerTypeCodes = append(triggerTypeCodes, stationAlarm.Alarm3007.AlarmTypeCode)
}
case 1:
if stationAlarm.Alarm3008.CurrentLevel <= trigger.AlarmLevel {
@ -370,6 +373,7 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA
if stationAlarm.Alarm3008.EndTime.After(dt) {
dt = stationAlarm.Alarm3008.EndTime
}
triggerTypeCodes = append(triggerTypeCodes, stationAlarm.Alarm3008.AlarmTypeCode)
}
}
@ -378,9 +382,9 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA
break
}
}
return isAlarm, level, detail, dt
return isAlarm, level, detail, dt, triggerTypeCodes
}
return false, level, detail, dt
return false, level, detail, dt, triggerTypeCodes
}
func (the *consumerAxySkAlarm) updateEsAlarmTriggerHistory(structId int) {

Loading…
Cancel
Save