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