liuxiaolong
2019-07-25 46f174ae5fc99081448c6f59d6bf80a8edbc2465
insertdata/insertDataToEs.go
@@ -55,6 +55,7 @@
   TaskName        string                 `json:"taskName"`
   SdkName         string                 `json:"sdkName"`
   Content         string                 `json:"content"`
   AlarmRules      []AlarmRule            `json:"alarmRules"`
   LikeDate        string                 `json:"likeDate"`
   Sex             string                 `json:"sex"`
   Age             int32                  `json:"age"`
@@ -135,13 +136,16 @@
   if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 {
      logger.Info("往ES插人脸数据")
      for _, faceResult := range msg.RuleResult["face"].([]ruleserver.FaceResult) {
         for _,face := range faceResult.Args  {
         for _, face := range faceResult.Args {
            // 上传大图
            // 解压缩并上传图片
            bdata, err := util.UnCompress(msg.Data)
            if err != nil {
               panic("解压缩图片时出现错误")
            }
            alarmRules := []AlarmRule{}
            alarm := ChangeToString(faceResult.DefenceState,faceResult.AlarmLevel)
            alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText})
            i := protomsg.Image{}
            err = proto.Unmarshal(bdata, &i)
            bigPhotoUrl := make(map[string]interface{})
@@ -183,6 +187,7 @@
               msg.Tasklab.Taskname,
               "人脸",
               "",
               alarmRules,
               time.Now().Format("2006-01-02 15:04:05"), // 只检测,没有比对时间
               sex,
               face.ThftRes.Age,
@@ -257,6 +262,7 @@
      msg.Tasklab.Taskname,
      "人脸",
      "状态转换数据,非报警数据",
      []AlarmRule{},
      time.Now().Format("2006-01-02 15:04:05"), // 只检测,没有比对时间
      "",
      0,
@@ -306,7 +312,7 @@
      alarmRules := []AlarmRule{}
      for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
         sdkNames = sdkNames + yoloResult.SdkName
         alarm := ChangeToString(yoloResult.AlarmLevel)
         alarm := ChangeToString(yoloResult.DefenceState,yoloResult.AlarmLevel)
         alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText})
      }
      isAlarm := 0
@@ -344,10 +350,26 @@
         logger.Error("查询摄像机信息失败")
      }
      serverIp, err := GetLocalIP()
      url := []string{}
      url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1])
      if msg.RuleResult["cacheData"] != nil {
         InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
         // 把缓存的数据上传后得到地址存进去
         // 解压缩并上传图片
         msg1 := msg.RuleResult["cacheData"].(ruleserver.ResultMsg)
         bdata, err := util.UnCompress(msg1.Data)
         if err != nil {
            panic("解压缩图片时出现错误")
         }
         i := protomsg.Image{}
         err = proto.Unmarshal(bdata, &i)
         resp1, err1 := util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
         if err1 != nil {
            logger.Error("缓存数据画框或上传图片服务器出错", err)
         } else {
            logger.Info("上传的图片信息:", resp1)
         }
         url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1])
      }
      peraction := Personaction{
         uuid.NewV4().String(),
@@ -363,7 +385,7 @@
         localConfig.ServerName,
         serverIp,
         "",
         []string{strings.Split(resp["fileUrl"].(string), "/")[1]},
         url,
         i.Timestamp,
         "",
         isAlarm,
@@ -489,23 +511,28 @@
}
// 把报警等级转化成汉字
func ChangeToString(i int32) string {
func ChangeToString(defenceState bool,i int32) string {
   alarm := ""
   if i == 1 {
      alarm = "一级"
   if defenceState {
      if i == 1 {
         alarm = "一级"
      }
      if i == 2 {
         alarm = "二级"
      }
      if i == 3 {
         alarm = "三级"
      }
      if i == 4 {
         alarm = "四级"
      }
      if i == 5 {
         alarm = "五级"
      }
   } else {
      alarm = "撤防"
   }
   if i == 2 {
      alarm = "二级"
   }
   if i == 3 {
      alarm = "三级"
   }
   if i == 4 {
      alarm = "四级"
   }
   if i == 5 {
      alarm = "五级"
   }
   return alarm
}