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 MonitorHourRecord
{
#region 最近一条记录
///
/// 获取最近一条记录
///
public Model.MonitorHourRecordPure GetLastRecord(long CorpID, long MonitorPointID, long SignalID)
{
var redisHelper = new MonitorRecordCacheHelper();
var record = redisHelper.GetLastHourRecord(CorpID, MonitorPointID, SignalID);
return record;
}
///
/// 获取最近一条记录
///
public List GetLastRecord(long CorpID, long MonitorPointID, IEnumerable SignalIds)
{
if (SignalIds == null || SignalIds.Count() < 1)
return default;
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastHourRecord(CorpID, MonitorPointID, SignalIds);
return records;
}
///
/// 获取最近一条记录
///
public List GetLastRecord(long CorpID, Dictionary dict)
{
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastHourRecord(CorpID, dict);
return records;
}
///
/// 获取最近一条记录
///
public List GetLastRecord(long CorpID, long MonitorPointID)
{
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastHourRecord(CorpID, MonitorPointID);
return records;
}
///
/// 获取最近一条记录
///
public List GetLastRecord(long CorpID, IEnumerable MonitorPointIds)
{
if (MonitorPointIds == null || MonitorPointIds.Count() < 1)
return default;
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastHourRecord(CorpID, MonitorPointIds);
return records;
}
///
/// 获取最近一条正常记录
///
public Model.MonitorHourRecordPure GetLastNormalRecord(long CorpID, long MonitorPointID, long SignalID)
{
var redisHelper = new MonitorRecordCacheHelper();
var record = redisHelper.GetLastNormalHourRecord(CorpID, MonitorPointID, SignalID);
return record;
}
///
/// 获取最近一条正常记录
///
public List GetLastNormalRecord(long CorpID, Dictionary dict)
{
if (dict == null || dict.Count < 1)
return default;
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastNormalHourRecord(CorpID, dict);
return records;
}
///
/// 获取最近一条正常记录
///
public List GetLastNormalRecord(long CorpID, long MonitorPointID)
{
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastNormalHourRecord(CorpID, MonitorPointID);
return records;
}
///
/// 获取最近一条正常记录
///
public List GetLastNormalRecord(long CorpID, IEnumerable MonitorPointIds)
{
if (MonitorPointIds == null || MonitorPointIds.Count() < 1)
return default;
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastNormalHourRecord(CorpID, MonitorPointIds);
return records;
}
#endregion
#region 条件查询
///
/// 通过 MonitorPointID 获取
///
public List GetByMonitorPointID(long CorpID, long MonitorPointID)
{
var dal = new DAL.MonitorHourRecord();
var entity_list = dal.GetByMonitorPointID(CorpID, MonitorPointID);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x => x.DataDay).ThenBy(x => x.DataHour).ThenBy(x=>x.DataTime).ToList();
}
///
/// 通过 MonitorPointID 获取某天的数据
///
public List GetByMonitorPointIDOfDay(long CorpID, long MonitorPointID, DateTime Day)
{
var dal = new DAL.MonitorHourRecord();
var entity_list = dal.GetByMonitorPointIDOfDay(CorpID, MonitorPointID, Day.Date);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x => x.DataDay).ThenBy(x => x.DataHour).ThenBy(x => x.DataTime).ToList();
}
///
/// 通过 MonitorPointID 获取日期区间内的数据
///
public List GetByMonitorPointIDOfDayRange(long CorpID, long MonitorPointID, DateTime StartDay, DateTime EndDay)
{
if (EndDay.Date < StartDay.Date)
return default;
var dal = new DAL.MonitorHourRecord();
var entity_list = dal.GetByMonitorPointIDOfDayRange(CorpID, MonitorPointID, StartDay.Date, EndDay.Date);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x => x.DataDay).ThenBy(x => x.DataHour).ThenBy(x => x.DataTime).ToList();
}
///
/// 通过 MonitorPointID 获取区间内的数据
///
public List GetByMonitorPointIDOfHourRange(long CorpID, long MonitorPointID, DateTime StartDay, int StartHour, DateTime EndDay, int EndHour)
{
if (EndDay.Date < StartDay.Date)
return default;
var dal = new DAL.MonitorHourRecord();
var entity_list = dal.GetByMonitorPointIDOfHourRange(CorpID, MonitorPointID, StartDay.Date, StartHour, EndDay.Date, EndHour);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x => x.DataDay).ThenBy(x => x.DataHour).ThenBy(x => x.DataTime).ToList();
}
///
/// 通过 SignalID 获取时间区间内的数据
///
public List GetBasicContentBySignalIDOfHourRange(long CorpID, long MonitorPointID,long SignalID, DateTime StartDay, int StartHour, DateTime EndDay, int EndHour)
{
if (EndDay.Date < StartDay.Date)
return default;
var dal = new DAL.MonitorHourRecord();
var entity_list = dal.GetBySignalIDOfHourRange(CorpID, MonitorPointID,SignalID, StartDay.Date, StartHour, EndDay.Date, EndHour);
var model_list = Entity2BasicContents(entity_list);
return model_list;
}
#endregion
#region 插入
///
/// 插入一条
///
public bool Insert(Model.MonitorHourRecordPure model)
{
if (model == null)
return default;
var dal = new DAL.MonitorHourRecord();
var entity = Model2Entity(new Model.MonitorHourRecord(model));
var id = dal.Insert(entity);
return id > 0;
}
///
/// 插入多条
///
public bool Inserts(List list)
{
if (list == null || list.Count() < 1)
return default;
var dal = new DAL.MonitorHourRecord();
var entity_list = Model2Entities(list.Select(x => new Model.MonitorHourRecord(x)).ToList());
var bol = dal.Inserts(entity_list);
return bol;
}
///
/// 插入最近一条记录
///
public bool InsertLastRecord(Model.MonitorHourRecordPure model)
{
if (model == null)
return default;
var dal = new DAL.MonitorHourRecord();
var entity = Model2Entity(new Model.MonitorHourRecord(model));
var bol = dal.Insert(entity) > 0;
if (bol)
{
var redisHelper = new MonitorRecordCacheHelper();
redisHelper.SetLastHourRecord(model);
}
return bol;
}
///
/// 插入最近多条记录
///
public bool InsertsLastRecord(List list)
{
if (list == null || list.Count() < 1)
return default;
var dal = new DAL.MonitorHourRecord();
var entity_list = Model2Entities(list.Select(x => new Model.MonitorHourRecord(x)).ToList());
var bol = dal.Inserts(entity_list);
if (bol)
{
var redisHelper = new MonitorRecordCacheHelper();
redisHelper.SetLastHourRecord(list);
}
return bol;
}
///
/// 补录一条
///
public bool InsertSupplement(Model.MonitorHourRecordPure model)
{
if (model == null)
return default;
var dal = new DAL.MonitorHourRecord();
var entity = Model2Entity(new Model.MonitorHourRecord(model));
var id = dal.Insert(entity);
return id>0;
}
///
/// 补录多条
///
public bool InsertsSupplement(List list)
{
if (list == null || list.Count() < 1)
return default;
var dal = new DAL.MonitorHourRecord();
var entity_list = Model2Entities(list.Select(x => new Model.MonitorHourRecord(x)).ToList());
var bol = dal.Inserts(entity_list);
return bol;
}
#endregion
}
}