using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation.Service
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public partial class PumpCurveExMapping
|
{
|
#region Query
|
|
/// <summary>
|
/// 通过 CorpID 获取
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetByCorpID(long CorpID)
|
{
|
var mapping_list = new PumpCurveMapping().GetByCorpID(CorpID);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID, mapping_list.Select(x => x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
return (from x in mapping_list join y in curve_list on x.CurveID equals y.ID select new Model.PumpCurveExMapping(y, x)).OrderBy(x => x.SortCode).ToList();
|
}
|
|
/// <summary>
|
/// 通过 MappingID 获取
|
/// </summary>
|
public Model.PumpCurveExMapping GetByMappingID(long CorpID, long MappingID)
|
{
|
var mapping = new PumpCurveMapping().GetByID(CorpID,MappingID);
|
if (mapping == null)
|
return default;
|
var curve = new PumpCurve().GetByID(CorpID,mapping.CurveID);
|
if (curve == null)
|
return default;
|
return new Model.PumpCurveExMapping(curve,mapping);
|
}
|
|
/// <summary>
|
/// 通过 MappingIds 获取
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetByMappingIds(long CorpID, List<long> MappingIds)
|
{
|
if (MappingIds == null || MappingIds.Count() < 1)
|
return default;
|
var mapping_list = new PumpCurveMapping().GetByIds(CorpID,MappingIds);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID, mapping_list.Select(x => x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
return (from x in mapping_list join y in curve_list on x.CurveID equals y.ID select new Model.PumpCurveExMapping(y, x)).OrderBy(x => x.SortCode).ToList();
|
}
|
|
/// <summary>
|
/// 通过 PumpID 获取
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetByPumpID(long CorpID, long PumpID)
|
{
|
var mapping_list = new PumpCurveMapping().GetByPumpID(CorpID,PumpID);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID,mapping_list.Select(x=>x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
return (from x in mapping_list join y in curve_list on x.CurveID equals y.ID select new Model.PumpCurveExMapping(y, x)).OrderBy(x => x.SortCode).ToList();
|
}
|
|
/// <summary>
|
/// 通过 PumpIds 获取
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetByPumpIds(long CorpID, List<long> PumpIds)
|
{
|
if (PumpIds == null || PumpIds.Count() < 1)
|
return default;
|
var mapping_list = new PumpCurveMapping().GetByPumpIds(CorpID, PumpIds);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID, mapping_list.Select(x => x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
return (from x in mapping_list join y in curve_list on x.CurveID equals y.ID select new Model.PumpCurveExMapping(y, x)).OrderBy(x => x.SortCode).ToList();
|
}
|
|
/// <summary>
|
/// 通过 CurveID 获取
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetByCurveID(long CorpID, long CurveID)
|
{
|
var mapping_list = new PumpCurveMapping().GetByCurveID(CorpID,CurveID);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID, mapping_list.Select(x => x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
return (from x in mapping_list join y in curve_list on x.CurveID equals y.ID select new Model.PumpCurveExMapping(y, x)).ToList();
|
}
|
|
/// <summary>
|
/// 通过 CurveIds 获取
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetByCurveIds(long CorpID, List<long> CurveIds)
|
{
|
if (CurveIds == null || CurveIds.Count() < 1)
|
return default;
|
var mapping_list = new PumpCurveMapping().GetByCurveIds(CorpID, CurveIds);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID, mapping_list.Select(x => x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
return (from x in mapping_list join y in curve_list on x.CurveID equals y.ID select new Model.PumpCurveExMapping(y, x)).OrderBy(x => x.SortCode).ToList();
|
}
|
|
/// <summary>
|
/// 通过 PumpID 获取工作曲线
|
/// </summary>
|
public Model.PumpCurveExMapping GetWorkingByPumpID(long CorpID, long PumpID)
|
{
|
var mapping_list = new PumpCurveMapping().GetByPumpID(CorpID,PumpID);
|
var mapping = mapping_list?.Find(x => x.IsWorking);
|
if (mapping == null)
|
return default;
|
var curve = new PumpCurve().GetByID(CorpID,mapping.CurveID);
|
if (curve == null)
|
return default;
|
return new Model.PumpCurveExMapping(curve,mapping);
|
}
|
|
/// <summary>
|
/// 通过 PumpID 获取默认工作曲线
|
/// </summary>
|
public Model.PumpCurveExMapping GetDefaultWorkingByPumpID(long CorpID, long PumpID)
|
{
|
var mapping_list = new PumpCurveMapping().GetByPumpID(CorpID, PumpID);
|
var mapping = mapping_list?.Find(x => x.IsWorking);
|
if (mapping == null)
|
{
|
mapping = mapping_list?.FirstOrDefault();
|
}
|
if (mapping == null)
|
return default;
|
var curve = new PumpCurve().GetByID(CorpID, mapping.CurveID);
|
if (curve == null)
|
return default;
|
return new Model.PumpCurveExMapping(curve, mapping);
|
}
|
|
/// <summary>
|
/// 通过 PumpIds 获取工作曲线
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetWorkingByPumpIds(long CorpID, List<long> PumpIds)
|
{
|
if (PumpIds == null || PumpIds.Count() < 1)
|
return default;
|
var mapping_list = new PumpCurveMapping().GetByPumpIds(CorpID,PumpIds);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID,mapping_list.Select(x=>x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
var vm_list = new List<Model.PumpCurveExMapping>();
|
foreach (var PumpID in PumpIds)
|
{
|
var mapping = mapping_list.Find(x => x.PumpID == PumpID && x.IsWorking);
|
if (mapping != null)
|
{
|
var curve = curve_list.Find(x=>x.ID==mapping.CurveID);
|
if (curve != null)
|
{
|
vm_list.Add(new Model.PumpCurveExMapping(curve,mapping));
|
}
|
}
|
}
|
return vm_list;
|
}
|
|
/// <summary>
|
/// 通过 PumpIds 获取默认工作曲线
|
/// </summary>
|
public List<Model.PumpCurveExMapping> GetDefaultWorkingByPumpIds(long CorpID, List<long> PumpIds)
|
{
|
if (PumpIds == null || PumpIds.Count() < 1)
|
return default;
|
var mapping_list = new PumpCurveMapping().GetByPumpIds(CorpID, PumpIds);
|
if (mapping_list == null || mapping_list.Count < 1)
|
return default;
|
var curve_list = new PumpCurve().GetByIds(CorpID, mapping_list.Select(x => x.CurveID).ToList());
|
if (curve_list == null || curve_list.Count < 1)
|
return default;
|
var vm_list = new List<Model.PumpCurveExMapping>();
|
foreach (var PumpID in PumpIds)
|
{
|
var mapping = mapping_list.Find(x => x.PumpID == PumpID && x.IsWorking);
|
if (mapping == null)
|
mapping = mapping_list.Find(x=>x.PumpID==PumpID);
|
if (mapping != null)
|
{
|
var curve = curve_list.Find(x => x.ID == mapping.CurveID);
|
if (curve != null)
|
{
|
vm_list.Add(new Model.PumpCurveExMapping(curve, mapping));
|
}
|
}
|
}
|
return vm_list;
|
}
|
|
|
#endregion
|
|
#region Insert
|
|
/// <summary>
|
/// 插入
|
/// </summary>
|
public long Insert(Model.PumpCurveExMapping model)
|
{
|
if (model == null)
|
return default;
|
if (model.CorpID < 1)
|
return default;
|
var entity_curve = Model2CurveEntity(model);
|
var entity_mapping = Model2MappingEntity(model);
|
var dal = new DAL.PumpCurveMapping();
|
var mappingId = dal.InsertEx(entity_curve,entity_mapping);
|
if (mappingId > 0)
|
{
|
var mapping = new PumpCurveMapping().UpdateCorpCacheR(model.CorpID, mappingId);
|
new PumpCurve().UpdateCorpCache(model.CorpID, mapping.CurveID);
|
}
|
return mappingId;
|
}
|
|
/// <summary>
|
/// 批量插入
|
/// </summary>
|
public bool Inserts(IEnumerable<Model.PumpCurveExMapping> list)
|
{
|
if (list == null || list.Count() < 1)
|
return default;
|
var corpIds = list.Select(x => x.CorpID).Distinct().ToList();
|
if (corpIds.Count != 1)
|
return default;
|
var dict = new Dictionary<Entity.PumpCurve, Entity.PumpCurveMapping>();
|
foreach (var model in list)
|
{
|
var entity_curve = Model2CurveEntity(model);
|
var entity_mapping = Model2MappingEntity(model);
|
dict.Add(entity_curve,entity_mapping);
|
}
|
var dal = new DAL.PumpCurveMapping();
|
var mappingIds = dal.InsertsREx(dict);
|
if (mappingIds != null && mappingIds.Count > 0)
|
{
|
var mapping_list= new PumpCurveMapping().UpdateCorpCacheR(corpIds[0], mappingIds);
|
new PumpCurve().UpdateCorpCache(corpIds[0], mapping_list.Select(x=>x.CurveID).Distinct().ToList());
|
return true;
|
}
|
return default;
|
|
}
|
|
#endregion
|
|
|
|
}
|
}
|