From 97c3fd313506a3a2d60c7889d58935dfca458ca0 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 11 七月 2019 17:04:41 +0800
Subject: [PATCH] ---
---
ruleserver/ruleToformula.go | 68 +++++++++++++++++----------------
1 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 02deb86..a0ac529 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -89,8 +89,8 @@
triggerLine string
directionLine string
targetNum int // 鍖哄煙鍐呯洰鏍囨暟閲�
- args []*Arg // 鍖哄煙鍐呯洰鏍囬泦鍚�
- filterData []*Arg // 杩囨护鍚庡尯鍩熷唴鐩爣闆嗗悎
+ args []*Arg // 鍖哄煙鍐呯洰鏍囬泦鍚�
+ filterData []*Arg // 杩囨护鍚庡尯鍩熷唴鐩爣闆嗗悎
time string // 褰撳墠鏃堕棿锛堢敤浠ュ尮閰嶆椂闂磋鍒欙級
keepRight bool // 鏄惁闈犲彸琛�
isStatic bool // 鏄惁闈欐
@@ -115,7 +115,7 @@
IsStatic bool // 鏄惁闈欐
ImageWidth int // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚瀹� 鍍忕礌
ImageHeight int // 鎽勫儚鏈烘媿鎽勭殑鍥惧儚楂� 鍍忕礌
- AreaMapList []*AreaMap // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚�
+ AreaMapList []*AreaMap // 鏈瑂dk鎻愬彇鐨勬暟鎹寜鐓у尯鍩熷垝鍒嗗悗鐨勬暟鎹泦鍚�
}
// 浠庣畻娉曟ā鍧楀効鎷挎潵鐨勫涓�甯у浘鍍忓悇涓畻娉曟彁鍙栫殑鏁版嵁闆嗗悎
@@ -135,12 +135,13 @@
// 杩囪鍒欏簱鎵撲笂鐨勬爣绛�
type Result struct {
- TaskId string // 浠诲姟id
- SdkName string
- RuleGroupId string // 瑙勫垯缁刬d
- AlarmLevel int32 // 鎶ヨ绛夌骇
- RuleText string // 鏂囧瓧鐗堣鍒欑粍
- Location []Rect
+ TaskId string // 浠诲姟id
+ SdkName string
+ RuleGroupId string // 瑙勫垯缁刬d
+ AlarmLevel int32 // 鎶ヨ绛夌骇
+ RuleText string // 鏂囧瓧鐗堣鍒欑粍
+ Location []Rect // 鐩爣鐨勫潗鏍�
+ AlarmPolygon string // 瑙﹀彂鐨勬姤璀︽
}
type LittleRuleResult struct {
SdkName string // 璁板綍涓嬫缁撴灉鏄摢涓猻dk鐨勭粨鏋�
@@ -222,7 +223,9 @@
}
}
}
-func (arg *Arg) fillLiker(){
+
+// 缁欑洰鏍囧~鍏卨iker
+func (arg *Arg) fillLiker() {
bytes := bigCache.Getdbpersonmsg("", arg.Feature, true)
var m map[string]float32
err1 := json.Unmarshal(bytes, &m)
@@ -277,26 +280,13 @@
if compareFlag == 2 {
array := strings.Split(tableIds, ",")
for i := 0; i < len(array)-1; i++ {
- bytes := bigCache.Getdbpersonmsg(array[i], arg.Feature, true)
- var m map[string]float32
- err1 := json.Unmarshal(bytes, &m)
- if err1 != nil {
- logger.Error("getBaseInfo瑙e帇閿欒", err1)
- }
- for key, val := range m {
- baseinfo, err1 := esutil.Dbpersoninfosbyid(key)
- if err1 != nil {
- logger.Error("鏌ヨ搴曞簱浜哄憳淇℃伅鍑洪敊", err1)
- }
- baseinfo.CompareScore = val
- arg.Liker = append(arg.Liker, &baseinfo)
- }
+ arg.fillLiker()
}
}
logger.Info("-------------------鎴愬姛缁檒iker璧嬪��,闀垮害涓猴細", len(arg.Liker))
}
areaMap.filterData = areaMap.args
- logger.Info("=======绗竴娆$湅args锛�",areaMap.filterData)
+ //logger.Info("=======绗竴娆$湅args锛�",(areaMap.filterData))
}
}
}
@@ -314,6 +304,7 @@
Compare(args, groupRule)
resultSplice := []*LittleRuleResult{}
sdkNames := ""
+ polygonId := ""
// 鍏堣繃瀹屾潯浠惰鍒�
for j := 0; j < len(groupRule.Rules); j++ {
for _, sdkData := range args.Sdkdata {
@@ -324,16 +315,21 @@
}
ipcId := sdk.IpcId
sdkName := sdk.SdkName
- logger.Info("瑙勫垯鐨刬pcId涓巗dkData鐨処pcId:",ipcId,"===",sdkData.IpcId)
+ logger.Info("瑙勫垯鐨刬pcId涓巗dkData鐨処pcId:", ipcId, "===", sdkData.IpcId)
if ipcId == sdkData.IpcId {
logger.Info("褰撳墠璧扮殑瑙勫垯鐨勭畻娉曟槸--锛�", sdkName, "---")
+ logger.Info("========================鏈夊嚑涓尯鍩燂細",len(sdkData.AreaMapList))
for _, areaMap := range sdkData.AreaMapList {
ruleResult := filterRule(groupRule.Rules[j], areaMap)
if ruleResult.Result != "" {
logger.Info("鏉′欢瑙勫垯缁撴灉锛�", ruleResult.Result)
- // 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲�
- if ruleResult.Result == "true" && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
+ // 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� (鍚庡姞锛氭妸姝ゆ潯瑙︾鐨勫尯鍩焛d涔熻褰曚笅鏉�)
+ if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
sdkNames = sdkName + ","
+ polygonId = groupRule.Rules[j].PolygonId + ","
+ }
+ if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
+ polygonId = groupRule.Rules[j].PolygonId + ","
}
resultSplice = append(resultSplice, &ruleResult)
}
@@ -357,8 +353,11 @@
ruleResult := transferParameters(groupRule.Rules[j], areaMap)
if ruleResult.Result != "" {
logger.Info("鏁伴噺瑙勫垯缁撴灉锛�", ruleResult.Result)
- if ruleResult.Result == "true" && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
+ if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
sdkNames = sdkName + ","
+ }
+ if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
+ polygonId = groupRule.Rules[j].PolygonId + ","
}
resultSplice = append(resultSplice, &ruleResult)
}
@@ -380,8 +379,11 @@
ruleResult := timeRuleResult(groupRule.Rules[j], areaMap)
if ruleResult.Result != "" {
logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
- if ruleResult.Result == "true" && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
+ if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) {
sdkNames = sdkName + ","
+ }
+ if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) {
+ polygonId = groupRule.Rules[j].PolygonId + ","
}
resultSplice = append(resultSplice, &ruleResult)
}
@@ -485,7 +487,7 @@
}
}
if sdkNames != "" {
- args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText, locations})
+ args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText, locations,polygonId})
logger.Info("-------------------yolo缁撴灉鏍囩", args.RuleResult["yolo"].([]Result))
}
if args.RuleResult["face"] != nil {
@@ -500,7 +502,7 @@
return false
}
}
-func TimerAlarm(groupId string) (int){
+func TimerAlarm(groupId string) (int) {
var flagTime int = 0
for k, timeEle := range TimeEleList {
if strings.Contains(k, groupId) {
@@ -657,7 +659,7 @@
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
if result.(bool) {
logger.Info("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ")
- args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, "", groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText, []Rect{}})
+ args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, "", groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText, []Rect{},""})
logger.Info("-------------------yolo缁撴灉鏍囩鏈夊嚑涓�", len(args.RuleResult["yolo"].([]Result)))
if args.RuleResult["face"] != nil {
logger.Info("-------------------face缁撴灉鏍囩鏈夊嚑涓�", len(args.RuleResult["face"].([]Arg)))
--
Gitblit v1.8.0