using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using IStation.RedisCache; namespace IStation.Service { /// /// 实时监测记录 /// public partial class MonitorRecord { #region 最近一条记录 /// /// 获取最近一条记录 /// public Model.MonitorRecord GetLastRecord(long monitorPointId) { var redisHelper = new MonitorRecordCacheHelper(); var record = redisHelper.GetLastRecord(monitorPointId); return record; } /// /// 获取最近一条记录 /// public List GetLastRecord(IEnumerable monitorPointIds) { if (monitorPointIds == null || monitorPointIds.Count() < 1) return default; var redisHelper = new MonitorRecordCacheHelper(); var record = redisHelper.GetLastRecord(monitorPointIds); return record; } #endregion #region Query /// /// 获取所有 /// public List GetAll() { var dal = new DAL.MonitorRecord(); var all = dal.GetAll(); return Entity2Models(all); } #endregion #region 通过 MonitorPointID 获取 /// /// 通过 MonitorPointID 获取某一天的数据 /// public List GetByMonitorPointIDOfDay( long MonitorPointID, DateTime Day) { var dal = new DAL.MonitorRecord(); var entity_list = dal.GetByMonitorPointIDOfDay( MonitorPointID, Day); return Entity2Models(entity_list); } /// /// 通过 MonitorPointID 获取日期区间内的数据 /// public List GetByMonitorPointIDOfDayRange(long MonitorPointID, DateTime StartDay, DateTime EndDay) { if (StartDay.Date > EndDay.Date) return default; var dal = new DAL.MonitorRecord(); var entity_list = dal.GetByMonitorPointIDOfDayRange(MonitorPointID, StartDay, EndDay); return Entity2Models(entity_list); } /// /// 通过 MonitorPointID 获取时间区间内的数据 /// public List GetByMonitorPointIDOfTimeRange( long MonitorPointID, DateTime StartTime, DateTime EndTime) { if (StartTime > EndTime) return default; var dal = new DAL.MonitorRecord(); var entity_list = dal.GetByMonitorPointIDOfTimeRange( MonitorPointID, StartTime, EndTime); return Entity2Models(entity_list); } #endregion #region Insert /// /// 插入一条 /// public long Insert(Model.MonitorRecord model) { if (model == null) return default; var dal = new DAL.MonitorRecord(); var entity = Model2Entity(model); var id = dal.Insert(entity); return id; } /// /// 插入多条 /// public bool Inserts(List list) { if (list == null || list.Count < 1) return false; var dal = new DAL.MonitorRecord(); var entity_list = Model2Entities(list); var bol = dal.Inserts(entity_list); return bol; } /// /// 插入最近一条记录 /// public bool InsertLastRecord(Model.MonitorRecord model) { if (model == null) return default; var queueHelper = new RabbitMqQueueHelper(); var bol = queueHelper.Push(ConfigHelper.StoreQueueName, new List { model }); if (bol) { var redisHelper = new MonitorRecordCacheHelper(); redisHelper.SetLastRecord(model); } return bol; } /// /// 插入最近多条记录 /// public bool InsertsLastRecord(List list) { if (list == null || list.Count() < 1) return default; var queueHelper = new RabbitMqQueueHelper(); var bol = queueHelper.Push(ConfigHelper.StoreQueueName, list); if (bol) { var redisHelper = new MonitorRecordCacheHelper(); redisHelper.SetLastRecord(list); } return bol; } #endregion } }