using IStation.DAL;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
|
namespace Yw.DAL.SQLite
|
{
|
/// <summary>
|
/// 能效(多)实时记录
|
/// </summary>
|
public class EtaMultiRealRecord
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public ConnectionConfig ConnectionConfig
|
{
|
get { return null; }
|
}
|
|
|
|
/// <summary>
|
/// 通过 ObjectType 和 ObjectID 获取流量、扬程、日期区间内运行的汇总内容数据
|
/// </summary>
|
public List<Entity.EtaMultiRunSummaryContent> GetRunSummaryContentByObjectTypeAndObjectIDOfQHDayRange(string ObjectType, long ObjectID, 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.ObjectType, x.ObjectID, x.RunningCount, x.RunningFlag })
|
.Where(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.Date.AddDays(1))
|
.Where(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID)
|
.Where(x => x.RunningCount > 0)
|
.Where(x => x.AnalyStatus == 0)
|
.Where(x => SqlFunc.Between(x.Qa, Qmin, Qmax))
|
.Where(x => SqlFunc.Between(x.Ha, Hmin, Hmax))
|
.Select(x => new Entity.EtaMultiRunSummaryContent()
|
{
|
ObjectType = x.ObjectType,
|
ObjectID = x.ObjectID,
|
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> GetRunQHETByObjectTypeAndObjectIDOfDayRange(string ObjectType, long ObjectID, DateTime StartDay, DateTime EndDay)
|
{
|
//判断日期
|
if (StartDay.Date > EndDay.Date)
|
{
|
return default;
|
}
|
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.EtaMultiRealRecord>()
|
.Where(x => x.DataTime >= StartDay.Date && x.DataTime < EndDay.Date.AddDays(1))
|
.Where(x => x.ObjectType == ObjectType && x.ObjectID == ObjectID)
|
.Where(x => x.RunningCount > 0)
|
.Where(x => x.AnalyStatus == 0)
|
.Select(x => new Entity.EtaQHET() { Q = x.Qa.Value, H = x.Ha.Value, E = x.Ea.Value, T = x.Duration }).ToList();
|
}
|
}
|
|
|
}
|
}
|