using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Service
{
///
///
///
public partial class PumpCurveExMapping
{
#region Query
///
/// 通过 CorpID 获取
///
public List 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();
}
///
/// 通过 MappingID 获取
///
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);
}
///
/// 通过 MappingIds 获取
///
public List GetByMappingIds(long CorpID, List 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();
}
///
/// 通过 PumpID 获取
///
public List 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();
}
///
/// 通过 PumpIds 获取
///
public List GetByPumpIds(long CorpID, List 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();
}
///
/// 通过 CurveID 获取
///
public List 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();
}
///
/// 通过 CurveIds 获取
///
public List GetByCurveIds(long CorpID, List 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();
}
///
/// 通过 PumpID 获取工作曲线
///
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);
}
///
/// 通过 PumpID 获取默认工作曲线
///
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);
}
///
/// 通过 PumpIds 获取工作曲线
///
public List GetWorkingByPumpIds(long CorpID, List 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();
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;
}
///
/// 通过 PumpIds 获取默认工作曲线
///
public List GetDefaultWorkingByPumpIds(long CorpID, List 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();
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
///
/// 插入
///
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;
}
///
/// 批量插入
///
public bool Inserts(IEnumerable 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();
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
}
}