using IStation.Utils;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation.Service
|
{
|
public static class ProductBaseExtensions
|
{
|
/// <summary>
|
/// 获取所有的机泵列表
|
/// </summary>
|
public static List<Model.Product> GetEnginePumpProductList(this IEnumerable<Model.Product> allProducts)
|
{
|
if (allProducts == null || allProducts.Count() < 1)
|
return default;
|
return allProducts.Where(x => x.Catalog == Model.ProductCatalog.机泵).OrderBy(x => x.ID).ToList();
|
}
|
|
/// <summary>
|
/// 获取单泵
|
/// </summary>
|
public static Model.Product GetSinglePumpProduct(this IEnumerable<Model.Product> allProducts)
|
{
|
if (allProducts == null || allProducts.Count() < 1)
|
return default;
|
var pump = allProducts.ToList().Find(x => x.Catalog == Model.ProductCatalog.泵);
|
return pump;
|
}
|
|
/// <summary>
|
/// 获取后代
|
/// </summary>
|
public static List<Model.Product> GetChildrenProduct(this Model.Product product, IEnumerable<Model.Product> allProducts)
|
{
|
if (product == null)
|
return default;
|
if (allProducts == null || allProducts.Count() < 1)
|
return default;
|
var spids = TreeParentIdsHelper.GetChildParentIds(product.ID, product.ParentIds);
|
var product_list = allProducts.Where(t => !string.IsNullOrEmpty(t.ParentIds) && t.ParentIds.StartsWith(spids)).ToList();
|
return product_list;
|
}
|
|
/// <summary>
|
/// 获取所有后代及自身
|
/// </summary>
|
public static List<Model.Product> GetChildsAndSelfProduct(this Model.Product product, IEnumerable<Model.Product> allProducts)
|
{
|
if (product == null)
|
return default;
|
if (allProducts == null || allProducts.Count() < 1)
|
return default;
|
var spids = TreeParentIdsHelper.GetChildParentIds(product.ID, product.ParentIds);
|
var allProducts_Product = allProducts.Where(t => (t.ID == product.ID)
|
|| (!string.IsNullOrEmpty(t.ParentIds) && t.ParentIds.StartsWith(spids))).ToList();
|
return allProducts_Product;
|
}
|
|
/// <summary>
|
/// 获取后代单泵
|
/// </summary>
|
public static Model.Product GetChildSinglePumpProduct(this Model.Product product, IEnumerable<Model.Product> allProducts)
|
{
|
if (product == null)
|
return default;
|
if (allProducts == null || allProducts.Count() < 1)
|
return default;
|
var spids = TreeParentIdsHelper.GetChildParentIds(product.ID, product.ParentIds);
|
var product_list = allProducts.Where(t => !string.IsNullOrEmpty(t.ParentIds) && t.ParentIds.StartsWith(spids)).ToList();
|
if (product_list == null || product_list.Count < 1)
|
return default;
|
var pump = product_list.Find(x => x.Catalog == Model.ProductCatalog.泵);
|
return pump;
|
}
|
|
|
/// <summary>
|
/// 设备及以下的所有常规测点
|
/// </summary>
|
public static List<Model.GeneralMonitorPoint> GetGeneralMonitorPointContainsChildren
|
(
|
this Model.Product product,
|
List<Model.Product> allProducts,
|
List<Model.GeneralMonitorPoint> allGenerals
|
)
|
{
|
if (product == null)
|
return default;
|
if (allProducts == null || allProducts.Count < 1)
|
return default;
|
var allProducts_product = product.GetChildsAndSelfProduct(allProducts);
|
if (allProducts_product == null || allProducts_product.Count < 1)
|
return default;
|
var allSignal_Product = (from x in allProducts_product
|
join y in allGenerals on x.ID equals y.BelongID
|
where y.BelongType == ObjectType.Product_设备
|
select y).ToList();
|
return allSignal_Product;
|
}
|
|
/// <summary>
|
/// 产品的所有测点
|
/// </summary>
|
public static List<Model.GeneralMonitorPoint> GetGeneralViewList
|
(
|
this List<Model.Product> allProducts,
|
List<Model.GeneralMonitorPoint> allViews
|
)
|
{
|
if (allProducts == null || allProducts.Count < 1)
|
return default;
|
var allSignal_Product = (from x in allProducts
|
join y in allViews on x.ID equals y.BelongID
|
where y.BelongType == ObjectType.Product_设备
|
select y).ToList();
|
return allSignal_Product;
|
}
|
|
|
}
|
}
|