From 07a7c4f12e8ec4bafe53a6e76439469403ea487f Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 29 七月 2019 16:45:01 +0800
Subject: [PATCH] ---

---
 ruleserver/ruleToformula.go |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 46829fd..ab28e38 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -277,7 +277,7 @@
 			for _, sdkData := range args.Sdkdata {
 				if sdkData.IpcId == "A8B73405-373D-4F23-CED2-A617EBD7EC55" && faceFlag { // sdkData閲屾湁浜鸿劯鏁版嵁涓旈厤缃簡绠楁硶鎵嶆妸绗﹀悎鏉′欢鐨勬暟鎹杩涙爣绛鹃噷鍘�
 					for _, areaMap := range sdkData.AreaMapList {
-						faces = append(faces, putFaceToResult(areaMap)...)
+						faces = append(faces, putFaceToResult(areaMap,faces)...)
 					}
 				}
 			}
@@ -296,8 +296,9 @@
 			}
 			logger.Debug("------locations鐨勫唴瀹癸細", locations)
 			if sdkNames != "" {
+				logger.Info(args.RuleResult["yolo"],args.RuleResult["face"])
 				args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId})
-				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},faces})
@@ -337,11 +338,19 @@
 	}
 }
 
-func putFaceToResult(am *AreaMap) []Arg {
+func putFaceToResult(am *AreaMap,faceList []Arg) []Arg {
 	faces := []Arg{}
 	if len(am.filterData) > 0 {
 		for _, data := range am.filterData {
-			faces = append(faces, *data)
+			flag := true
+			for _,face := range faceList  {
+				if data.Location.X == face.Location.X && data.Location.Y == face.Location.Y && data.Location.Width == face.Location.Width && data.Location.Height == face.Location.Height {
+					flag = false
+				}
+			}
+			if flag {
+				faces = append(faces, *data)
+			}
 		}
 	}
 
@@ -481,8 +490,10 @@
 						var args []*Arg
 						if rule.RuleWithPre == "&&" {
 							args = am.filterData
+							logger.Info("杩囨护鍚庣殑args鐨勯暱搴︿负锛�",len(args))
 						} else {
 							args = am.args
+							logger.Info("娌¤繃婊ょ殑args鐨勯暱搴︿负锛�",len(args))
 						}
 						// 鍏堟竻绌鸿繃婊ゅ悗鐨勬暟鎹紝鍐嶅線閲屽鏈杩囨护鍚庣殑鏁版嵁
 						am.filterData = am.filterData[0:0]

--
Gitblit v1.8.0