Merge remote-tracking branch 'origin/main'
commit
268d19d1dd
|
|
@ -11,6 +11,9 @@ using SqlSugar;
|
||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using OpenAuth.App.ServiceApp.Response;
|
using OpenAuth.App.ServiceApp.Response;
|
||||||
using DocumentFormat.OpenXml.EMMA;
|
using DocumentFormat.OpenXml.EMMA;
|
||||||
|
using NPOI.SS.Formula.Functions;
|
||||||
|
using Infrastructure.Extensions;
|
||||||
|
using DocumentFormat.OpenXml.Math;
|
||||||
|
|
||||||
namespace OpenAuth.App.ServiceApp
|
namespace OpenAuth.App.ServiceApp
|
||||||
{
|
{
|
||||||
|
|
@ -206,17 +209,57 @@ namespace OpenAuth.App.ServiceApp
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="info"></param>
|
/// <param name="info"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool AddManageDeviceHms(List<LasaManageDeviceHms> info)
|
public bool AddManageDeviceHms(List<LasaManageDeviceHms> newAlarms)
|
||||||
{
|
{
|
||||||
using (var db = UnitWork.CreateContext())
|
using (var db = UnitWork.CreateContext())
|
||||||
{
|
{
|
||||||
var flag = db.LasaManageDeviceHms.InsertRange(info);
|
var now = DateTime.Now;
|
||||||
|
//获取当前所有未处理的告警信息
|
||||||
|
var existing = db.LasaManageDeviceHms.AsQueryable()
|
||||||
|
.Where(x => x.IsResolved == 0).ToList();
|
||||||
|
var currentKeys = newAlarms.Select(x => x.Code).ToHashSet();
|
||||||
|
var existingKeys = existing.Select(x => x.Code).ToHashSet();
|
||||||
|
// 需要解除的(老有,新没有) 起的隆冬强
|
||||||
|
var toResolve = existing
|
||||||
|
.Where(x => !currentKeys.Contains(x.Code)).ToList();
|
||||||
|
foreach (var resolved in toResolve)
|
||||||
|
{
|
||||||
|
resolved.IsResolved = 1;
|
||||||
|
resolved.UpdateTime = now;
|
||||||
|
}
|
||||||
|
db.LasaManageDeviceHms.UpdateRange(toResolve);
|
||||||
|
// 需要新增的(新有,老没有)
|
||||||
|
var toInsert = newAlarms
|
||||||
|
.Where(x => !existingKeys.Contains(x.Code))
|
||||||
|
.ToList();
|
||||||
|
if (toInsert.Count > 0)
|
||||||
|
db.LasaManageDeviceHms.InsertRange(toInsert);
|
||||||
|
//var flag = db.LasaManageDeviceHms.InsertRange(newAlarms);
|
||||||
if (db.Commit())
|
if (db.Commit())
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//根据时间获取告警信息列表
|
||||||
|
public async Task<Response<PageInfo<List<LasaManageDeviceHms>>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit, string message)
|
||||||
|
{
|
||||||
|
RefAsync<int> totalCount = 0;
|
||||||
|
using (var db = UnitWork.CreateContext())
|
||||||
|
{
|
||||||
|
var list = await db.LasaManageDeviceHms.AsQueryable()
|
||||||
|
.Where(x => x.CreateTime >= startTime && x.CreateTime <= endTime && x.IsResolved == 0)
|
||||||
|
.WhereIF(level != 0, x => x.Level == level)
|
||||||
|
.WhereIF(model != 0, x => x.Module == model)
|
||||||
|
.WhereIF(!string.IsNullOrEmpty(message), x => x.MessageZh.Contains(message))
|
||||||
|
.OrderBy(x => x.CreateTime, OrderByType.Desc)
|
||||||
|
.ToPageListAsync(page, limit, totalCount);
|
||||||
|
return new Response<PageInfo<List<LasaManageDeviceHms>>>
|
||||||
|
{
|
||||||
|
Result = new PageInfo<List<LasaManageDeviceHms>> { Items = list, Total = totalCount }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 日志
|
#region 日志
|
||||||
|
|
|
||||||
|
|
@ -70,5 +70,13 @@ namespace OpenAuth.Repository.Domain
|
||||||
/// 修改时间
|
/// 修改时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? UpdateTime { get; set; }
|
public DateTime? UpdateTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 是否解除
|
||||||
|
/// </summary>
|
||||||
|
public int IsResolved { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 告警码
|
||||||
|
/// </summary>
|
||||||
|
public string Code { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<Response<LasaGateway>> GetGateway()
|
public async Task<Response<LasaGateway>> GetGateway()
|
||||||
{
|
{
|
||||||
var result = new Response<LasaGateway>();
|
var result = new Response<LasaGateway>();
|
||||||
|
|
@ -124,7 +123,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// <param name="info"></param>
|
/// <param name="info"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<Response<bool>> AddFirmware(LasaFirmware info)
|
public async Task<Response<bool>> AddFirmware(LasaFirmware info)
|
||||||
{
|
{
|
||||||
var result = new Response<bool>();
|
var result = new Response<bool>();
|
||||||
|
|
@ -405,7 +403,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// <param name="info"></param>
|
/// <param name="info"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<Response<bool>> AddOrUpdateRedisUser(MqttClientResp info)
|
public async Task<Response<bool>> AddOrUpdateRedisUser(MqttClientResp info)
|
||||||
{
|
{
|
||||||
var result = new Response<bool>();
|
var result = new Response<bool>();
|
||||||
|
|
@ -463,7 +460,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// <param name="id"></param>
|
/// <param name="id"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<Response<MqttClientResp>> GetRedisUser(string id)
|
public async Task<Response<MqttClientResp>> GetRedisUser(string id)
|
||||||
{
|
{
|
||||||
var result = new Response<MqttClientResp>();
|
var result = new Response<MqttClientResp>();
|
||||||
|
|
@ -497,7 +493,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<List<MqttClientResp>> GetLockedClients()
|
public async Task<List<MqttClientResp>> GetLockedClients()
|
||||||
{
|
{
|
||||||
var userIds = await _cache.SetMembersAsync("locked_users");
|
var userIds = await _cache.SetMembersAsync("locked_users");
|
||||||
|
|
@ -513,5 +508,34 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 获取告警信息
|
||||||
|
/// <summary>
|
||||||
|
/// 获取告警信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="level">告警等级,0-全部,1-注意,2-告警</param>
|
||||||
|
/// <param name="model">设备,0-全部,1-设备管理,2-媒体管理,3-HMS告警</param>
|
||||||
|
/// <param name="startTime"></param>
|
||||||
|
/// <param name="endTime"></param>
|
||||||
|
/// <param name="page"></param>
|
||||||
|
/// <param name="limit"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<Response<PageInfo<List<LasaManageDeviceHms>>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit, string message)
|
||||||
|
{
|
||||||
|
var result = new Response<PageInfo<List<LasaManageDeviceHms>>>();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit, message);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
result.Code = 500;
|
||||||
|
result.Message = ex.Message;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetDataList(int page, int limit, string key)
|
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetDataList(int page, int limit, string key)
|
||||||
{
|
{
|
||||||
var result = new Response<PageInfo<List<LasaDronePort>>>();
|
var result = new Response<PageInfo<List<LasaDronePort>>>();
|
||||||
|
|
@ -100,7 +99,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[AllowAnonymous]
|
|
||||||
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string key)
|
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string key)
|
||||||
{
|
{
|
||||||
var result = new Response<PageInfo<List<dynamic>>>();
|
var result = new Response<PageInfo<List<dynamic>>>();
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@ namespace OpenAuth.WebApi.Model.mqtt
|
||||||
|
|
||||||
public List<LasaManageDeviceHms> ParseAlarmMessages(string rawJson)
|
public List<LasaManageDeviceHms> ParseAlarmMessages(string rawJson)
|
||||||
{
|
{
|
||||||
List<LasaManageDeviceHms> result= new List<LasaManageDeviceHms> ();
|
List<LasaManageDeviceHms> result = new List<LasaManageDeviceHms>();
|
||||||
var root = JsonNode.Parse(rawJson)?.AsObject();
|
var root = JsonNode.Parse(rawJson)?.AsObject();
|
||||||
if (root == null)
|
if (root == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,9 +73,11 @@ namespace OpenAuth.WebApi.Model.mqtt
|
||||||
TId = tid,
|
TId = tid,
|
||||||
Level = level,
|
Level = level,
|
||||||
Module = module,
|
Module = module,
|
||||||
CreateTime=DateTime.Now,
|
CreateTime = DateTime.Now,
|
||||||
MessageEn = en,
|
MessageEn = en,
|
||||||
MessageZh = zh,
|
MessageZh = zh,
|
||||||
|
IsResolved = 0,
|
||||||
|
Code = code
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,8 @@ namespace OpenAuth.WebApi.Model.mqtt
|
||||||
$"thing/product/{gateway}/events",
|
$"thing/product/{gateway}/events",
|
||||||
$"thing/product/{gateway}/requests",
|
$"thing/product/{gateway}/requests",
|
||||||
$"thing/product/{gateway}/services_reply",
|
$"thing/product/{gateway}/services_reply",
|
||||||
$"thing/product/{gateway}/drc/up",
|
//$"thing/product/{gateway}/drc/up",
|
||||||
$"thing/product/{gateway}/drc/down",
|
//$"thing/product/{gateway}/drc/down",
|
||||||
$"thing/product/{gateway}/state"
|
$"thing/product/{gateway}/state"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,16 @@ namespace OpenAuth.WebApi.Model.mqtt
|
||||||
if (payload.Contains("hms"))//健康告警
|
if (payload.Contains("hms"))//健康告警
|
||||||
{
|
{
|
||||||
var jsondata = JsonSerializer.Deserialize<HmsMessage>(payload);
|
var jsondata = JsonSerializer.Deserialize<HmsMessage>(payload);
|
||||||
if (jsondata.data != null && jsondata.data.list.Count > 0)
|
|
||||||
|
var path = Path.Combine(AppContext.BaseDirectory, "hms.json");
|
||||||
|
var parser = new HmsAlarmParser(path);
|
||||||
|
|
||||||
|
List<LasaManageDeviceHms> alarmMessages = null;
|
||||||
|
if (jsondata.data != null && jsondata.data.list?.Count > 0)
|
||||||
{
|
{
|
||||||
var path = Path.Combine(AppContext.BaseDirectory, "hms.json");
|
alarmMessages = parser.ParseAlarmMessages(payload);
|
||||||
var parser = new HmsAlarmParser(path);
|
}
|
||||||
var alarmMessages = parser.ParseAlarmMessages(payload);
|
_app.AddManageDeviceHms(alarmMessages ?? new List<LasaManageDeviceHms>());
|
||||||
_app.AddManageDeviceHms(alarmMessages);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
|
||||||
|
|
@ -333,7 +333,7 @@ namespace OpenAuth.WebApi
|
||||||
services.AddSingleton<IMqttMessageHandler, ThingServiceHandler>();
|
services.AddSingleton<IMqttMessageHandler, ThingServiceHandler>();
|
||||||
services.AddSingleton<IMqttMessageHandler, ThingOsdHandler>();
|
services.AddSingleton<IMqttMessageHandler, ThingOsdHandler>();
|
||||||
services.AddSingleton<IMqttMessageHandler, ThingEventHandler>();
|
services.AddSingleton<IMqttMessageHandler, ThingEventHandler>();
|
||||||
services.AddSingleton<IMqttMessageHandler, ThingDrcHandler>();
|
//services.AddSingleton<IMqttMessageHandler, ThingDrcHandler>();
|
||||||
services.AddHostedService<MqttHostedService>();
|
services.AddHostedService<MqttHostedService>();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue