From b05d8d65ed07880adfcd3d40bdcc4a6e382a611b Mon Sep 17 00:00:00 2001 From: lucas Date: Sun, 31 Aug 2025 11:08:26 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=20=E5=8F=8C?= =?UTF-8?q?=E6=8E=A7=E5=91=8A=E8=AD=A6=E7=9A=84=20triggers=20=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E5=AD=90=E5=91=8A=E8=AD=A6=E7=9A=84=20type=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E6=89=8B=E5=8A=A8=E6=81=A2=E5=A4=8D=E5=BF=85?= =?UTF-8?q?=E8=A6=81=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- consumers/consumerAxySkAlarm.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/consumers/consumerAxySkAlarm.go b/consumers/consumerAxySkAlarm.go index b8a8ba9..1871e97 100644 --- a/consumers/consumerAxySkAlarm.go +++ b/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) {