namespace Yw.DAL
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public partial class HealthMultiEvaluationRecord
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public ConnectionConfig ConnectionConfig
|
{
|
get { return ConfigHelper.RecordConnectionConfig; }
|
}
|
|
|
#region Query
|
|
#region 绑定
|
|
/// <summary>
|
/// 通过 BindingID 获取
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByBindingIDOfDay(long BindingID, DateTime Day)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime >= Day.Date && x.EvaluateTime < Day.Date.AddDays(1))
|
.Where(x => x.BindingID == BindingID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 BindingID 获取日期区间内全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByBindingIDOfDayRange(long BindingID, DateTime StartDay, DateTime EndDay)
|
{
|
if (StartDay.Date > EndDay.Date)
|
{
|
return default;
|
}
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime >= StartDay.Date && x.EvaluateTime < EndDay.Date.AddDays(1))
|
.Where(x => x.BindingID == BindingID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 BindingID 获取时间区间内全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByBindingIDOfTimeRange(long BindingID, DateTime StartTime, DateTime EndTime)
|
{
|
if (StartTime > EndTime)
|
{
|
return default;
|
}
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime > StartTime.AddSeconds(-1) && x.EvaluateTime < EndTime.AddSeconds(1))
|
.Where(x => x.BindingID == BindingID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 BindingID 获取某一时间的数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByBindingIDOfTime(long BindingID, DateTime Time)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime > Time.AddSeconds(-1) && x.EvaluateTime < Time.AddSeconds(1))
|
.Where(x => x.BindingID == BindingID)
|
.ToList();
|
}
|
}
|
|
#endregion
|
|
#region 日期
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取某天的全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByEvaluateEquipmentIDOfDay(long EvaluateEquipmentID, DateTime Day)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime >= Day.Date && x.EvaluateTime < Day.Date.AddDays(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取某天限制数量的全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetLimitByEvaluateEquipmentIDOfDay(long EvaluateEquipmentID, DateTime Day, int Limit)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
var list = db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime >= Day.Date && x.EvaluateTime < Day.Date.AddDays(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
return GetFixedList(list, Limit);
|
}
|
}
|
|
#endregion
|
|
#region 日期区间
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取日期区间内全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByEvaluateEquipmentIDOfDayRange(long EvaluateEquipmentID, DateTime StartDay, DateTime EndDay)
|
{
|
if (StartDay.Date > EndDay.Date)
|
{
|
return default;
|
}
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime >= StartDay.Date && x.EvaluateTime < EndDay.Date.AddDays(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取日期区间内限制数量的数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetLimitByEvaluateEquipmentIDOfDayRange(long EvaluateEquipmentID, DateTime StartDay, DateTime EndDay, int Limit)
|
{
|
if (StartDay.Date > EndDay.Date)
|
return default;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
var list = db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime >= StartDay.Date && x.EvaluateTime < EndDay.Date.AddDays(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
return GetFixedList(list, Limit);
|
}
|
}
|
|
#endregion
|
|
#region 时间区间
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取时间区间内全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByEvaluateEquipmentIDOfTimeRange(long EvaluateEquipmentID, DateTime StartTime, DateTime EndTime)
|
{
|
if (StartTime > EndTime)
|
{
|
return default;
|
}
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime > StartTime.AddSeconds(-1) && x.EvaluateTime < EndTime.AddSeconds(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
}
|
}
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取时间区间内限制数量的全部数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetLimitByEvaluateEquipmentIDOfTimeRange(long EvaluateEquipmentID, DateTime StartTime, DateTime EndTime, int Limit)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
var list = db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime > StartTime.AddSeconds(-1) && x.EvaluateTime < EndTime.AddSeconds(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.OrderBy(x => x.EvaluateTime).ToList();
|
return GetFixedList(list, Limit);
|
}
|
}
|
|
#endregion
|
|
#region 时间
|
|
/// <summary>
|
/// 通过 EvaluateEquipmentID 获取某一时间的数据
|
/// </summary>
|
public List<Entity.HealthMultiEvaluationRecord> GetByEvaluateEquipmentIDOfTime(long EvaluateEquipmentID, DateTime Time)
|
{
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
return db.Queryable<Entity.HealthMultiEvaluationRecord>()
|
.Where(x => x.EvaluateTime > Time.AddSeconds(-1) && x.EvaluateTime < Time.AddSeconds(1))
|
.Where(x => x.EvaluateEquipmentID == EvaluateEquipmentID)
|
.ToList();
|
}
|
}
|
|
#endregion
|
|
#region 限制方法
|
|
//返回固定数量的列表(包含首位和末位、均匀分布)
|
private static List<T> GetFixedList<T>(List<T> s, int n)
|
{
|
if (s == null || s.Count < 1)
|
return s;
|
if (n <= 0)
|
return null;
|
if (n == 1)
|
return new List<T>() { s.First() };
|
if (s.Count <= n)
|
return s;
|
var r = new List<T>();
|
float step = (s.Count - 1f) / (n - 1f);
|
for (int i = 0; i < n; i++)
|
{
|
r.Add(s[(int)Math.Round(step * i)]);
|
}
|
return r;
|
}
|
|
#endregion
|
|
#endregion
|
|
#region InsertOrUpdate
|
|
/// <summary>
|
/// 插入
|
/// </summary>
|
public bool InsertOrUpdate(Entity.HealthMultiEvaluationRecord entity)
|
{
|
if (entity == null)
|
return false;
|
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
var sql = CreateSql();
|
var paras = CreateParameters(entity);
|
return db.Ado.ExecuteCommand(sql, paras) > 0;
|
}
|
}
|
|
/// <summary>
|
/// 批量插入
|
/// </summary>
|
public bool InsertOrUpdate(List<Entity.HealthMultiEvaluationRecord> list)
|
{
|
if (list == null || list.Count < 1)
|
return false;
|
using (var db = new SqlSugarClient(ConnectionConfig))
|
{
|
try
|
{
|
db.Ado.BeginTran();
|
var sql = CreateSql();
|
foreach (var item in list)
|
{
|
var paras = CreateParameters(item);
|
var bol = db.Ado.ExecuteCommand(sql, paras) > 0;
|
if (!bol)
|
{
|
db.Ado.RollbackTran();
|
return false;
|
}
|
}
|
db.Ado.CommitTran();
|
return true;
|
}
|
catch
|
{
|
db.Ado.RollbackTran();
|
throw;
|
}
|
}
|
}
|
|
//创建sql
|
private string CreateSql()
|
{
|
var sb = new StringBuilder();
|
sb.AppendLine("INSERT INTO health_multi_evaluation_record");
|
sb.AppendLine($" VALUES(@bindingid,@modelid,@evaluateequipmentid,@evaluatemode,@evaluatetime,@evaluatevalue)");
|
sb.AppendLine("ON CONFLICT(bindingid,modelid,evaluatetime) DO UPDATE");
|
sb.AppendLine("SET evaluateequipmentid = excluded.evaluateequipmentid,evaluatemode = excluded.evaluatemode,evaluatevalue = excluded.evaluatevalue;");
|
return sb.ToString();
|
}
|
|
//创建参数
|
private List<SugarParameter> CreateParameters(Entity.HealthMultiEvaluationRecord entity)
|
{
|
var list = new List<SugarParameter>();
|
list.Add(new SugarParameter("@bindingid", entity.BindingID));
|
list.Add(new SugarParameter("@modelid", entity.ModelID));
|
list.Add(new SugarParameter("@evaluateequipmentid", entity.EvaluateEquipmentID));
|
list.Add(new SugarParameter("@evaluatemode", entity.EvaluateMode));
|
list.Add(new SugarParameter("@evaluatetime", entity.EvaluateTime));
|
list.Add(new SugarParameter("@evaluatevalue", entity.EvaluateValue));
|
return list;
|
}
|
|
#endregion
|
|
|
|
}
|
}
|