---
panlei
2019-08-01 bcb7cc1f3c209b073ea491b3f81fbdf0e1466d24
ruleserver/ruleToformula.go
@@ -270,9 +270,9 @@
         completeFormula = completeFormula[1:]
      }
      logger.Info("-------------------看看拔毛后的表达式:", completeFormula)
      expression, _ := govaluate.NewEvaluableExpression(completeFormula)
      result, _ := expression.Evaluate(nil) // 得到数学公式的结果
      return result.(bool)
      //expression, _ := govaluate.NewEvaluableExpression(completeFormula)
      //result, _ := expression.Evaluate(nil) // 得到数学公式的结果
      //return result.(bool)
   }
   if completeFormula != "" {
      logger.Info("结果公式-----------:", completeFormula)
@@ -335,11 +335,11 @@
            //logger.Debug("------locations的内容:", locations)
            if sdkNames != "" {
               args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId,groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId,label})
               //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,label},faces})
               //logger.Info("-------------------face结果标签", len(args.RuleResult["face"].([]FaceResult)))
               logger.Info("-------------------face结果标签", len(args.RuleResult["face"].([]FaceResult)))
            }
            return true
         } else {
@@ -430,20 +430,21 @@
            tempMap := make(map[string]interface{})
            for k,result := range args.RuleResult {
               if k == "yolo" {
                  logger.Info("有没有yolo标签")
                  tempMap[k] = []Result{}
                  for _,res := range result.([]Result) {
                     logger.Info("进一次yolo循环")
                     tempMap[k] = append(tempMap[k].([]Result),res)
                  }
               }
               if k == "face" {
                  logger.Info("有没有face标签")
                  tempMap[k] = []FaceResult{}
                  for _,res := range result.([]FaceResult) {
                     logger.Info("进一次face循环")
                     tempMap[k] = append(tempMap[k].([]FaceResult),res)
                  }
               }
            }
            for _,result := range args.RuleResult["yolo"].([]Result)  {
               logger.Warn("放进联动缓存的长度是",len(result.LinkCache))
            }
            va.CacheData = ResultMsg{message,tempMap}
            logger.Info("这个摄像机--", args.CameraId, "--被赋予了result", va.Result)
@@ -478,13 +479,8 @@
                  label.LinkCache = append(label.LinkCache,ruleRes.CacheData)
               }
               logger.Debug("联动任务缓存了几个数据",len(label.LinkCache))
               //for _,result := range args.RuleResult["yolo"].([]Result) {
               //   if result.RuleGroupId == groupRule.GroupId {
               //      result.Others["linkCache"] = label
               //   }
               //}
               for i := 0; i < len(args.RuleResult["yolo"].([]Result)); i++  {
                  if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 把原来那个删掉再存一份新的
                  if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                     args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache
                  }
               }