using AutoMapper;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using IStation.RedisCache;
|
|
namespace IStation.Service
|
{
|
/// <summary>
|
/// 监测报警记录
|
/// </summary>
|
public partial class MonitorAlarmRecord
|
{
|
|
#region 最近记录
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取最近一条记录列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecordPure> GetLastRecordListByMonitorPointID(long CorpID, long MonitorPointID)
|
{
|
var list = new RedisCache.MonitorAlarmRecordCacheHelper().GetLastRecordList(CorpID,MonitorPointID);
|
return list;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取最近一条记录
|
/// </summary>
|
public Model.MonitorAlarmRecordPure GetLastRecordByMonitorPointID(long CorpID, long MonitorPointID)
|
{
|
var list=new RedisCache.MonitorAlarmRecordCacheHelper().GetLastRecordList(CorpID, MonitorPointID);
|
if (list == null || list.Count < 1)
|
return default;
|
return list.OrderBy(x => x.AlarmTime).Last();
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointIds 获取最近一条记录
|
/// </summary>
|
public List<Model.MonitorAlarmRecordPure> GetLastRecordByMonitorPointIds(long CorpID, IEnumerable<long> MonitorPointIds)
|
{
|
if (MonitorPointIds == null || MonitorPointIds.Count() < 1)
|
return default;
|
var redisHelper = new RedisCache.MonitorAlarmRecordCacheHelper();
|
return MonitorPointIds.Select(x =>
|
{
|
var list = redisHelper.GetLastRecordList(CorpID, x);
|
return list?.OrderBy(x => x.AlarmTime).LastOrDefault();
|
}).Where(x => x != null).ToList();
|
}
|
|
/// <summary>
|
/// 通过 SignalID 获取最近一条记录列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecordPure> GetLastRecordListBySignalID(long CorpID, long MonitorPointID, long SignalID)
|
{
|
var list = new RedisCache.MonitorAlarmRecordCacheHelper().GetLastRecordList(CorpID, MonitorPointID,SignalID);
|
return list;
|
}
|
|
/// <summary>
|
/// 通过 SignalID 获取最近一条记录列表
|
/// </summary>
|
public Model.MonitorAlarmRecordPure GetLastRecordBySignalID(long CorpID, long MonitorPointID, long SignalID)
|
{
|
var list = new RedisCache.MonitorAlarmRecordCacheHelper().GetLastRecordList(CorpID, MonitorPointID, SignalID);
|
if (list == null || list.Count < 1)
|
return default;
|
return list.OrderBy(x => x.AlarmTime).Last();
|
}
|
|
#endregion
|
|
#region Query
|
|
/// <summary>
|
/// 通过 CorpID 获取
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetByCorpID(long CorpID)
|
{
|
var dal=new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetByCorpID(CorpID);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 ID 获取
|
/// </summary>
|
public Model.MonitorAlarmRecord GetByID(long CorpID, long ID)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity = dal.GetByID(CorpID, ID);
|
var model = Entity2Model(entity);
|
return model;
|
}
|
|
/// <summary>
|
/// 通过 Ids 获取
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetByIds(long CorpID, List<long> Ids)
|
{
|
if (Ids == null || Ids.Count() < 1)
|
return default;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetByIds(CorpID, Ids);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 ConfigureID 获取
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetByConfigureID(long CorpID, long ConfigureID)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetByConfigureID(CorpID, ConfigureID);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 ConfigureID 获取某天的数据
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetByConfigureIDOfDay(long CorpID, long ConfigureID, DateTime Day)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetByConfigureIDOfDay(CorpID, ConfigureID, Day);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetByMonitorPointID(long CorpID, long MonitorPointID)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetByMonitorPointID(CorpID, MonitorPointID);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取某天的数据
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetByMonitorPointIDOfDay(long CorpID, long MonitorPointID, DateTime Day)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetByMonitorPointIDOfDay(CorpID, MonitorPointID, Day);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 CorpID 获取最近一条
|
/// </summary>
|
public Model.MonitorAlarmRecord GetLastByCorpID(long CorpID)
|
{
|
return GetLastByCorpID(CorpID, 1)?.FirstOrDefault();
|
}
|
|
/// <summary>
|
/// 通过 CorpID 获取最近几条
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetLastByCorpID(long CorpID, int Number)
|
{
|
if (Number < 1)
|
Number = 1;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetLastByCorpID(CorpID, Number);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取最近一条
|
/// </summary>
|
public Model.MonitorAlarmRecord GetLastByMonitorPointID(long CorpID, long MonitorPointID)
|
{
|
return GetLastByMonitorPointID(CorpID, MonitorPointID, 1)?.FirstOrDefault();
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取最近几条
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetLastByMonitorPointID(long CorpID, long MonitorPointID, int Number)
|
{
|
if (Number < 1)
|
Number = 1;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetLastByMonitorPointID(CorpID, MonitorPointID, Number);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 获取模糊列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetFluzzyList
|
(long CorpID, long? MonitorPointID, string AlarmType, int? AlarmLevel, int? HandleStatus, DateTime? StartTime, DateTime? EndTime)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetFluzzyList(CorpID, MonitorPointID, AlarmType, AlarmLevel, HandleStatus, StartTime, EndTime);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 获取模糊分页列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetFluzzyPageList
|
(long CorpID, List<long> MonitorPointIds, string AlarmType, int? AlarmLevel, int? HandleStatus, DateTime? StartTime, DateTime? EndTime,int PageIndex,int PageSize,ref int Total)
|
{
|
Total = 0;
|
if (StartTime > EndTime)
|
return default;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetFluzzyPageList(CorpID, MonitorPointIds, AlarmType, AlarmLevel, HandleStatus, StartTime, EndTime,PageIndex,PageSize,ref Total);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 CorpID 获取分页列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetPageListByCorpID(long CorpID, DateTime StartTime, DateTime EndTime, int PageIndex, int PageSize, ref int Total)
|
{
|
Total = 0;
|
if (StartTime > EndTime)
|
return default;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetPageListByCorpID(CorpID, StartTime, EndTime, PageIndex, PageSize, ref Total);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取分页列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetPageListByMonitorPointID
|
(long CorpID, long MonitorPointID, DateTime StartTime, DateTime EndTime, int PageIndex, int PageSize, ref int Total)
|
{
|
Total = 0;
|
if (StartTime > EndTime)
|
return default;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetPageListByMonitorPointID(CorpID, MonitorPointID, StartTime, EndTime, PageIndex, PageSize, ref Total);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointIds 获取分页列表
|
/// </summary>
|
public List<Model.MonitorAlarmRecord> GetPageListByMonitorPointIds
|
(long CorpID, List<long> MonitorPointIds, DateTime StartTime, DateTime EndTime, int PageIndex, int PageSize, ref int Total)
|
{
|
Total = 0;
|
if (MonitorPointIds == null || MonitorPointIds.Count() < 1)
|
return default;
|
if (StartTime > EndTime)
|
return default;
|
var dal = new DAL.MonitorAlarmRecord();
|
var entity_list = dal.GetPageListByMonitorPointIds(CorpID, MonitorPointIds, StartTime, EndTime, PageIndex, PageSize, ref Total);
|
var model_list = Entity2Models(entity_list);
|
return model_list;
|
}
|
|
/// <summary>
|
/// 获取报警类型数量列表
|
/// </summary>
|
public Dictionary<string, int> GetAlarmTypeCountList
|
(long CorpID, List<long> MonitorPointIds, int? AlarmLevel, int? HandleStatus, DateTime? StartTime, DateTime? EndTime)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var dict = new Dictionary<string, int>();
|
foreach (var alarmType in IStation.Alarm.GetAlarmTypeList())
|
{
|
var count= dal.GetCount(CorpID, MonitorPointIds,alarmType, AlarmLevel, HandleStatus, StartTime, EndTime );
|
dict.Add(alarmType,count);
|
}
|
return dict;
|
}
|
|
#endregion
|
|
#region Insert
|
|
/// <summary>
|
/// 插入一条数据
|
/// </summary>
|
public long Insert(Model.MonitorAlarmRecord model)
|
{
|
if (model == null)
|
return default;
|
if (model.CorpID < 1)
|
return default;
|
var entity = Model2Entity(model);
|
var dal = new DAL.MonitorAlarmRecord();
|
return dal.Insert(entity);
|
}
|
|
/// <summary>
|
/// 插入多条
|
/// </summary>
|
public bool Inserts(List<Model.MonitorAlarmRecord> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
|
if (corpIds.Count != 1 || corpIds[0] < 1)
|
return default;
|
var entity_list = Model2Entities(list.ToList());
|
var dal = new DAL.MonitorAlarmRecord();
|
return dal.Inserts(entity_list);
|
}
|
|
/// <summary>
|
/// 插入最后一条记录
|
/// </summary>
|
public bool InsertLastRecord(Model.MonitorAlarmRecordPure model)
|
{
|
if (model == null)
|
return default;
|
if (model.CorpID < 1)
|
return default;
|
var entity = Model2Entity(model);
|
var dal = new DAL.MonitorAlarmRecord();
|
var id= dal.Insert(entity);
|
if (id > 0)
|
{
|
new RedisCache.MonitorAlarmRecordCacheHelper().SetLastRecord(model);
|
return true;
|
}
|
return false;
|
}
|
|
#endregion
|
|
#region Update
|
|
/// <summary>
|
/// 更新一条
|
/// </summary>
|
public bool Update(Model.MonitorAlarmRecord model)
|
{
|
if (model == null)
|
return default;
|
if (model.CorpID < 1)
|
return default;
|
if (model.ID < 1)
|
return default;
|
var entity = Model2Entity(model);
|
var dal = new DAL.MonitorAlarmRecord();
|
return dal.Update(entity);
|
|
}
|
|
/// <summary>
|
/// 更新多条
|
/// </summary>
|
public bool Updates(List<Model.MonitorAlarmRecord> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
|
if (corpIds.Count != 1 || corpIds[0] < 1)
|
return default;
|
if (list.ToList().Exists(x => x.ID < 1))
|
return default;
|
var entity_list = Model2Entities(list.ToList());
|
var dal = new DAL.MonitorAlarmRecord();
|
return dal.Updates(entity_list);
|
}
|
|
/// <summary>
|
/// 更新 HandleStatus
|
/// </summary>
|
public bool UpdateHandleStatus(long CorpID, long ID, Model.Alarm.eHandleStatus HandleStatus)
|
{
|
var dal = new DAL.MonitorAlarmRecord();
|
var bol = dal.UpdateHandleStatus(CorpID, ID, (int)HandleStatus);
|
return bol;
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|