From b0fecafd3e44fa7919249e01e7f6446e1214d46a Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 03 七月 2019 16:10:37 +0800
Subject: [PATCH] ---

---
 ruleserver/ruleToformula.go |   50 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 34 insertions(+), 16 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 00e6b2e..c364e65 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -201,6 +201,7 @@
 		}
 		// 璺戞湰鎽勫儚鏈虹殑鎵�鏈夎鍒欑粍 涓�缁勪竴缁勮窇
 		taskRuleList := GetRuleGroup(args.CameraId) // 鏈憚鍍忔満涓嬫墍鏈変换鍔$粍
+		log.Println("------------------------------鏌ョ湅涓嬪叏閮ㄨ鍒欙細",taskRuleList)
 		//log.Println("鐪嬩笅鎽勫儚鏈轰笅鐨勪换鍔$粍锛�",taskRuleList)
 		// 寰楀埌灞炰簬璇ユ憚鍍忔満鐨勮嫢骞茬粍浠诲姟鐨勫畬鏁磋鍒欙紙璺熸瘡涓�鏉″畬鏁磋鍒欐瘮杈冧箣鍚庡緱鍑烘湰寮犲浘鍍忓浜庢煇涓鍒欐槸鍚︽姤璀︾殑缁撴灉銆傛斁杩沵ap锛屾瘮濡傛湰甯у浘鍍忕殑id锛屾墍纰版挒鎴愬姛鐨勮鍒檌d锛�
 		args.RuleResult = make(map[string]interface{})
@@ -216,7 +217,7 @@
 					if len(temp) > 0 {
 						if ruleList[i].SetType == "linkTask" {
 							// groupId涓惈鏈塴ink鍒欎负鑱斿姩浠诲姟
-							linkTask(args, ruleList[i], taskId)
+							LinkTask(args, ruleList[i], taskId)
 						} else {
 							// 鐙珛浠诲姟鐨勫鐞�
 							RunRule(args, ruleList[i], taskId)
@@ -234,7 +235,7 @@
 		}
 
 	}()
-	log.Println("+++++++++++瑙勫垯寮�濮嬭繍琛�+++++++++++++++++褰撳墠瑙勫垯--锛�",*groupRule)
+	log.Println("+++++++++++瑙勫垯寮�濮嬭繍琛�+++++++++++++++++褰撳墠瑙勫垯--锛�",(*groupRule).GroupText)
 	resultSplice := []*LittleRuleResult{}
 	// 鍏堣繃瀹屾潯浠惰鍒�
 	for j := 0; j < len(groupRule.Rules); j++ {
@@ -253,9 +254,19 @@
 	for _, sdkData := range args.Sdkdata {
 		for _, areaMap := range sdkData.AreaMapList {
 			for j := 0; j < len(groupRule.Rules); j++ {
-				args.RuleResult["face"] = putFaceToResult(groupRule.Rules[j], &areaMap, faces)
+				faces = append(faces,putFaceToResult(groupRule.Rules[j], &areaMap)...)
 			}
 		}
+	}
+	// 閰嶄簡浜鸿劯鐨勭畻娉曟墠鎶婁汉鑴哥殑鏁版嵁鐢╁嚭鏉ユ墦鏍囩
+	flag := false
+	for j := 0; j < len(groupRule.Rules); j++ {
+		if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a971" {
+			flag = true
+		}
+	}
+	if flag {
+		args.RuleResult["face"] = faces
 	}
 	// 鍐嶈繃鍏朵粬鏁版嵁 杩欐鐩存帴寰楀埌缁撴灉锛堢湡鎴栧亣锛� 杩囩洰鏍囨暟閲�
 	for j := 0; j < len(groupRule.Rules); j++ {
@@ -324,7 +335,7 @@
 				}
 			}
 			if flag {
-				fmt.Println("----------------------------缁堜簬璧板畬涓囬噷闀垮緛")
+				fmt.Println("___________________________________________________________________________缁堜簬璧板畬涓囬噷闀垮緛")
 				// 濡傛灉鎴愬姛浜嗘垜搴旇鎵惧埌瑙勫垯涓秹鍙婂埌鐨剆dk锛岃褰曚笅浠栦滑鐨剆dkname
 				sdkName := ""
 				for j := 0; j < len(groupRule.Rules); j++ {
@@ -338,9 +349,8 @@
 					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText})
 					log.Println("-------------------yolo缁撴灉鏍囩",args.RuleResult["yolo"].([]Result))
 				}
