Compare commits
2 Commits
9d07444f65
...
d161a22c35
| Author | SHA1 | Date |
|---|---|---|
|
|
d161a22c35 | |
|
|
1686c32d0a |
|
|
@ -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,56 @@ 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)
|
||||
{
|
||||
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)
|
||||
.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)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaManageDeviceHms>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit);
|
||||
}
|
||||
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…
Reference in New Issue