Merge remote-tracking branch 'origin/main'

main
陈伟 2 months ago
commit 268d19d1dd

@ -11,6 +11,9 @@ using SqlSugar;
using Infrastructure;
using OpenAuth.App.ServiceApp.Response;
using DocumentFormat.OpenXml.EMMA;
using NPOI.SS.Formula.Functions;
using Infrastructure.Extensions;
using DocumentFormat.OpenXml.Math;
namespace OpenAuth.App.ServiceApp
{
@ -206,17 +209,57 @@ namespace OpenAuth.App.ServiceApp
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public bool AddManageDeviceHms(List<LasaManageDeviceHms> info)
public bool AddManageDeviceHms(List<LasaManageDeviceHms> newAlarms)
{
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())
return true;
else
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
#region 日志

@ -70,5 +70,13 @@ namespace OpenAuth.Repository.Domain
/// 修改时间
/// </summary>
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>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<Response<LasaGateway>> GetGateway()
{
var result = new Response<LasaGateway>();
@ -124,7 +123,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<Response<bool>> AddFirmware(LasaFirmware info)
{
var result = new Response<bool>();
@ -405,7 +403,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<Response<bool>> AddOrUpdateRedisUser(MqttClientResp info)
{
var result = new Response<bool>();
@ -463,7 +460,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<MqttClientResp>> GetRedisUser(string id)
{
var result = new Response<MqttClientResp>();
@ -497,7 +493,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// </summary>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<List<MqttClientResp>> GetLockedClients()
{
var userIds = await _cache.SetMembersAsync("locked_users");
@ -513,5 +508,34 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
#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>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetDataList(int page, int limit, string key)
{
var result = new Response<PageInfo<List<LasaDronePort>>>();
@ -100,7 +99,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
/// <param name="key"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<PageInfo<List<dynamic>>>> GetUavPageList(int page, int limit, string key)
{
var result = new Response<PageInfo<List<dynamic>>>();

@ -15,10 +15,10 @@ namespace OpenAuth.WebApi.Model.mqtt
public List<LasaManageDeviceHms> ParseAlarmMessages(string rawJson)
{
List<LasaManageDeviceHms> result= new List<LasaManageDeviceHms> ();
List<LasaManageDeviceHms> result = new List<LasaManageDeviceHms>();
var root = JsonNode.Parse(rawJson)?.AsObject();
if (root == null)
{
{
return null;
}
@ -73,9 +73,11 @@ namespace OpenAuth.WebApi.Model.mqtt
TId = tid,
Level = level,
Module = module,
CreateTime=DateTime.Now,
CreateTime = DateTime.Now,
MessageEn = en,
MessageZh = zh,
IsResolved = 0,
Code = code
});
}

@ -42,8 +42,8 @@ namespace OpenAuth.WebApi.Model.mqtt
$"thing/product/{gateway}/events",
$"thing/product/{gateway}/requests",
$"thing/product/{gateway}/services_reply",
$"thing/product/{gateway}/drc/up",
$"thing/product/{gateway}/drc/down",
//$"thing/product/{gateway}/drc/up",
//$"thing/product/{gateway}/drc/down",
$"thing/product/{gateway}/state"
});
}

@ -34,13 +34,16 @@ namespace OpenAuth.WebApi.Model.mqtt
if (payload.Contains("hms"))//健康告警
{
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");
var parser = new HmsAlarmParser(path);
var alarmMessages = parser.ParseAlarmMessages(payload);
_app.AddManageDeviceHms(alarmMessages);
}
alarmMessages = parser.ParseAlarmMessages(payload);
}
_app.AddManageDeviceHms(alarmMessages ?? new List<LasaManageDeviceHms>());
}
return Task.CompletedTask;

@ -333,7 +333,7 @@ namespace OpenAuth.WebApi
services.AddSingleton<IMqttMessageHandler, ThingServiceHandler>();
services.AddSingleton<IMqttMessageHandler, ThingOsdHandler>();
services.AddSingleton<IMqttMessageHandler, ThingEventHandler>();
services.AddSingleton<IMqttMessageHandler, ThingDrcHandler>();
//services.AddSingleton<IMqttMessageHandler, ThingDrcHandler>();
services.AddHostedService<MqttHostedService>();

Loading…
Cancel
Save