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 MonitorYearRecord
{
#region 最近一条记录
///
/// 获取最近一条记录
///
public Model.MonitorYearRecordPure GetLastRecord(long CorpID, long MonitorPointID, long SignalID)
{
var redisHelper = new MonitorRecordCacheHelper();
var record = redisHelper.GetLastYearRecord(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.GetLastYearRecord(CorpID, MonitorPointID, SignalIds);
return records;
}
///
/// 获取最近一条记录
///
public List GetLastRecord(long CorpID, Dictionary dict)
{
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastYearRecord(CorpID, dict);
return records;
}
///
/// 获取最近一条记录
///
public List GetLastRecord(long CorpID, long MonitorPointID)
{
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastYearRecord(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.GetLastYearRecord(CorpID, MonitorPointIds);
return records;
}
///
/// 获取最近一条正常记录
///
public Model.MonitorYearRecordPure GetLastNormalRecord(long CorpID, long MonitorPointID, long SignalID)
{
var redisHelper = new MonitorRecordCacheHelper();
var record = redisHelper.GetLastNormalYearRecord(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.GetLastNormalYearRecord(CorpID, dict);
return records;
}
///
/// 获取最近一条正常记录
///
public List GetLastNormalRecord(long CorpID, long MonitorPointID)
{
var redisHelper = new MonitorRecordCacheHelper();
var records = redisHelper.GetLastNormalYearRecord(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.GetLastNormalYearRecord(CorpID, MonitorPointIds);
return records;
}
#endregion
#region 历史记录
///
/// 通过 MonitorPointID 获取
///
public List GetByMonitorPointID(long CorpID, long MonitorPointID)
{
var dal = new DAL.MonitorYearRecord();
var entity_list = dal.GetByMonitorPointID(CorpID, MonitorPointID);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x=>x.DataYear).ThenBy(x=>x.DataTime).ToList();
}
///
/// 通过 MonitorPointID 获取某年的数据
///
public List GetByMonitorPointIDOfYear(long CorpID, long MonitorPointID, int Year)
{
var dal = new DAL.MonitorYearRecord();
var entity_list = dal.GetByMonitorPointIDOfYear(CorpID, MonitorPointID, Year);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x => x.DataYear).ThenBy(x => x.DataTime).ToList();
}
///
/// 通过 MonitorPointID 获取年区间内的数据
///
public List GetByMonitorPointIDOfYearRange(long CorpID, long MonitorPointID, int StartYear, int EndYear)
{
var dal = new DAL.MonitorYearRecord();
var entity_list = dal.GetByMonitorPointIDOfYearRange(CorpID, MonitorPointID, StartYear, EndYear);
var model_list = Entity2Models(entity_list);
return model_list?.OrderBy(x => x.DataYear).ThenBy(x => x.DataTime).ToList();
}
///
/// 通过 SignalID 获取某年的数据
///
public Model.MonitorYearRecord GetBySignalIDOfYear(long CorpID, long MonitorPointID, long SignalID, int Year)
{
var dal = new DAL.MonitorYearRecord();
var entity = dal.GetBySignalIDOfYear(CorpID, MonitorPointID,SignalID, Year);
var model = Entity2Model(entity);
return model;
}
#endregion
#region Insert
///
/// 插入一条
///
public bool Insert(Model.MonitorYearRecordPure model)
{
if (model == null)
return default;
var dal = new DAL.MonitorYearRecord();
var entity = Model2Entity(new Model.MonitorYearRecord(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.MonitorYearRecord();
var entity_list = Model2Entities(list.Select(x => new Model.MonitorYearRecord(x)).ToList()).ToList();
var bol = dal.Inserts(entity_list);
return bol;
}
///
/// 插入最近一条记录
///
public bool InsertLastRecord(Model.MonitorYearRecordPure model)
{
if (model == null)
return default;
var dal = new DAL.MonitorYearRecord();
var entity = Model2Entity(new Model.MonitorYearRecord(model));
var bol = dal.Insert(entity)>0;
if (bol)
{
var redisHelper = new MonitorRecordCacheHelper();
redisHelper.SetLastYearRecord(model);
}
return bol;
}
///
/// 插入最近多条记录
///
public bool InsertsLastRecord(List list)
{
if (list == null || list.Count() < 1)
return default;
var dal = new DAL.MonitorYearRecord();
var entity_list = Model2Entities(list.Select(x => new Model.MonitorYearRecord(x)).ToList());
var bol = dal.Inserts(entity_list);
if (bol)
{
var redisHelper = new MonitorRecordCacheHelper();
redisHelper.SetLastYearRecord(list);
}
return bol;
}
///
/// 补录一条
///
public bool InsertSupplement(Model.MonitorYearRecordPure model)
{
if (model == null)
return default;
var dal = new DAL.MonitorYearRecord();
var entity = Model2Entity(new Model.MonitorYearRecord(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.MonitorYearRecord();
var entity_list = Model2Entities(list.Select(x=>new Model.MonitorYearRecord(x)).ToList()).ToList();
var bol = dal.Inserts(entity_list);
return bol;
}
///
/// 重录一条
///
public bool InsertAgain(Model.MonitorYearRecordPure model)
{
if (model == null)
return false;
var dal = new DAL.MonitorYearRecord();
var result = dal.DeleteBySignalIDOfYear(model.CorpID, model.MonitorPointID, model.SignalID, model.DataYear);
if (!result)
{
LogHelper.Info($"重录一条监测年记录中,CorpID:{model.CorpID},MonitorPointID:{model.MonitorPointID},SignalID:{model.SignalID},DataYear:{model.DataYear},未检索到已存在记录!");
}
var entity = Model2Entity(new Model.MonitorYearRecord(model));
var id = dal.Insert(entity);
return id > 0;
}
///
/// 重录多条
///
public bool InsertsAgain(List list)
{
if (list == null || list.Count < 1)
return false;
var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
if (corpIds.Count > 1)
{
return default;
}
var groupList = list.GroupBy(x => new { x.CorpID, x.MonitorPointID, x.SignalID }).ToList();
var dal = new DAL.MonitorYearRecord();
foreach (var group in groupList)
{
var startYear = group.Min(x => x.DataYear);
var endYear = group.Max(x => x.DataYear);
var result = dal.DeleteBySignalIDOfYearRange(group.Key.CorpID, group.Key.MonitorPointID, group.Key.SignalID, startYear, endYear);
if (!result)
{
LogHelper.Info($"重录多条监测年记录中,CorpID:{group.Key.CorpID},MonitorPointID:{group.Key.MonitorPointID},SignalID:{group.Key.SignalID},StartYear:{startYear}, EndYear:{endYear},未检索到已存在记录!");
}
}
var entityList = Model2Entities(list.Select(x => new Model.MonitorYearRecord(x)).ToList());
var bol = dal.Inserts(entityList);
return bol;
}
#endregion
#region Update
///
/// 更新一条
///
public bool Update(Model.MonitorYearRecord model)
{
if (model == null)
return default;
var dal = new DAL.MonitorYearRecord();
var entity = Model2Entity(model);
var bol = dal.Update(entity);
return bol;
}
///
/// 批量更新
///
public bool Updates(List list)
{
if (list == null || list.Count < 1)
return default;
var dal = new DAL.MonitorYearRecord();
var entityList = Model2Entities(list);
var bol = dal.Updates(entityList);
return bol;
}
#endregion
}
}