From bdd4894862af035f6a17d0f618f47d5a9adecfb3 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 08 八月 2019 20:52:35 +0800
Subject: [PATCH] 测试多线程

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

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 66dbb62..852ae88 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -40,6 +40,7 @@
 	args          []*Arg // 鍖哄煙鍐呯洰鏍囬泦鍚�
 	filterData    []*Arg // 杩囨护鍚庡尯鍩熷唴鐩爣闆嗗悎
 	time          string // 褰撳墠鏃堕棿锛堢敤浠ュ尮閰嶆椂闂磋鍒欙級
+	isEffective	  bool	 // 瑙勫垯涓槸鍚︾敤鍒颁簡姝ゅ尯鍩�
 	keepRight     bool   // 鏄惁闈犲彸琛�
 	isStatic      bool   // 鏄惁闈欐
 }
@@ -90,6 +91,7 @@
 	RuleText     string // 鏂囧瓧鐗堣鍒欑粍
 	Location     []Rect // 鐩爣鐨勫潗鏍�
 	AlarmPolygon string // 瑙﹀彂鐨勬姤璀︽
+	IsLink		 bool   // 鏄惁鏄仈鍔ㄤ换鍔�
 	Others
 }
 type Others struct {
@@ -188,6 +190,10 @@
 					ruleResult := filterRule(groupRule.Rules[j], areaMap)
 					if ruleResult.Result != "" {
 						logger.Info("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result)
+						// 濡傛灉缁撴灉涓虹湡锛屾妸杩欐潯瑙勫垯涓殑鍖哄煙缃负鏈夋晥
+						if strings.Contains(ruleResult.Result,"true") {
+							areaMap.isEffective = true
+						}
 						// 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� (鍚庡姞锛氭妸姝ゆ潯瑙︾鐨勫尯鍩焛d涔熻褰曚笅鏉�)
 						if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
 							sdkNames = sdkName + ","
@@ -217,6 +223,9 @@
 				for _, areaMap := range sdkData.AreaMapList {
 					ruleResult := transferParameters(groupRule.Rules[j], areaMap)
 					if ruleResult.Result != "" {
+						if strings.Contains(ruleResult.Result,"true") {
+							areaMap.isEffective = true
+						}
 						logger.Info("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result)
 						if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
 							sdkNames = sdkName + ","
@@ -243,6 +252,9 @@
 				for _, areaMap := range sdkData.AreaMapList {
 					ruleResult := timeRuleResult(groupRule.Rules[j], areaMap)
 					if ruleResult.Result != "" {
+						if strings.Contains(ruleResult.Result,"true") {
+							areaMap.isEffective = true
+						}
 						logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
 						if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
 							sdkNames = sdkName + ","
@@ -318,7 +330,9 @@
 				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)...)
+							if areaMap.isEffective {
+								faces = append(faces, putFaceToResult(areaMap, faces)...)
+							}
 						}
 					}
 				}
@@ -336,13 +350,27 @@
 					}
 				}
 				//logger.Debug("------locations鐨勫唴瀹癸細", locations)
+				var islink bool
+				if groupRule.SetType == "linkTask" {
+					islink = true
+				} else {
+					islink = false
+				}
 				if sdkNames != "" {
-					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, label})
+					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,})
 					//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})
+					args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId, islink,label,}, faces})
 					//logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult)))
+					logger.Info("杩囧畬瑙勫垯鏃舵煡鐪嬩汉鑴告爣绛撅細")
+					if args.RuleResult["face"] != nil && len(args.RuleResult["face"].([]FaceResult)) > 0 {
+						for _, faceResult := range args.RuleResult["face"].([]FaceResult) {
+							for _,arg := range faceResult.Args {
+								logger.Info("浜哄憳鍒嗗�兼槸锛�",arg.Score,"liker鐨勬暟閲忎负",arg.Liker)
+							}
+						}
+					}
 				}
 				return true
 			} else {
@@ -375,7 +403,6 @@
 			}
 		}
 	}
-
 	//logger.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
 	return faces
 }

--
Gitblit v1.8.0