namespace IStation.DAL.SQLite
|
{
|
/// <summary>
|
/// 能效(多)实时记录
|
/// </summary>
|
public class EtaMultiRealRecord : IEtaMultiRealRecord
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public ConnectionConfig ConnectionConfig
|
{
|
get
|
{
|
var dbName = "eta.db";
|
var filePath = $"{Settings.ParasHelper.LocalFile.DataFolderDirectory}\\{dbName}";
|
var config = new ConnectionConfig
|
{
|
DbType = SqlSugar.DbType.Sqlite,//数据库类型
|
ConnectionString = $"DataSource={filePath}",
|
IsAutoCloseConnection = true,//是否自动关闭
|
MoreSettings = new ConnMoreSettings()
|
{
|
//PgSqlIsAutoToLower = false //数据库存在大写字段的 ,需要把这个设为false ,并且实体和字段名称要一样
|
},
|
AopEvents = new AopEvents
|
{
|
OnLogExecuting = (sql, p) =>
|
{
|
var sqlString = UtilMethods.GetNativeSql(sql, p);
|
}
|
},
|
ConfigureExternalServices = new ConfigureExternalServices()
|
{
|
EntityService = (property, column) =>
|
{
|
//除主键外都可空
|
if (!column.IsPrimarykey)
|
{
|
column.IsNullable = true;
|
}
|
}
|
}
|
};
|
return config;
|
}
|
}
|
|
|
|
/// <summary>
|
/// 通过 ObjectType 和 ObjectID 获取流量、扬程、日期区间内运行的汇总内容数据
|
/// </summary>
|
public List<Entity.EtaMultiRunSummaryContent> GetRunSummaryContentByStationOfQHDayRange(int Station, double Qmin, double Qmax, double Hmin, double Hmax, DateTime StartDay, DateTime EndDay)
|
{
|
//判断流量
|
if (Qmin > Qmax)
|
{
|
return default;
|
}
|
//判断扬程
|
if (Hmin > Hmax)
|
{
|
return default;
|
}
|
//判断日期
|
if (StartDay.Date > EndDay.Date)
|
{
|
return default;
|
}
|
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.EtaMultiRealRecord>()
|
.GroupBy(x => new { x.Station, x.RunningCount, x.RunningFlag })
|
.Where(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.Date.AddDays(1))
|
.Where(x => x.Station == Station)
|
.Where(x => x.RunningCount > 0)
|
.Where(x => SqlFunc.Between(x.Qa, Qmin, Qmax))
|
.Where(x => SqlFunc.Between(x.Ha, Hmin, Hmax))
|
.Select(x => new Entity.EtaMultiRunSummaryContent()
|
{
|
Station = x.Station,
|
RunningCount = x.RunningCount,
|
RunningFlag = x.RunningFlag,
|
Qavg = SqlFunc.AggregateAvg(x.Qa.Value),
|
Havg = SqlFunc.AggregateAvg(x.Ha.Value),
|
Pavg = SqlFunc.AggregateAvg(x.Pa.Value),
|
Eavg = SqlFunc.AggregateAvg(x.Ea.Value),
|
Tsum = SqlFunc.AggregateSum(x.Duration)
|
}).ToList();
|
}
|
|
}
|
|
|
|
/// <summary>
|
/// 通过 ObjectType 和 ObjectID 获取时间区间内的运行QHET
|
/// </summary>
|
public List<Entity.EtaQHET> GetRunQHETByStationOfDayRange(int Station, DateTime StartDay, DateTime EndDay)
|
{
|
//判断日期
|
if (StartDay.Date > EndDay.Date)
|
{
|
return default;
|
}
|
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Model.EtaMultiRealRecord>()
|
.Where(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.Date.AddDays(1))
|
.Where(x => x.Station == Station)
|
.Where(x => x.RunningCount > 0)
|
.Select(x => new Entity.EtaQHET() { Q = x.Qa.Value, H = x.Ha.Value, E = x.Ea.Value, T = x.Duration }).ToList();
|
}
|
}
|
|
|
|
}
|
}
|