获取火情信息和摄像机信息

DataMaintenance
zhangbin 2025-04-01 14:32:29 +08:00
parent f561bfb15b
commit a50301e806
2 changed files with 44 additions and 5 deletions

View File

@ -26,7 +26,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
private ClientWebSocket _socket;
private IConfiguration _configuration;
public FireManagementApp( IConfiguration configuration,ISugarUnitOfWork<SugarDbContext> unitWork,
public FireManagementApp(IConfiguration configuration, ISugarUnitOfWork<SugarDbContext> unitWork,
ISimpleClient<FmFireclueTask> repository, IAuth auth) : base(unitWork, repository, auth)
{
_auth = auth;
@ -317,6 +317,25 @@ namespace OpenAuth.App.ServiceApp.FireManagement
return new Response<FmFireclueInfo> { Result = info };
}
}
public async Task<Response<dynamic>> LoadClueWithInfoById(long id)
{
using (var db = base.UnitWork.CreateContext())
{
var clueInfo = await db.FmFireclueInfo.AsQueryable()
.FirstAsync(r => r.Id == id);
//查找摄像头
var sqlStr = $@"select ""Id"",""Name"",""SerialNumber"" from fm_camera
where ST_DWithin(ST_GeographyFromText('POINT({clueInfo.Lng} {clueInfo.Lat})'),
ST_GeographyFromText('POINT('||""Lng""||' '||""Lat""||')'),1000)=true";
var cameraInfo = await db.Db.Ado.GetDataTableAsync(sqlStr);
var endInfo = new
{
clueInfo,
cameraInfo,
};
return new Response<dynamic> { Result = endInfo };
}
}
//查询火情线索列表
public async Task<Response<List<FmFireclueInfo>>> GetFireClueList()
{
@ -482,7 +501,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement
var chileorg = (await db.SysOrg.AsQueryable().ToChildListAsync(it => it.ParentId, item)).Select(it => it.Id).ToList();
chileorglist.AddRange(chileorg);
}
}
}
var userInfoQuery = db.User.AsQueryable()
.LeftJoin<FmUserPoint>((a, b) => a.Id == b.CreateId)
.LeftJoin<SysUserOrg>((a, b, c) => a.Id == c.UserId)
@ -551,11 +570,11 @@ namespace OpenAuth.App.ServiceApp.FireManagement
userPoint.Id = YitIdHelper.NextId();
userPoint.CreateTime = DateTime.Now;
var userPointHistory = userPoint.MapTo<FmUserPointHistory>();
var oldInfo = await db.Queryable<FmUserPoint>()
.Where(r => r.CreateId == userPoint.CreateId)
.FirstAsync();
//上线弹窗 第一次上报或者上线时间不超过2分钟
if (oldInfo == null || (oldInfo != null && oldInfo.CreateTime.AddMinutes(2) < DateTime.Now))
{
@ -631,6 +650,6 @@ namespace OpenAuth.App.ServiceApp.FireManagement
{
}
}
}
}

View File

@ -250,6 +250,26 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement
return response;
}
/// <summary>
/// 获取火情信息和摄像机信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public async Task<Response<dynamic>> LoadClueWithInfoById(long id)
{
Response<dynamic> response = new Response<dynamic>();
try
{
return await _app.LoadClueWithInfoById(id);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 查询火情线索列表
/// </summary>
/// <returns></returns>