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 } }