Browse Source

update 查询不到原始告警的 进行自动恢复

dev
lucas 1 week ago
parent
commit
cd30522aec
  1. 44
      consumers/consumerAxySkAlarm.go

44
consumers/consumerAxySkAlarm.go

@ -11,6 +11,7 @@ import (
"goInOut/monitors"
"gopkg.in/yaml.v3"
"log"
"strconv"
"sync"
"time"
)
@ -243,6 +244,30 @@ func (the *consumerAxySkAlarm) judgeSK() string {
}
}
}
//无告警的测点,需要恢复
var noAlarmStationIds []string
var alarmStationIdMap map[string]string
for _, alarm := range alarms {
alarmStationIdMap[alarm.SourceId] = alarm.AlarmCode
}
for _, stationId := range trigger.StationIds {
stationIdStr := strconv.Itoa(stationId)
if _, ok := alarmStationIdMap[stationIdStr]; !ok {
noAlarmStationIds = append(noAlarmStationIds, stationIdStr)
}
}
//恢复无告警的双控测点
log.Printf("无告警,待恢复的测点ids==%v", noAlarmStationIds)
for _, stationId := range noAlarmStationIds {
content := "原始告警都已恢复"
payload := the.skAlarmAutoElimination(trigger.StructId, trigger.StructName, stationId, "", trigger.AlarmLevel, content)
the.OutKafka.Publish(the.Info.IoConfig.Out.Kafka.AlarmTopic, payload)
hisK := fmt.Sprintf("%s_%s", stationId, fmt.Sprintf("3077000%d", trigger.AlarmLevel))
delete(the.historyStationAlarmMap, hisK)
}
}
return ""
}
@ -316,6 +341,25 @@ func (the *consumerAxySkAlarm) skAlarmElimination(alarmInfoTemplate *models.EsAl
payload, _ := json.Marshal(alarmMsg)
return payload
}
func (the *consumerAxySkAlarm) skAlarmAutoElimination(structureId int, structName string, sourceId, sourceName string, level int, content string) []byte {
alarmMsg := models.KafkaAlarm{
MessageMode: "AlarmAutoElimination",
StructureId: structureId,
StructureName: structName,
SourceId: sourceId,
SourceName: sourceName,
AlarmTypeCode: "3077",
AlarmCode: fmt.Sprintf("3077000%d", level),
Content: content,
Time: time.Now().Format("2006-01-02T15:04:05.000+0800"),
SourceTypeId: 2, // 0:DTU, 1:传感器, 2:测点
Sponsor: "goInOut_axySkAlarm",
Extras: nil,
SubDevices: nil,
}
payload, _ := json.Marshal(alarmMsg)
return payload
}
func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationAlarm AXY_SK.StationAlarmGroup) (bool, int, string, time.Time, []string) {
level := 0

Loading…
Cancel
Save