-				if args.RuleResult["faces"] != nil {
-					log.Println("-------------------face缁撴灉鏍囩",args.RuleResult["faces"].([]Arg))
-					os.Exit(1)
+				if args.RuleResult["face"] != nil {
+					log.Println("-------------------face缁撴灉鏍囩",args.RuleResult["face"].([]Arg))
 				}
 				return true
 			} else {
@@ -352,15 +362,16 @@
 	}
 }
 
-func putFaceToResult(rule *protomsg.Rule, am *AreaMap, faces []Arg) []Arg {
-	if rule.SdkId == am.sdkId {
+func putFaceToResult(rule *protomsg.Rule, am *AreaMap) []Arg {
+	faces := []Arg{}
+	if rule.SdkId == am.sdkId && rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a971"{
 		if len(am.filterData) > 0 {
 			for _, data := range am.filterData {
-				log.Println("---------------------------------------------------------------------鏈夎繖涓猟ata")
 				faces = append(faces, data)
 			}
 		}
 	}
+	//log.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces)
 	return faces
 }
 
@@ -436,7 +447,7 @@
 }
 
 // 鑱斿姩浠诲姟鐨勫鐞�
-func linkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) {
+func LinkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) {
 	// new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽
 	var flag bool = true
 	var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId}
@@ -450,7 +461,7 @@
 		timeEle := TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌
 		//TimeEleList = make(map[string]timeElement)
 		TimeEleList[groupRule.GroupId] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互瑙勫垯缁刬d涓洪敭
-		fmt.Println("鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList)
+		fmt.Println("---------------------------------------------鑱斿姩浠诲姟鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList)
 		// 寰楀嚭杩欑粍瀹屾暣瑙勫垯閲屾秹鍙婂埌鍑犱釜鎽勫儚鏈猴紝鍐冲畾鐫�鏁扮粍閲屾湁鍑犱釜缁撴瀯浣�,鍘婚噸娣诲姞鏂瑰紡
 		for j := 0; j < len(groupRule.Rules); j++ {
 			var flag1 bool = true
@@ -494,16 +505,23 @@
 				expression, _ := govaluate.NewEvaluableExpression(completeFormula)
 				result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
 				if result.(bool) {
+					log.Println("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ")
 					sdkName := ""
 					for j := 0; j < len(groupRule.Rules); j++ {
 						for _, sdkData := range args.Sdkdata {
-							if groupRule.Rules[j].SdkId == sdkData.SdkId && sdkData.IsYolo { // 鍙褰晊olo绗﹀悎瑙勫垯鐨剆dk
-								sdkName = sdkName + "," + sdkData.SdkName
+							if groupRule.Rules[j].SdkId == sdkData.SdkId && sdkData.IsYolo && !strings.Contains(sdkName,sdkData.SdkName) { // 鍙褰晊olo绗﹀悎瑙勫垯鐨剆dk 鍚屾椂瑕侀伩鍏嶉噸澶嶆嫾鎺�
+								sdkName = sdkData.SdkName + " "
 							}
 						}
 					}
-					// 杩囧畬瑙勫垯鍚庢墦涓爣绛撅紝鍛婅瘔璋冪敤鑰呮湰甯ф暟鎹拡瀵瑰摢涓换鍔″摢缁勮鍒欐姤璀︿簡
-					args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText})
+					if sdkName != "" {
+						args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText})
+						log.Println("-------------------yolo缁撴灉鏍囩",args.RuleResult["yolo"].([]Result))
+					}
+					if args.RuleResult["face"] != nil {
+						log.Println("-------------------face缁撴灉鏍囩",args.RuleResult["face"].([]Arg))
+					}
+					os.Exit(0)
 				}
 			}
 		} else {

--
Gitblit v1.8.0