|
|
@ -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) { |
|
|
|