修改大华算法

feature-flyModify
zhangbin 2025-09-10 10:37:23 +08:00
parent a92c0a49b9
commit fadd185dfb
4 changed files with 83 additions and 41 deletions

View File

@ -35,7 +35,7 @@ namespace OpenAuth.App.ServiceApp.Algo
#region 大华算法 #region 大华算法
//分析两次航线图片 //分析两次航线图片
public async Task<Response<List<dynamic>>> BehaviorAlarm(string firstId, string secondId) public async Task<Response<List<dynamic>>> BehaviorAlarm(string firstId, string secondId, string cdid)
{ {
using (var db = UnitWork.CreateContext()) using (var db = UnitWork.CreateContext())
{ {
@ -57,6 +57,7 @@ namespace OpenAuth.App.ServiceApp.Algo
taskId = "8ab0e1e213234a848e20d0d335559786", taskId = "8ab0e1e213234a848e20d0d335559786",
capTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), capTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
taskTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), taskTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
cdid = cdid,
imageInfo = new imageInfo = new
{ {
imgSize = 1667235, imgSize = 1667235,
@ -79,6 +80,7 @@ namespace OpenAuth.App.ServiceApp.Algo
pitch = imageList1[i].GimbalPitchDegree, pitch = imageList1[i].GimbalPitchDegree,
roll = imageList1[i].GimbalRollDegree, roll = imageList1[i].GimbalRollDegree,
focalLength = imageList1[i].FocalLength focalLength = imageList1[i].FocalLength
}, },
new { new {
imgUrl = "http://175.27.168.120:6013/test/"+imageList2[i].ObjectKey, imgUrl = "http://175.27.168.120:6013/test/"+imageList2[i].ObjectKey,
@ -110,17 +112,50 @@ namespace OpenAuth.App.ServiceApp.Algo
using (var db = UnitWork.CreateContext()) using (var db = UnitWork.CreateContext())
{ {
var data = JsonConvert.DeserializeObject<dynamic>(info); var data = JsonConvert.DeserializeObject<dynamic>(info);
string cdid = data.cdid.ToString();
var oldinfo = await db.LasaAiAchievement.GetFirstAsync(r => r.TaskId == cdid);
var imageList = data.imageInfoList;
string detectRegionJson = JsonConvert.SerializeObject(data.info.detectRegion); string detectRegionJson = JsonConvert.SerializeObject(data.info.detectRegion);
var regionArray = JsonConvert.DeserializeObject<dynamic>(detectRegionJson); var regionArray = JsonConvert.DeserializeObject<dynamic>(detectRegionJson);
int index = 0;
if (oldinfo != null)
{
foreach (var item in imageList)
{
//插入详情
LasaAiAchievementDetail lasaAiAchievementDetail = new LasaAiAchievementDetail()
{
Id = Guid.NewGuid().ToString(),
Image = item.imgUrl,
AiAchievementId = oldinfo.Id,
Lng = (double?)item.longitude ?? 0.0,
Lat = (double?)item.latitude ?? 0.0,
};
//// 如果是第二张图片 -> 画区域 + 上传
//var a = await DrawingImgAndUpload(item.imgUrl, regionArray);
//if (index == 1)
//{
// //DrawingImgAsync();
// Console.WriteLine(item.imgUrl);
// Console.WriteLine(regionArray);
// a = await DrawingImgAndUpload(item.imgUrl, regionArray);
// lasaAiAchievementDetail.Image = a;
//}
await db.LasaAiAchievementDetail.InsertAsync(lasaAiAchievementDetail);
index++;
}
}
else
{
LasaAiAchievement lasaAiAchievement = new LasaAiAchievement LasaAiAchievement lasaAiAchievement = new LasaAiAchievement
{ {
Id = Guid.NewGuid().ToString(), Id = Guid.NewGuid().ToString(),
Title = "耕地破坏区域报警", Title = "耕地破坏区域报警",
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
AiModel = "DaHuaAi" AiModel = "DaHuaAi",
TaskId = cdid
}; };
var imageList = data.imageInfoList;
int index = 0;
foreach (var item in imageList) foreach (var item in imageList)
{ {
//插入详情 //插入详情
@ -149,6 +184,13 @@ namespace OpenAuth.App.ServiceApp.Algo
index++; index++;
} }
await db.LasaAiAchievement.InsertAsync(lasaAiAchievement); await db.LasaAiAchievement.InsertAsync(lasaAiAchievement);
//查询监测记录然后更新监测记录的成果id
await db.Lasa_ChangeDetection.UpdateAsync(u => new Lasa_ChangeDetection
{
AiAchievementId = lasaAiAchievement.Id
}, u => u.Id == cdid);
}
if (db.Commit()) if (db.Commit())
return new Response<bool> return new Response<bool>
{ {

View File

@ -179,7 +179,7 @@ namespace OpenAuth.App.ServiceApp
}; };
} }
} }
public async Task<Response<bool>> AddChangeDetection(Lasa_ChangeDetection info) public async Task<Response<string>> AddChangeDetection(Lasa_ChangeDetection info)
{ {
using (var db = UnitWork.CreateContext()) using (var db = UnitWork.CreateContext())
{ {
@ -187,15 +187,15 @@ namespace OpenAuth.App.ServiceApp
info.CreateTime = DateTime.Now; info.CreateTime = DateTime.Now;
await db.Lasa_ChangeDetection.InsertAsync(info); await db.Lasa_ChangeDetection.InsertAsync(info);
if (db.Commit()) if (db.Commit())
return new Response<bool> return new Response<string>
{ {
Result = true, Result = info.Id,
Message = "添加成功" Message = "添加成功"
}; };
else else
return new Response<bool> return new Response<string>
{ {
Result = false, Result = info.Id,
Message = "添加失败" Message = "添加失败"
}; };
} }

View File

@ -138,9 +138,9 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[AllowAnonymous] [AllowAnonymous]
public async Task<Response<bool>> AddChangeDetection(Lasa_ChangeDetection info) public async Task<Response<string>> AddChangeDetection(Lasa_ChangeDetection info)
{ {
var result = new Response<bool>(); var result = new Response<string>();
try try
{ {
result = await _app.AddChangeDetection(info); result = await _app.AddChangeDetection(info);

View File

@ -225,10 +225,10 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="secondId"></param> /// <param name="secondId"></param>
[HttpPost] [HttpPost]
[AllowAnonymous] [AllowAnonymous]
public async void BehaviorAlarm(string firstId, string secondId) public async void BehaviorAlarm(string firstId, string secondId, string cdId)
{ {
var mq = await RabbitMqSender.CreateAsync("123.132.248.154", 9103, "DHCloudg1", "Cloud0#4fCraQrm"); var mq = await RabbitMqSender.CreateAsync("123.132.248.154", 9103, "DHCloudg1", "Cloud0#4fCraQrm");
var dataList = await _app.BehaviorAlarm(firstId, secondId); var dataList = await _app.BehaviorAlarm(firstId, secondId, cdId);
foreach (var data in dataList.Result) foreach (var data in dataList.Result)
{ {
await mq.SendAsync("event.capturePic.1.sdhc04", JsonConvert.SerializeObject(data)); await mq.SendAsync("event.capturePic.1.sdhc04", JsonConvert.SerializeObject(data));