panlei
2019-07-01 ded52966461c4328244b12d0bef59640b2c9b7cb
ruleserver/ruleToformula.go
@@ -183,9 +183,7 @@
      areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
      // 为每个摄像机区域填充数据
      areaMap.CountAreaObjs(arg)
      log.Println("-------areaMap的内容",areaMap)
      arg.AreaMapList = append(arg.AreaMapList, areaMap)
      log.Println("-------AreaMapList的内容",arg.AreaMapList)
   }
}
@@ -231,9 +229,6 @@
   // 先过完条件规则
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         if sdkData.SdkId == "812b674b-2375-4589-919a-5c1c3278a975" {
            log.Println("入侵的算法数据", sdkData)
         }
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := filterRule(groupRule.Rules[j], &areaMap)
            if ruleResult.Result != "" {
@@ -293,6 +288,7 @@
      completeFormula = completeFormula + va.Result
   }
   if completeFormula != "" {
      log.Println("看看公式-----------:", completeFormula)
      expression, _ := govaluate.NewEvaluableExpression(completeFormula)
      result, _ := expression.Evaluate(nil) // 得到数学公式的结果
      if result.(bool) {
@@ -371,7 +367,7 @@
         // 这步要备齐表达式里所需要的所有参数
         a.targetNum++
         arg1 := Arg{obj.Score, PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale), float64(obj.Rects.Width * obj.Rects.Height), obj.IsYolo, obj.Rects, obj.SdkName, obj.ThftRes, obj.Liker}
         log.Println("放进去的arg:-------", arg1)
         //log.Println("放进去的arg:-------", arg1)
         a.args = append(a.args, arg1)
         a.filterData = append(a.filterData, arg1)
      }
@@ -708,7 +704,7 @@
}
func timeRuleResult(rule *protomsg.Rule, am *AreaMap) LittleRuleResult {
   if rule.PolygonId == am.areaId { // 首先规则所对应的区域id要跟区域数据的id对的上
      if rule.SdkArgAlias == "time" { // 判断是否符合时间规则
      if rule.SdkArgAlias == "time_rule" { // 判断是否符合时间规则
         // 根据放值字段里存的时间规则的id去另一个表里查需要比对的时间段(比如当前时间是周三,应根据区域id查出其周三的几个布防时间段,数组)
         //fmt.Println("时间规则的测试")
         now := time.Now()