From 1686c32d0ab84b1bbd9bfcd5558af4598ca02abd Mon Sep 17 00:00:00 2001
From: zhangbin <460190368@qq.com>
Date: Fri, 27 Jun 2025 15:49:25 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ServiceApp/AirportMaintenanceApp.cs | 46 ++++++++++++++++++-
.../Domain/LasaManageDeviceHms.cs | 8 ++++
.../AirportMaintenanceController.cs | 34 ++++++++++++--
OpenAuth.WebApi/Model/mqtt/HmsAlarmParser.cs | 8 ++--
.../Model/mqtt/MqttHostedService.cs | 4 +-
.../Model/mqtt/ThingEventHandler.cs | 15 +++---
OpenAuth.WebApi/Startup.cs | 2 +-
7 files changed, 98 insertions(+), 19 deletions(-)
diff --git a/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs b/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs
index b91345c..f1bf00b 100644
--- a/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs
+++ b/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs
@@ -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
///
///
///
- public bool AddManageDeviceHms(List info)
+ public bool AddManageDeviceHms(List 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>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit)
+ {
+ RefAsync 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>>
+ {
+ Result = new PageInfo> { Items = list, Total = totalCount }
+ };
+ }
+ }
#endregion
#region 日志
diff --git a/OpenAuth.Repository/Domain/LasaManageDeviceHms.cs b/OpenAuth.Repository/Domain/LasaManageDeviceHms.cs
index 4a9065e..02f2c20 100644
--- a/OpenAuth.Repository/Domain/LasaManageDeviceHms.cs
+++ b/OpenAuth.Repository/Domain/LasaManageDeviceHms.cs
@@ -70,5 +70,13 @@ namespace OpenAuth.Repository.Domain
/// 修改时间
///
public DateTime? UpdateTime { get; set; }
+ ///
+ /// 是否解除
+ ///
+ public int IsResolved { get; set; }
+ ///
+ /// 告警码
+ ///
+ public string Code { get; set; }
}
}
diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs
index 9d6f6a0..13e8f5f 100644
--- a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs
+++ b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs
@@ -89,7 +89,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpPost]
- [AllowAnonymous]
public async Task> GetGateway()
{
var result = new Response();
@@ -124,7 +123,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpPost]
- [AllowAnonymous]
public async Task> AddFirmware(LasaFirmware info)
{
var result = new Response();
@@ -405,7 +403,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpPost]
- [AllowAnonymous]
public async Task> AddOrUpdateRedisUser(MqttClientResp info)
{
var result = new Response();
@@ -463,7 +460,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpGet]
- [AllowAnonymous]
public async Task> GetRedisUser(string id)
{
var result = new Response();
@@ -497,7 +493,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpGet]
- [AllowAnonymous]
public async Task> GetLockedClients()
{
var userIds = await _cache.SetMembersAsync("locked_users");
@@ -513,5 +508,34 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
#endregion
+
+ #region 获取告警信息
+ ///
+ /// 获取告警信息
+ ///
+ /// 告警等级,0-全部,1-注意,2-告警
+ /// 设备,0-全部,1-设备管理,2-媒体管理,3-HMS告警
+ ///
+ ///
+ ///
+ ///
+ ///
+ [HttpGet]
+ public async Task>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit)
+ {
+ var result = new Response>>();
+ try
+ {
+ result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit);
+ }
+ catch (Exception ex)
+ {
+ result.Code = 500;
+ result.Message = ex.Message;
+ }
+
+ return result;
+ }
+ #endregion
}
}
diff --git a/OpenAuth.WebApi/Model/mqtt/HmsAlarmParser.cs b/OpenAuth.WebApi/Model/mqtt/HmsAlarmParser.cs
index c51e6e4..377278b 100644
--- a/OpenAuth.WebApi/Model/mqtt/HmsAlarmParser.cs
+++ b/OpenAuth.WebApi/Model/mqtt/HmsAlarmParser.cs
@@ -15,10 +15,10 @@ namespace OpenAuth.WebApi.Model.mqtt
public List ParseAlarmMessages(string rawJson)
{
- List result= new List ();
+ List result = new List();
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
});
}
diff --git a/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs b/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs
index 4a77bdf..81dffb2 100644
--- a/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs
+++ b/OpenAuth.WebApi/Model/mqtt/MqttHostedService.cs
@@ -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"
});
}
diff --git a/OpenAuth.WebApi/Model/mqtt/ThingEventHandler.cs b/OpenAuth.WebApi/Model/mqtt/ThingEventHandler.cs
index d58c94e..0c52729 100644
--- a/OpenAuth.WebApi/Model/mqtt/ThingEventHandler.cs
+++ b/OpenAuth.WebApi/Model/mqtt/ThingEventHandler.cs
@@ -34,13 +34,16 @@ namespace OpenAuth.WebApi.Model.mqtt
if (payload.Contains("hms"))//健康告警
{
var jsondata = JsonSerializer.Deserialize(payload);
- if (jsondata.data != null && jsondata.data.list.Count > 0)
+
+ var path = Path.Combine(AppContext.BaseDirectory, "hms.json");
+ var parser = new HmsAlarmParser(path);
+
+ List 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());
}
return Task.CompletedTask;
diff --git a/OpenAuth.WebApi/Startup.cs b/OpenAuth.WebApi/Startup.cs
index 1794e0b..aefb7d9 100644
--- a/OpenAuth.WebApi/Startup.cs
+++ b/OpenAuth.WebApi/Startup.cs
@@ -333,7 +333,7 @@ namespace OpenAuth.WebApi
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
- services.AddSingleton();
+ //services.AddSingleton();
services.AddHostedService();
From d161a22c3596f7d4587b5fa96fefe2efde089241 Mon Sep 17 00:00:00 2001
From: zhangbin <460190368@qq.com>
Date: Fri, 27 Jun 2025 15:49:58 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AA=8C=E8=AF=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/ServiceControllers/ManageController.cs | 2 --
1 file changed, 2 deletions(-)
diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs
index a32d07d..9793e67 100644
--- a/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs
+++ b/OpenAuth.WebApi/Controllers/ServiceControllers/ManageController.cs
@@ -39,7 +39,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpGet]
- [AllowAnonymous]
public async Task>>> GetDataList(int page, int limit, string key)
{
var result = new Response>>();
@@ -100,7 +99,6 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpGet]
- [AllowAnonymous]
public async Task>>> GetUavPageList(int page, int limit, string key)
{
var result = new Response>>();
From 74d8634df11f0bc1b87937191e12b3ef0f100306 Mon Sep 17 00:00:00 2001
From: zhangbin <460190368@qq.com>
Date: Fri, 27 Jun 2025 15:54:31 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E7=AD=9B=E9=80=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs | 5 +++--
.../ServiceControllers/AirportMaintenanceController.cs | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs b/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs
index f1bf00b..f20d9c8 100644
--- a/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs
+++ b/OpenAuth.App/ServiceApp/AirportMaintenanceApp.cs
@@ -242,15 +242,16 @@ namespace OpenAuth.App.ServiceApp
}
}
//根据时间获取告警信息列表
- public async Task>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit)
+ public async Task>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit, string message)
{
RefAsync 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(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>>
diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs
index 13e8f5f..b6cc0e2 100644
--- a/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs
+++ b/OpenAuth.WebApi/Controllers/ServiceControllers/AirportMaintenanceController.cs
@@ -521,12 +521,12 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
///
///
[HttpGet]
- public async Task>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit)
+ public async Task>>> GetManageDeviceHmsList(int level, int model, DateTime startTime, DateTime endTime, int page, int limit, string message)
{
var result = new Response>>();
try
{
- result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit);
+ result = await _app.GetManageDeviceHmsList(level, model, startTime, endTime, page, limit, message);
}
catch (Exception ex)
{