From 90f568cf48fcc3131b45a2081dea40015eae5c5b Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 16 十一月 2019 18:00:33 +0800 Subject: [PATCH] 把数据格式化以及装配放进so --- insertdata/insertDataToEs.go | 251 ++++++++----------------------------------------- 1 files changed, 42 insertions(+), 209 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index adac153..30443c8 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -166,11 +166,11 @@ } func InsertToEs(msg structure.ResultMsg) { - defer func() { - if err := recover(); err != nil { - logger.Error("es妯″潡鍎跨殑寮傚父鎹曡幏锛�", err) - } - }() + //defer func() { + // if err := recover(); err != nil { + // logger.Error("es妯″潡鍎跨殑寮傚父鎹曡幏锛�", err) + // } + //}() localConfig1, err := cache.GetServerInfo() if err != nil { panic("閰嶇疆鏂囦欢涓嶅悎娉�") @@ -233,7 +233,7 @@ ageDescription := getDescription(face.ThftRes.Age) logger.Info(ageDescription) var target = new(Target) - target.TargetId = strconv.FormatUint(face.Id, 10) + target.TargetId = face.Id target.TargetScore = face.Score target.TargetLocation = Points{TopLeft: Point{face.Location.X, face.Location.Y}, BottomRight: Point{face.Location.X + face.Location.Width, face.Location.Y + face.Location.Height}} //logger.Info("浜鸿劯鐨刬d:",strconv.FormatUint(face.Id, 10)) @@ -249,7 +249,7 @@ msg.Tasklab.Taskid, msg.Tasklab.Taskname, "浜鸿劯", - "", + time.Now().Format("2006-01-02 15:04:05"), alarmRules, time.Now().Format("2006-01-02 15:04:05"), // 鍙娴嬶紝娌℃湁姣斿鏃堕棿 sex, //鏆傛敼涓轰汉鑴竔d strconv.FormatUint(face.Id, 10) @@ -367,6 +367,7 @@ linkInfo = "鑱斿姩浠诲姟" } alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState, linkInfo}) + logger.Info("鎵撳嵃浠诲姟鍚嶇О锛�",) // 涓婁紶缂撳瓨鏁版嵁鐨勫浘鐗囨嬁鍒皍rl if yoloResult.Others.CacheData != nil { //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) @@ -396,14 +397,14 @@ // 鍘婚噸娣诲姞 var flag = true for _, selectTarget := range targetInfos { - if strconv.FormatUint(target.Id, 10) == selectTarget.TargetId { + if target.Id == selectTarget.TargetId { flag = false break } } if flag { var target1 = new(Target) - target1.TargetId = strconv.FormatUint(target.Id, 10) + target1.TargetId = target.Id target1.TargetScore = target.Score target1.TargetLocation = Points{TopLeft: Point{target.Location.X, target.Location.Y}, BottomRight: Point{target.Location.X + target.Location.Width, target.Location.Y + target.Location.Height}} targetInfos = append(targetInfos, *target1) @@ -462,7 +463,7 @@ msg.Tasklab.Taskid, msg.Tasklab.Taskname, sdkNames, - "", + time.Now().Format("2006-01-02 15:04:05"), alarmRules, msg.Push.ServerId, msg.Push.ServerName, @@ -510,208 +511,37 @@ } // 鎻掑叆鐩爣鎸佺画鏃堕棿鏁版嵁 -func InsertTarget1(msg structure.ResultMsg) { - if msg.RuleResult["target"] != nil && len(msg.RuleResult["target"].([]structure.Result)) > 0 { - // 鍏堝垽鏂竴涓嬫暟鎹甫鐨勮鍒欐爣绛炬槸鍚︽湁鍙互鎻掑叆鐨� - logger.Info("寰�ES鎻抰arget鏁版嵁") - var sdkNames string = "" - alarmRules := []AlarmRule{} - var targetInfos []Target - //url := []string{} - for _, yoloResult := range msg.RuleResult["target"].([]structure.Result) { - if yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10" { - // 鎷煎嚭sdkname - //logger.Info("搴旇杩涙潵鎵嶅鐨�") - sdkNames = sdkNames + yoloResult.SdkName - alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel) - linkInfo := "" - if yoloResult.IsLink { - linkInfo = "鑱斿姩浠诲姟" - } - alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState, linkInfo}) - // 涓婁紶缂撳瓨鏁版嵁鐨勫浘鐗囨嬁鍒皍rl - //if yoloResult.Others.CacheData != nil { - // //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) - // // 鎶婄紦瀛樼殑鏁版嵁涓婁紶鍚庡緱鍒板湴鍧�瀛樿繘鍘� - // // 瑙e帇缂╁苟涓婁紶鍥剧墖 - // msgs := yoloResult.Others.CacheData - // for _, msg1 := range msgs { - // bdata, err := util.UnCompress(msg1.Data) - // if err != nil { - // panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") - // } - // i := protomsg.Image{} - // err = proto.Unmarshal(bdata, &i) - // resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["target"].([]structure.Result), weedfsUrl) - // if err1 != nil { - // logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) - // } else { - // logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1) - // } - // if resp1["fileUrl"] != nil { - // url = append(url, resp1["fileUrl"].(string)) - // } - // } - //} - // 瑁呴厤鐩爣淇℃伅鏁版嵁 - for _, target := range yoloResult.AlarmObj { - // 鍘婚噸娣诲姞 - var flag = true - for _, selectTarget := range targetInfos { - if strconv.FormatUint(target.Id, 10) == selectTarget.TargetId { - flag = false - break - } - } - if flag { - var target1 = new(Target) - target1.TargetId = strconv.FormatUint(target.Id, 10) - target1.TargetScore = target.Score - target1.TargetLocation = Points{TopLeft: Point{target.Location.X, target.Location.Y}, BottomRight: Point{target.Location.X + target.Location.Width, target.Location.Y + target.Location.Height}} - targetInfos = append(targetInfos, *target1) - } - } - } - } - // 鑱斿姩鍥惧儚鐨勫鐞� - linkTagInfos := []*LinkInfo{} - for _, yoloResult := range msg.RuleResult["target"].([]structure.Result) { - if (yoloResult.Others.TimeLabel == "01" || yoloResult.Others.TimeLabel == "10") && yoloResult.Others.LinkCache != nil && len(yoloResult.Others.LinkCache) > 1 { - for _, msg2 := range yoloResult.Others.LinkCache { - // 鎶妋sg2鐨勬暟鎹閰嶆垚涓�涓狿erVideoPicture缁撴瀯浣� - if msg2.Cid != msg.Cid { - linkTagInfos = append(linkTagInfos, msg2PersonVideo(msg2)) - } - } - } - } - linkTag := "" - if len(linkTagInfos) > 0 { - linkTag = "鑱斿姩浠诲姟" - } - isAlarm := 0 - resp := make(map[string]interface{}) - // 瑙e帇缂╁苟涓婁紶鍥剧墖 - bdata, err := util.UnCompress(msg.Data) - if err != nil { - panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") - } - i := protomsg.Image{} - err = proto.Unmarshal(bdata, &i) - if len(alarmRules) > 0 { - isAlarm = 1 - //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) - resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) - if err != nil { - logger.Error("鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) - return - } else { - logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp) - } - } else { - isAlarm = 0 - // 涓嶆槸鎶ヨ鏁版嵁涓嶅瓨 - return - } - for _, yoloResult := range msg.RuleResult["target"].([]structure.Result) { - for _, yolo := range yoloResult.AlarmObj { - //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) - // 鎶婄紦瀛樼殑鏁版嵁涓婁紶鍚庡緱鍒板湴鍧�瀛樿繘鍘� - // 瑙e帇缂╁苟涓婁紶鍥剧墖 - urls := []string{} - msg1 := yolo.CacheData - bdata, err := util.UnCompress(msg1.Data) - if err != nil { - panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") - } - i := protomsg.Image{} - err = proto.Unmarshal(bdata, &i) - resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["target"].([]structure.Result), weedfsUrl) - if err1 != nil { - logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) - } else { - logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1) - } - if resp1["fileUrl"] != nil { - urls = append(urls, resp1["fileUrl"].(string)) - } - if resp["fileUrl"] != nil { - urls = append(urls, resp["fileUrl"].(string)) - //esDataId := uuid.NewV4().String() - peraction := Personaction{ - msg.Push.PushId, - msg.Cid, - msg.Push.Cam.Name, - msg.Push.Cam.Addr, - msg.Tasklab.Taskid, - msg.Tasklab.Taskname, - sdkNames, - "", - alarmRules, - msg.Push.ServerId, - msg.Push.ServerName, - msg.Push.LocalIp, - "", - urls, - i.Timestamp, - "", - isAlarm, - 0, - 0, - 0, - targetInfos, - linkTag, - linkTagInfos, - } - requstbody, err := json.Marshal(peraction) - - if len(linkTagInfos)>0 { - logger.Info("鑱斿姩浠诲姟1111") - } - if err != nil { - logger.Info("json parse error ", err) - return - } - resp1, err2 := EsReq("POST", personAction, requstbody) - if err2 != nil { - logger.Error("寰�ES鎻掑叆鏁版嵁澶辫触", err) - } else { - logger.Debug("鎻掑叆es杩斿洖鐨勬暟鎹俊鎭槸锛坱arget锛夛細", resp1) - // 鍙戝嚭褰曞儚淇″彿 - ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{"-1"}, Type: 2}) - for index,link := range linkTagInfos { - logger.Info("鑱斿姩浠诲姟鐨勫綍鍍忎俊鍙凤細",index) - ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) - } - logger.Warn("__________________________________________寰�ES鎻掑叆yolo鏁版嵁鎴愬姛") - //os.Exit(1) - } - } - } - } - - } -} func InsertTarget(msg structure.ResultMsg) { if msg.RuleResult["target"] != nil && len(msg.RuleResult["target"].([]structure.Result)) > 0 { // 鍏堝垽鏂竴涓嬫暟鎹甫鐨勮鍒欐爣绛炬槸鍚︽湁鍙互鎻掑叆鐨� + logger.Info("鎻掑叆瀹氭椂鐩爣淇℃伅锛�",len(msg.RuleResult["target"].([]structure.Result))) for _, yoloResult := range msg.RuleResult["target"].([]structure.Result) { - for _, tar := range yoloResult.AlarmObj { - // 瑁呰浇鐩爣淇℃伅 - var target = new(Target) - target.TargetId = strconv.FormatUint(tar.Id, 10) - target.TargetScore = tar.Score - target.TargetLocation = Points{TopLeft: Point{tar.Location.X, tar.Location.Y}, BottomRight: Point{tar.Location.X + tar.Location.Width, tar.Location.Y + tar.Location.Height}} + // 瑁呰浇鐩爣淇℃伅` + // 濡傛灉鏈夐娆℃姤璀︾殑鍒欐湰甯ф暟鎹彲浠ユ彃鍏� + insertFlag := false + alarmNum := 0 + for _,obj := range yoloResult.AlarmObj { + if obj.TimeLable == "10" { + insertFlag = true + alarmNum++ + } + } + if insertFlag { + logger.Info("鎶ヨ鐩爣涓暟锛�",alarmNum) + //var target = new(Target) + //target.TargetId = strconv.FormatUint(tar.Id, 10) + //target.TargetScore = tar.Score + //target.TargetLocation = Points{TopLeft: Point{tar.Location.X, tar.Location.Y}, BottomRight: Point{tar.Location.X + tar.Location.Width, tar.Location.Y + tar.Location.Height}} //logger.Info("浜鸿劯鐨刬d:",strconv.FormatUint(face.Id, 10)) - var targetInfos []Target - targetInfos = append(targetInfos, *target) + //var targetInfos []Target + //targetInfos = append(targetInfos, *target) // 鑾峰彇鐩爣缂撳瓨鍥剧墖 url := []string{} //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) // 鎶婄紦瀛樼殑鏁版嵁涓婁紶鍚庡緱鍒板湴鍧�瀛樿繘鍘� // 瑙e帇缂╁苟涓婁紶鍥剧墖 - url1 := uploadImg(tar.CacheData) + url1 := uploadImg(yoloResult.AlarmObj[0].CacheData) url = append(url,url1) // 娣诲姞鎶ヨ瑙勫垯缁� sdkNames := "" @@ -765,16 +595,19 @@ } if resp["fileUrl"] != nil { url = append(url, resp["fileUrl"].(string)) + if len(url) == 1 { + return + } //esDataId := uuid.NewV4().String() peraction := Personaction{ - tar.Uuid, + msg.Push.PushId, msg.Cid, msg.Push.Cam.Name, msg.Push.Cam.Addr, msg.Tasklab.Taskid, msg.Tasklab.Taskname, sdkNames, - "", + time.Now().Format("2006-01-02 15:04:05"), alarmRules, msg.Push.ServerId, msg.Push.ServerName, @@ -787,7 +620,7 @@ 0, 0, 0, - targetInfos, + nil, linkTag, linkTagInfos, } @@ -815,8 +648,8 @@ //os.Exit(1) } } - - + } else { + logger.Info("娌℃湁棣栨鎶ヨ鐨勭洰鏍囷紝涓嶆彃鍏�") } } } @@ -882,7 +715,7 @@ } i := protomsg.Image{} err = proto.Unmarshal(bdata, &i) - resp1, err1 := util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) + resp1, err1 := util.DrawPolygonOnImageForTarget(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) if err1 != nil { logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) } else { @@ -979,14 +812,14 @@ // 鍘婚噸娣诲姞 var flag = true for _, selectTarget := range targetInfos { - if strconv.FormatUint(target.Id, 10) == selectTarget.TargetId { + if target.Id == selectTarget.TargetId { flag = false break } } if flag { var target1 = new(Target) - target1.TargetId = strconv.FormatUint(target.Id, 10) + target1.TargetId = target.Id target1.TargetScore = target.Score target1.TargetLocation = Points{TopLeft: Point{target.Location.X, target.Location.Y}, BottomRight: Point{target.Location.X + target.Location.Width, target.Location.Y + target.Location.Height}} targetInfos = append(targetInfos, *target1) -- Gitblit v1.8.0