using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.DAL
{
///
/// 能效依赖(多)日记录
///
public class EtaAccordMultiDayRecord : CorpDAL
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return ConfigHelper.RecordConnectionConfig; }
}
///
/// 通过对象获取
///
public List GetByObject(long CorpID, string ObjectType, long ObjectID)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.ObjectType == ObjectType && x.ObjectID == ObjectID)
.ToList();
}
}
///
/// 通过对象获取某日的数据
///
public List GetByObjectOfDay(long CorpID, string ObjectType, long ObjectID, DateTime Day)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.ObjectType == ObjectType && x.ObjectID == ObjectID)
.Where(x => x.DataDay == Day.Date)
.ToList();
}
}
///
/// 通过对象获取日期区间内的数据
///
public List GetByObjectOfDayRange(long CorpID, string ObjectType, long ObjectID, 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.ObjectType == ObjectType && x.ObjectID == ObjectID)
.Where(x => x.DataDay >= StartDay.Date && x.DataDay <= EndDay.Date)
.ToList();
}
}
///
/// 通过对象获取日期区间内的最大流量的记录数据
///
public Entity.EtaAccordMultiDayRecord GetMaxQtByObjectOfDayRange(long CorpID, string ObjectType, long ObjectID, 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.ObjectType == ObjectType && x.ObjectID == ObjectID)
.Where(x => x.DataDay >= StartDay.Date && x.DataDay <= EndDay.Date)
.OrderBy(x => x.Qt, OrderByType.Desc).First();
}
}
}
}