|
|
|
@ -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 日志
|
|
|
|
|