From 42c00b903857d96fc82e22b178393dfdbde05a9a Mon Sep 17 00:00:00 2001 From: lucas Date: Tue, 2 Sep 2025 13:24:19 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- consumers/consumerAxySkAlarm.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/consumers/consumerAxySkAlarm.go b/consumers/consumerAxySkAlarm.go index 8fefac9..40ebd72 100644 --- a/consumers/consumerAxySkAlarm.go +++ b/consumers/consumerAxySkAlarm.go @@ -370,11 +370,15 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA if trigger.Rule == 0 { isAlarm := true for _, conditionInt := range trigger.ConditionArray { + if isAlarm == false { + //一旦有条件不满足 就跳出循环 + continue + } switch conditionInt { case 0: if stationAlarm.Alarm3007 == nil || stationAlarm.Alarm3007.CurrentLevel > trigger.AlarmLevel { isAlarm = false - detail += fmt.Sprintf("测量值恢复正常") + detail = fmt.Sprintf("测量值恢复正常") } if isAlarm { @@ -391,7 +395,7 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA case 1: if stationAlarm.Alarm3008 == nil || stationAlarm.Alarm3008.CurrentLevel > trigger.AlarmLevel { isAlarm = false - detail += fmt.Sprintf("变化速率恢复正常") + detail = fmt.Sprintf("变化速率恢复正常") } if isAlarm { @@ -416,26 +420,30 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA //3007和3008 任何一个 if trigger.Rule == 1 { isAlarm := false - + recoverDetail := "" for _, conditionInt := range trigger.ConditionArray { switch conditionInt { case 0: if stationAlarm.Alarm3007 != nil && stationAlarm.Alarm3007.CurrentLevel <= trigger.AlarmLevel { isAlarm = true - detail += stationAlarm.Alarm3007.Detail + detail = stationAlarm.Alarm3007.Detail if stationAlarm.Alarm3007.EndTime.After(dt) { dt = stationAlarm.Alarm3007.EndTime } triggerTypeCodes = append(triggerTypeCodes, stationAlarm.Alarm3007.AlarmTypeCode) + } else { + recoverDetail = fmt.Sprintf("测量值恢复正常") } case 1: if stationAlarm.Alarm3008 != nil && stationAlarm.Alarm3008.CurrentLevel <= trigger.AlarmLevel { isAlarm = true - detail += stationAlarm.Alarm3008.Detail + detail = stationAlarm.Alarm3008.Detail if stationAlarm.Alarm3008.EndTime.After(dt) { dt = stationAlarm.Alarm3008.EndTime } triggerTypeCodes = append(triggerTypeCodes, stationAlarm.Alarm3008.AlarmTypeCode) + } else { + recoverDetail = fmt.Sprintf("变化速率恢复正常") } } @@ -444,6 +452,11 @@ func (the *consumerAxySkAlarm) isRuleAlarm(trigger AXY_SK.AlarmTrigger, stationA break } } + + //单个恢复 + if isAlarm == false { + detail = recoverDetail + } return isAlarm, level, detail, dt, triggerTypeCodes } return false, level, detail, dt, triggerTypeCodes