From cf36d846dad26320f7fb8153c33517cb22ccd90f Mon Sep 17 00:00:00 2001 From: lucas Date: Tue, 8 Jul 2025 14:31:35 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=20=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E7=88=86=E9=97=AA=E7=BB=84=E5=90=88=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...‰©äº‘es告警组åˆèšé›†to触å‘爆闪.go | 17 +++++---- consumers/AlarmCombination/dataModel.go | 7 ++++ consumers/consumerAlarmCombination.go | 35 ++++++++++++++++++- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/adaptors/知物云es告警组åˆèšé›†to触å‘爆闪.go b/adaptors/知物云es告警组åˆèšé›†to触å‘爆闪.go index b01687e..3c45462 100644 --- a/adaptors/知物云es告警组åˆèšé›†to触å‘爆闪.go +++ b/adaptors/知物云es告警组åˆèšé›†to触å‘爆闪.go @@ -20,7 +20,7 @@ import ( type Adaptor_ZWY_AlarmCombin struct { //一些必è¦ä¿¡æ¯ - Info map[string]string + Info map[int]string } func (the Adaptor_ZWY_AlarmCombin) Transform(config AlarmCombination.CombinationInfo, rawMsg string) []NeedPush { @@ -43,13 +43,18 @@ func (the Adaptor_ZWY_AlarmCombin) Transform(config AlarmCombination.Combination for _, item := range config.ConfigItems { found := slices.Contains(item.StationIds, stationId) if found { - itemAlarmCounts += 1 + if len(detailMsg) > 0 { detailMsg += "," } - detailMsg += fmt.Sprintf("测点[%d]触å‘[f=%d]有效告警组", stationId, item.FactorId) - log.Printf("") - break + if stationName, ok := the.Info[stationId]; ok { + if itemAlarmCounts < 2 { + detailMsg += stationName + } + itemAlarmCounts += 1 + } else { + log.Printf("测点[%d]无匹é…çš„åç§°", stationId) + } } } @@ -59,7 +64,7 @@ func (the Adaptor_ZWY_AlarmCombin) Transform(config AlarmCombination.Combination log.Printf("es èšé›†æŸ¥è¯¢å‘Šè­¦ç»„æ•°=%d < 2", esAggPointsCount) return nil } - msg := fmt.Sprintf("组åˆå‘Šè­¦[%s]生效,有效触å‘çš„å‰2组:%s", config.Name, detailMsg) + msg := fmt.Sprintf("组åˆå‘Šè­¦[%s]产生,æœ‰æ•ˆè§¦å‘æµ‹ç‚¹:%s ç­‰,å…±%d个", config.Name, detailMsg, itemAlarmCounts) log.Printf(msg) prefix := "zh-" diff --git a/consumers/AlarmCombination/dataModel.go b/consumers/AlarmCombination/dataModel.go index cc0413e..c59365d 100644 --- a/consumers/AlarmCombination/dataModel.go +++ b/consumers/AlarmCombination/dataModel.go @@ -21,3 +21,10 @@ type ConfigItems struct { FactorId int `json:"factorId"` StationIds []int `json:"stationIds"` } + +type StationInfo struct { + Id int `json:"id" db:"id"` + Name string `json:"name" db:"name"` + Structure string `json:"structure" db:"structure"` + Factor int `json:"factor" db:"factor"` +} diff --git a/consumers/consumerAlarmCombination.go b/consumers/consumerAlarmCombination.go index 50c3100..e71c65b 100644 --- a/consumers/consumerAlarmCombination.go +++ b/consumers/consumerAlarmCombination.go @@ -10,6 +10,7 @@ import ( "goInOut/monitors" "gopkg.in/yaml.v3" "log" + "strings" "time" ) @@ -25,6 +26,7 @@ type consumerAlarmCombination struct { infoPg *dbOperate.DBHelper //æ•°æ®åº“é…ç½®ä¿¡æ¯ combinationInfo []AlarmCombination.CombinationInfo + stationIdName map[int]string } func (the *consumerAlarmCombination) LoadConfigJson(cfgStr string) { @@ -80,7 +82,9 @@ func (the *consumerAlarmCombination) OutputInitial() error { func (the *consumerAlarmCombination) infoComponentInitial() error { //æ•°æ®å‡ºå£ pgConnStr := the.Info.QueryComponent.Pg.Connect + //redisConnStr := the.Info.QueryComponent.Redis.Address the.infoPg = dbOperate.NewDBHelper("postgres", pgConnStr) + //the.infoRedis = dbOperate.NewRedisHelper("", redisConnStr) return nil } func (the *consumerAlarmCombination) Work() { @@ -111,7 +115,9 @@ func (the *consumerAlarmCombination) Work() { func (the *consumerAlarmCombination) getAdaptor() (adaptor adaptors.Adaptor_ZWY_AlarmCombin) { - return adaptors.Adaptor_ZWY_AlarmCombin{} + return adaptors.Adaptor_ZWY_AlarmCombin{ + Info: the.stationIdName, + } } func (the *consumerAlarmCombination) getEs1minAlarmData() { @@ -150,19 +156,46 @@ func (the *consumerAlarmCombination) updateCombinationInfo() { log.Printf("查询数æ®åº“异常:err-> %s", err.Error()) return } + + var stationIds []int for i, info := range the.combinationInfo { err := json.Unmarshal([]byte(info.ConfigStr), &info.ConfigItems) if err != nil { return } the.combinationInfo[i].ConfigItems = info.ConfigItems + for _, item := range info.ConfigItems { + stationIds = append(stationIds, item.StationIds...) + } } log.Printf("共刷新%dæ¡é…ç½®", len(the.combinationInfo)) + //æ¯æ¬¡é‡æ–°èµ‹å€¼ + the.stationIdName = the.queryStationNameByIds(stationIds) //ç«‹å³è§¦å‘ the.getEs1minAlarmData() } +func (the *consumerAlarmCombination) queryStationNameByIds(stationIds []int) map[int]string { + strIds := make([]string, len(stationIds)) + for i, num := range stationIds { + strIds[i] = fmt.Sprint(num) + } + idStr := strings.Join(strIds, ",") + sqlStation := fmt.Sprintf(`SELECT id,structure,name,factor FROM "t_sensor" where id in(%s)`, idStr) + var stationInfos []AlarmCombination.StationInfo + err := the.infoPg.Query(&stationInfos, sqlStation) + idNames := map[int]string{} + if err != nil { + log.Printf("查询数æ®åº“异常:err-> %s", err.Error()) + return idNames + } + for _, info := range stationInfos { + idNames[info.Id] = info.Name + } + return idNames +} + func (the *consumerAlarmCombination) getESAlarmAggQueryStr(onceConfig AlarmCombination.CombinationInfo) string { structureId := onceConfig.StructId var allStationId []int