From b18beafcaaa2e2086610f22079842b2e5af6e283 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 01 八月 2019 14:41:38 +0800 Subject: [PATCH] 联动规则稳定版 --- insertdata/insertDataToEs.go | 32 +++++++++++++++++++++++--------- ruleserver/ruleToformula.go | 13 +++++++------ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index 57e8e75..f9c4bd4 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -7,7 +7,6 @@ "fmt" "io/ioutil" "net" - "os" "ruleprocess/cache" "ruleprocess/logger" "strings" @@ -72,6 +71,7 @@ AnalyServerName string `json:"analyServerName"` AnalyServerIp string `json:"analyServerIp"` ClusterId string `json:"clusterId"` + LinkId string `json:"linkId"` DetectScore float64 `json:"detectScore"` IsAlarm int `json:"isAlarm"` IsAckAlarm int `json:"isAckAlarm"` @@ -97,6 +97,7 @@ ClusterId string `json:"clusterId"` PicSmUrl []string `json:"picSmUrl"` PicDate string `json:"picDate"` + LinkId string `json:"linkId"` VideoUrl string `json:"videoUrl"` IsAlarm int `json:"isAlarm"` IsAckAlarm int `json:"isAckAlarm"` @@ -136,15 +137,15 @@ // //} //} func InsertToEs(msg ruleserver.ResultMsg) { - InsertFace(msg) + InsertFace(msg,"") //flag := ruleserver.BodyIsSame(msg.SdkMessage) //if !flag { - InsertYolo(msg) + InsertYolo(msg,"") //} } // 寰�es涓彃鍏ヤ汉鑴告暟鎹� -func InsertFace(msg ruleserver.ResultMsg) { +func InsertFace(msg ruleserver.ResultMsg,linkId string) { if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 { logger.Info("寰�ES鎻掍汉鑴告暟鎹�") for _, faceResult := range msg.RuleResult["face"].([]ruleserver.FaceResult) { @@ -189,6 +190,10 @@ race := getRaceString(face.ThftRes.Race) ageDescription := getDescription(face.ThftRes.Age) esDataId := uuid.NewV4().String() + linksId := "" + if linkId != "" { + linksId = linkId + } pervideo := PerVideoPicture{ esDataId, msg.Cid, @@ -214,6 +219,7 @@ localConfig.ServerName, serverIp, "", + linksId, face.Score, 1, 0, @@ -290,6 +296,7 @@ localConfig.ServerName, serverIp, "", + "", 0, 1, 0, @@ -318,12 +325,12 @@ } // 寰�es涓彃鍏olo鏁版嵁 -func InsertYolo(msg ruleserver.ResultMsg) { +func InsertYolo(msg ruleserver.ResultMsg,linkId string) { if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 { // 鍏堝垽鏂竴涓嬫暟鎹甫鐨勮鍒欐爣绛炬槸鍚︽湁鍙互鎻掑叆鐨� flag := false for _, res := range msg.RuleResult["yolo"].([]ruleserver.Result) { - logger.Info("瀹氭椂鍣ㄦ墦鐨勬暟瀛楁爣绛撅細",res.Others.TimeLabel) + //logger.Info("瀹氭椂鍣ㄦ墦鐨勬暟瀛楁爣绛撅細",res.Others.TimeLabel) if res.Others.TimeLabel == "01" || res.Others.TimeLabel == "10" { flag = true } @@ -336,7 +343,7 @@ for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) { if yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10" { // 鎷煎嚭sdkname - logger.Info("搴旇杩涙潵鎵嶅鐨�") + //logger.Info("搴旇杩涙潵鎵嶅鐨�") sdkNames = sdkNames + yoloResult.SdkName alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel) alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState}) @@ -367,9 +374,10 @@ linkFlag := false for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) { if (yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10") && yoloResult.Others.LinkCache != nil && len(yoloResult.Others.LinkCache) > 1{ + linkId := uuid.NewV4().String() for _, msg2 := range yoloResult.Others.LinkCache { logger.Warn("鎻掑叆鑱斿姩鏁版嵁","姝ゅ抚鏁版嵁鐨刬d涓�",msg2.Cid) - InsertYolo(msg2) + InsertYolo(msg2,linkId) linkFlag = true } } @@ -377,7 +385,7 @@ if linkFlag { // 鑱斿姩鏁版嵁涓寘鍚湰甯ф暟鎹紝鎻掑叆鑱斿姩鏁版嵁鍚庡氨涓嶉渶瑕佹彃鍏ユ湰甯ф暟鎹簡 logger.Warn("鎴愬姛鎻掑叆涓や釜鑱斿姩鍥剧墖") - os.Exit(1) + //os.Exit(1) return } //logger.Info("--------璧板埌杩欏効灏变笉涓�鏍�") @@ -419,6 +427,10 @@ url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1]) esDataId := uuid.NewV4().String() + linksId := "" + if linkId != "" { + linksId = linkId + } peraction := Personaction{ esDataId, msg.Cid, @@ -435,6 +447,7 @@ "", url, i.Timestamp, + linksId, "", isAlarm, 0, @@ -510,6 +523,7 @@ []string{strings.Split(resp["fileUrl"].(string), "/")[1]}, i.Timestamp, "", + "", 0, 0, 0, diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 7100bd7..e8c0fbc 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -335,11 +335,11 @@ //logger.Debug("------locations鐨勫唴瀹癸細", locations) if sdkNames != "" { args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId,label}) - logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) + //logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) } if faceFlag { args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId,label},faces}) - logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) + //logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) } return true } else { @@ -430,18 +430,14 @@ tempMap := make(map[string]interface{}) for k,result := range args.RuleResult { if k == "yolo" { - logger.Info("鏈夋病鏈墆olo鏍囩") tempMap[k] = []Result{} for _,res := range result.([]Result) { - logger.Info("杩涗竴娆olo寰幆") tempMap[k] = append(tempMap[k].([]Result),res) } } if k == "face" { - logger.Info("鏈夋病鏈塮ace鏍囩") tempMap[k] = []FaceResult{} for _,res := range result.([]FaceResult) { - logger.Info("杩涗竴娆ace寰幆") tempMap[k] = append(tempMap[k].([]FaceResult),res) } } @@ -484,6 +480,11 @@ args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache } } + for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ { + if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 鎶婅仈鍔ㄦ暟鎹拷鍔犱笂 + args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache + } + } } } } else { -- Gitblit v1.8.0