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