using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.DAL
{
///
/// 能效汇总(多)月记录
///
public class EtaSumMultiMonthRecord : CorpDAL
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return ConfigHelper.RecordConnectionConfig; }
}
///
///
///
///
///
public override bool Inserts(List list)
{
if (list == null || list.Count < 1)
return default;
var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
if (corpIds.Count() != 1 || corpIds[0] < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
foreach (var item in list)
{
var id = db.Insertable(item).ExecuteReturnSnowflakeId();
if (id < 1)
{
db.RollbackTran();
return false;
}
}
db.CommitTran();
return true;
}
catch
{
db.RollbackTran();
return false;
}
}
}
///
/// 通过对象获取
///
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();
}
}
///
/// 通过 CorpID 获取某年的数据数据
///
public List GetByCorpIDOfYear(long CorpID, int Year)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID)
.Where(x => x.DataYear == Year)
.ToList();
}
}
///
/// 通过对象获取某年的数据数据
///
public List GetByObjectOfYear(long CorpID, string ObjectType, long ObjectID, int Year)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.ObjectType == ObjectType && x.ObjectID == ObjectID)
.Where(x=>x.DataYear==Year)
.ToList();
}
}
///
/// 通过对象获取某月的数据数据
///
public List GetByObjectOfMonth(long CorpID, string ObjectType, long ObjectID, int Year, int Month)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.ObjectType == ObjectType && x.ObjectID == ObjectID)
.Where(x => x.DataYear == Year&&x.DataMonth==Month)
.ToList();
}
}
///
/// 通过对象获取年区间内的数据
///
public List GetByObjectOfYearRange(long CorpID, string ObjectType, long ObjectID, int StartYear, int EndYear)
{
if (StartYear > EndYear)
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.DataYear>=StartYear&&x.DataYear<=EndYear)
.ToList();
}
}
///
/// 通过对象获取月区间内的数据
///
public List GetByObjectOfMonthRange(long CorpID, string ObjectType, long ObjectID, int StartYear, int StartMonth, int EndYear, int EndMonth)
{
if (StartYear > EndYear)
return default;
if (StartYear == EndYear)
{
if (StartMonth > EndMonth)
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.DataYear > StartYear && x.DataYear < EndYear)
|| (x.DataYear == StartYear && x.DataYear < EndYear && x.DataMonth >= StartMonth)
|| (x.DataYear == EndYear && x.DataYear > StartYear && x.DataMonth <= EndMonth)
|| (x.DataYear == StartYear && x.DataYear == EndYear && x.DataMonth >= StartMonth && x.DataMonth <= EndMonth))
.ToList();
}
}
}
}