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 } }