using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.BLL { /// /// /// public partial class PumpCurveExMapping { #region Query /// /// 查询全部 /// public List QueryAll(long projectId) { var mapping_list = new PumpCurveMapping().QueryAll(projectId); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId, 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 QueryByMappingId(long projectId, long MappingId) { var mapping = new PumpCurveMapping().QueryById(projectId,MappingId); if (mapping == null) return default; var curve = new PumpCurve().QueryById(projectId,mapping.CurveId); if (curve == null) return default; return new Model.PumpCurveExMapping(curve,mapping); } /// /// 根据MappingIds查询 /// public List QueryByMappingIds(long projectId, List mappingIds) { if (mappingIds == null || mappingIds.Count() < 1) return default; var mapping_list = new PumpCurveMapping().QueryByIds(projectId,mappingIds); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId, 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 QueryByPumpId(long projectId, long pumpId) { var mapping_list = new PumpCurveMapping().QueryByPumpId(projectId,pumpId); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId,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 QueryByPumpIds(long projectId, List PumpIds) { if (PumpIds == null || PumpIds.Count() < 1) return default; var mapping_list = new PumpCurveMapping().QueryByPumpIds(projectId, PumpIds); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId, 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 QueryByCurveID(long projectId, long CurveID) { var mapping_list = new PumpCurveMapping().QueryByCurveID(projectId,CurveID); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId, 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 QueryByCurveIds(long projectId, List CurveIds) { if (CurveIds == null || CurveIds.Count() < 1) return default; var mapping_list = new PumpCurveMapping().QueryByCurveIds(projectId, CurveIds); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId, 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 QueryWorkingByPumpID(long projectId, long PumpID) { var mapping_list = new PumpCurveMapping().QueryByPumpID(projectId,PumpID); var mapping = mapping_list?.Find(x => x.IsWorking); if (mapping == null) return default; var curve = new PumpCurve().QueryByID(projectId,mapping.CurveID); if (curve == null) return default; return new Model.PumpCurveExMapping(curve,mapping); } /// /// 通过 PumpID 获取默认工作曲线 /// public Model.PumpCurveExMapping QueryDefaultWorkingByPumpID(long projectId, long PumpID) { var mapping_list = new PumpCurveMapping().QueryByPumpID(projectId, 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().QueryByID(projectId, mapping.CurveID); if (curve == null) return default; return new Model.PumpCurveExMapping(curve, mapping); } /// /// 通过 PumpIds 获取工作曲线 /// public List QueryWorkingByPumpIds(long projectId, List PumpIds) { if (PumpIds == null || PumpIds.Count() < 1) return default; var mapping_list = new PumpCurveMapping().QueryByPumpIds(projectId,PumpIds); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId,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 QueryDefaultWorkingByPumpIds(long projectId, List PumpIds) { if (PumpIds == null || PumpIds.Count() < 1) return default; var mapping_list = new PumpCurveMapping().QueryByPumpIds(projectId, PumpIds); if (mapping_list == null || mapping_list.Count < 1) return default; var curve_list = new PumpCurve().QueryByIds(projectId, 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.projectId < 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.projectId, mappingId); new PumpCurve().UpdateCorpCache(model.projectId, mapping.CurveID); } return mappingId; } /// /// 批量插入 /// public bool Inserts(IEnumerable list) { if (list == null || list.Count() < 1) return default; var corpIds = list.Select(x => x.projectId).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 } }