using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
namespace IStation.DAL
{
///
/// 时监测记录
///
public partial class MonitorHourRecord : CorpDAL
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return ConfigHelper.MonitorRecordConnectionConfig; }
}
#region 通过 MonitorPointID 获取
///
/// 通过 MonitorPointID 获取
///
public List GetByMonitorPointID(long CorpID, long MonitorPointID)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID)
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
///
/// 通过 MonitorPointID 获取某天的数据
///
public List GetByMonitorPointIDOfDay(long CorpID, long MonitorPointID, DateTime Day)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.DataDay == Day.Date)
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
///
/// 通过 MonitorPointID 获取日期区间的数据
///
public List GetByMonitorPointIDOfDayRange(long CorpID, long MonitorPointID, DateTime StartDay, DateTime EndDay)
{
if (StartDay.Date > EndDay.Date)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.DataDay >= StartDay.Date && x.DataDay <= EndDay.Date)
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
///
/// 通过 MonitorPointID 获取区间的数据
///
public List GetByMonitorPointIDOfHourRange(long CorpID, long MonitorPointID, DateTime StartDay, int StartHour, DateTime EndDay, int EndHour)
{
if (StartDay.Date > EndDay.Date)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID)
.Where(x => (x.DataDay > StartDay.Date && x.DataDay < EndDay.Date)
|| (x.DataDay == StartDay.Date && x.DataDay < EndDay.Date && x.DataHour >= StartHour)
|| (x.DataDay == EndDay.Date && x.DataDay > StartDay.Date && x.DataHour <= EndHour)
|| (x.DataDay == StartDay.Date && x.DataDay == EndDay.Date && x.DataHour >= StartHour && x.DataHour <= EndHour))
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
#endregion
#region 通过 SignalID 获取
///
/// 通过 SignalID 获取
///
public List GetBySignalID(long CorpID, long MonitorPointID, long SignalID)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID)
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
///
/// 通过 SignalID 获取某天的数据
///
public List GetBySignalIDOfDay(long CorpID, long MonitorPointID, long SignalID, DateTime Day)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID && x.DataDay == Day.Date)
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
///
/// 通过 SignalID 获取某时的数据
///
public Entity.MonitorHourRecord GetBySignalIDOfHour(long CorpID, long MonitorPointID, long SignalID, DateTime DataDay, int DataHour)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID)
.Where(x => x.DataDay == DataDay.Date && x.DataHour == DataHour)
.First();
}
}
///
/// 通过 SignalID 获取日期区间的数据
///
public List GetBySignalIDOfDayRange(long CorpID, long MonitorPointID, long SignalID, DateTime StartDay, DateTime EndDay)
{
if (StartDay.Date > EndDay.Date)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID && x.DataDay >= StartDay.Date && x.DataDay <= EndDay.Date)
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
///
/// 通过 SignalID 获取区间的数据
///
public List GetBySignalIDOfHourRange(long CorpID, long MonitorPointID, long SignalID, DateTime StartDay, int StartHour, DateTime EndDay, int EndHour)
{
if (StartDay.Date > EndDay.Date)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID)
.Where(x => (x.DataDay > StartDay.Date && x.DataDay < EndDay.Date)
|| (x.DataDay == StartDay.Date && x.DataDay < EndDay.Date && x.DataHour >= StartHour)
|| (x.DataDay == EndDay.Date && x.DataDay > StartDay.Date && x.DataHour <= EndHour)
|| (x.DataDay == StartDay.Date && x.DataDay == EndDay.Date && x.DataHour >= StartHour && x.DataHour <= EndHour))
.OrderBy(x => x.DataTime, OrderByType.Asc).ToList();
}
}
#endregion
#region Delete
///
/// 通过 SignalID 删除小时下的数据
///
public bool DeleteBySignalIDOfHour(long CorpID, long MonitorPointID, long SignalID, DateTime DataDay, int DataHour)
{
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Deleteable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID)
.Where(x => x.DataDay == DataDay.Date && x.DataHour == DataHour)
.ExecuteCommand() > 0;
}
}
///
/// 通过 SignalID 删除时区间的数据
///
public bool DeleteBySignalIDOfHourRange(long CorpID, long MonitorPointID, long SignalID, DateTime StartDay, int StartHour, DateTime EndDay, int EndHour)
{
if (StartDay.Date > EndDay.Date)
return false;
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Deleteable()
.Where(x => x.CorpID == CorpID && x.MonitorPointID == MonitorPointID && x.SignalID == SignalID)
.Where(x => (x.DataDay > StartDay.Date && x.DataDay < EndDay.Date)
|| (x.DataDay == StartDay.Date && x.DataDay < EndDay.Date && x.DataHour >= StartHour)
|| (x.DataDay == EndDay.Date && x.DataDay > StartDay.Date && x.DataHour <= EndHour)
|| (x.DataDay == StartDay.Date && x.DataDay == EndDay.Date && x.DataHour >= StartHour && x.DataHour <= EndHour))
.ExecuteCommand() > 0;
}
}
#endregion
}
}