using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web.Http;
|
using IStation.Model.Api;
|
using AutoMapper;
|
using IStation.WebApi.Models;
|
using IStation.Untity;
|
using Microsoft.Web.Http;
|
|
namespace IStation.WebApi.Controllers
|
{
|
/// <summary>
|
/// 管路标准api
|
/// </summary>
|
[RoutePrefix("v1/Standard/PipeLine")]
|
[ApiVersion("v1")]
|
public class PipeLine_StandardController : ApiController
|
{
|
|
/// <summary>
|
/// 通过 BelongType 和 BelongID 获取管路信息
|
/// </summary>
|
[Route("GetByBelongTypeAndBelongID")]
|
[HttpGet]
|
public Result GetByBelongTypeAndBelongID(long CorpID, string BelongType, long BelongID)
|
{
|
if (CorpID < 1)
|
{
|
return new Result(Code.Alert, "CorpID 参数错误");
|
}
|
if (string.IsNullOrEmpty(BelongType))
|
{
|
return new Result(Code.Alert, "BelongType 参数错误");
|
}
|
if (BelongID < 1)
|
{
|
return new Result(Code.Alert, "BelongID 参数错误");
|
}
|
|
var cacheKey = $"Standard_PipeLine_GetByBelongTypeAndBelongID_{CorpID}_{BelongType}_{BelongID}";
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
var pipe_list = new Service.PipeLine().GetByBelongTypeAndBelongID(CorpID,BelongType,BelongID);
|
if (pipe_list == null || pipe_list.Count < 1)
|
return default;
|
var vm_cache_list = pipe_list.Select(x => new ViewModel.PipeLine(x)).ToList();
|
return vm_cache_list;
|
}, CacheHelper.CacheLevel4);
|
|
return new Result<List<ViewModel.PipeLine>>(vm_list);
|
}
|
|
/// <summary>
|
/// 通过 BelongType 和 BelongID 获取能效管路信息
|
/// </summary>
|
[Route("GetEtaByBelongTypeAndBelongID")]
|
[HttpGet]
|
public Result GetEtaByBelongTypeAndBelongID(long CorpID, string BelongType, long BelongID)
|
{
|
if (CorpID < 1)
|
{
|
return new Result(Code.Alert, "CorpID 参数错误");
|
}
|
if (string.IsNullOrEmpty(BelongType))
|
{
|
return new Result(Code.Alert, "BelongType 参数错误");
|
}
|
if (BelongID < 1)
|
{
|
return new Result(Code.Alert, "BelongID 参数错误");
|
}
|
|
var cacheKey = $"Standard_PipeLine_GetEtaByBelongTypeAndBelongID_{CorpID}_{BelongType}_{BelongID}";
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
var pipe_list = new Service.PipeLine().GetEtaByBelongTypeAndBelongID(CorpID, BelongType, BelongID);
|
if (pipe_list == null || pipe_list.Count < 1)
|
return default;
|
var vm_cache_list = pipe_list.Select(x => new ViewModel.PipeLine(x)).ToList();
|
return vm_cache_list;
|
}, CacheHelper.CacheLevel4);
|
|
return new Result<List<ViewModel.PipeLine>>(vm_list);
|
}
|
|
/// <summary>
|
/// 通过 BelongType 和 BelongID 获取拓展泵性能曲线列表
|
/// </summary>
|
[Route("GetExPumpFeatCurveListByBelongTypeAndBelongID")]
|
[HttpGet]
|
public Result GetExPumpFeatCurveListByBelongTypeAndBelongID(long CorpID, string BelongType, long BelongID)
|
{
|
if (CorpID < 1)
|
{
|
return new Result(Code.Alert, "CorpID 参数错误");
|
}
|
if (string.IsNullOrEmpty(BelongType))
|
{
|
return new Result(Code.Alert, "BelongType 参数错误");
|
}
|
if (BelongID < 1)
|
{
|
return new Result(Code.Alert, "BelongID 参数错误");
|
}
|
|
var cacheKey = $"Standard_PipeLine_GetExPumpFeatCurveListByBelongTypeAndBelongID_{CorpID}_{BelongType}_{BelongID}";
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
var pipe_list = new Service.PipeLine().GetByBelongTypeAndBelongID(CorpID, BelongType, BelongID);
|
if (pipe_list == null || pipe_list.Count < 1)
|
return default;
|
var pipe_engine_pump_list = pipe_list.Where(x => x.Catalog == IStation.PipeLine.机泵).OrderBy(x => x.SerialNO).ToList();
|
if (pipe_engine_pump_list.Count < 1)
|
return default;
|
var service_binding = new Service.PipeLineBinding();
|
var service_product = new Service.Product();
|
var service_property = new Service.ProductTypePropertyGroup();
|
var service_curve = new Service.PumpCurveExMapping();
|
var vm_cache_list = new List<ViewModel.PipeLineExPumpFeatCurve>();
|
foreach (var pipe_engine_pump in pipe_engine_pump_list)
|
{
|
var binding_list = service_binding.GetUseByPipeLineID(pipe_engine_pump.CorpID, pipe_engine_pump.ID);
|
if (binding_list == null || binding_list.Count < 1)
|
continue;
|
var binding = binding_list.Find(x => x.ObjectType == IStation.ObjectType.Product_设备);
|
if (binding == null)
|
continue;
|
var pump = service_product.GetChildPumpByEnginePumpID(binding.CorpID, binding.ObjectID);
|
if (pump == null)
|
continue;
|
var property_list = service_property.GetExItemsByProductTypeID(pump.CorpID, pump.ProductTypeID);
|
var curve = service_curve.GetDefaultWorkingByPumpID(pump.CorpID, pump.ID);
|
if (curve == null)
|
continue;
|
var vm_cache = new ViewModel.PipeLineExPumpFeatCurve(pipe_engine_pump, pump, property_list, curve);
|
vm_cache_list.Add(vm_cache);
|
}
|
return vm_cache_list;
|
}, CacheHelper.CacheLevel3);
|
|
return new Result<List<ViewModel.PipeLineExPumpFeatCurve>>(vm_list);
|
}
|
|
/// <summary>
|
/// 通过 CorpID 获取机泵业务树
|
/// </summary>
|
[Route("GetEnginePumpLogicTreeByCorpID")]
|
[HttpGet]
|
public Result GetEnginePumpLogicTreeByCorpID(long CorpID)
|
{
|
if (CorpID < 1)
|
{
|
return new Result(Code.Alert, "CorpID 参数错误");
|
}
|
var cacheKey = $"Standard_PipeLine_GetEnginePumpLogicTreeByCorpID_{CorpID}";
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
|
#region 获取业务类别列表
|
|
var service_logic_catalog = new Service.LogicCatalog();
|
var catalog_list = service_logic_catalog.GetByCorpID(CorpID);
|
if (catalog_list == null || catalog_list.Count < 1)
|
{
|
return default;
|
}
|
catalog_list = catalog_list.Where(x => x.UseStatus == Model.LogicCatalog.eUseStatus.Enable).ToList();
|
if (catalog_list.Count < 1)
|
{
|
return default;
|
}
|
|
#endregion
|
|
#region 获取业务清单列表
|
|
|
var vm_cache_list = new List<ViewModel.LogicCatalogExLogicalTreeItems>();
|
var service_logic_tree = new Service.LogicTree();
|
var service_pipe = new Service.PipeLine();
|
|
foreach (var catalog in catalog_list)
|
{
|
var logic_tree_list = service_logic_tree.GetExByCatalogID(CorpID, catalog.ID);
|
var vm_logic_tree_item_list = new List<ViewModel.LogicalTreeItem>();
|
if (logic_tree_list != null || logic_tree_list.Count > 0)
|
{
|
foreach (var logic_tree in logic_tree_list)
|
{
|
var vm_logic_tree = new ViewModel.LogicTree(logic_tree);
|
var vm_logic_tree_item = new ViewModel.LogicalTreeItem();
|
vm_logic_tree_item.ID = $"{IStation.ObjectType.Logic_业务清单}_{vm_logic_tree.ID}";
|
if (vm_logic_tree.ParentID < 1)
|
{
|
vm_logic_tree_item.ParentID = string.Empty;
|
}
|
else
|
{
|
vm_logic_tree_item.ParentID = $"{IStation.ObjectType.Logic_业务清单}_{vm_logic_tree.ParentID}";
|
}
|
|
vm_logic_tree_item.LogicalID = vm_logic_tree.ID;
|
vm_logic_tree_item.LogicalType = IStation.ObjectType.Logic_业务清单;
|
vm_logic_tree_item.LogicalName = vm_logic_tree.ObjectName;
|
vm_logic_tree_item.LogicalModel = vm_logic_tree;
|
vm_logic_tree_item.Children = new List<ViewModel.LogicalTreeItem>();
|
|
var vm_logic_tree_parent_item = vm_logic_tree_item_list.Find(t => t.ID == vm_logic_tree_item.ParentID);
|
if (vm_logic_tree_parent_item != null)
|
{
|
vm_logic_tree_parent_item.Children.Add(vm_logic_tree_item);
|
}
|
vm_logic_tree_item_list.Add(vm_logic_tree_item);
|
|
if (vm_logic_tree.ObjectType == IStation.ObjectType.Station_泵站)
|
{
|
var pipe_list = service_pipe.GetEnginePumpListByBelongTypeAndBelongID(vm_logic_tree.CorpID,vm_logic_tree.ObjectType,vm_logic_tree.ObjectID);
|
if (pipe_list != null && pipe_list.Count > 0)
|
{
|
foreach (var pipe in pipe_list)
|
{
|
var vm_pipe = new ViewModel.LogicalTreeItem();
|
vm_pipe.ID = $"{IStation.ObjectType.PipeLine_管路}_{pipe.ID}";
|
vm_pipe.ParentID = vm_logic_tree_item.ID;
|
vm_pipe.LogicalID = pipe.ID;
|
vm_pipe.LogicalType = IStation.ObjectType.PipeLine_管路;
|
vm_pipe.LogicalName = pipe.Name;
|
vm_pipe.LogicalModel = new ViewModel.PipeLine(pipe);
|
vm_pipe.Children = new List<ViewModel.LogicalTreeItem>();
|
vm_logic_tree_item.Children.Add(vm_pipe);
|
}
|
}
|
}
|
|
}
|
vm_logic_tree_item_list = vm_logic_tree_item_list.Where(t => string.IsNullOrEmpty(t.ParentID)).ToList();
|
}
|
vm_cache_list.Add(new ViewModel.LogicCatalogExLogicalTreeItems(catalog, vm_logic_tree_item_list));
|
}
|
|
#endregion
|
|
return vm_cache_list;
|
|
|
}, CacheHelper.CacheLevel3);
|
return new Result<List<ViewModel.LogicCatalogExLogicalTreeItems>>(vm_list);
|
}
|
|
/// <summary>
|
/// 通过 CorpID 获取机泵逻辑树
|
/// </summary>
|
[Route("GetEnginePumpLogicalTreeByCorpID")]
|
[HttpGet]
|
public Result GetEnginePumpLogicalTreeByCorpID(long CorpID)
|
{
|
if (CorpID < 1)
|
{
|
return new Result(Code.Alert, "CorpID 参数错误");
|
}
|
var cacheKey = $"Standard_PipeLine_GetEnginePumpLogicalTreeByCorpID_{CorpID}";
|
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
|
{
|
|
#region 获取业务类别列表
|
|
var service_logic_catalog = new Service.LogicCatalog();
|
var catalog_list = service_logic_catalog.GetByCorpID(CorpID);
|
if (catalog_list == null || catalog_list.Count < 1)
|
{
|
return default;
|
}
|
catalog_list = catalog_list.Where(x => x.UseStatus == Model.LogicCatalog.eUseStatus.Enable).ToList();
|
if (catalog_list.Count < 1)
|
{
|
return default;
|
}
|
|
#endregion
|
|
#region 获取业务清单列表
|
|
|
var vm_cache_list = new List<ViewModel.LogicCatalogExLogicalTreeItems>();
|
var service_logic_tree = new Service.LogicTree();
|
var service_logic_area = new Service.LogicArea();
|
var service_station = new Service.Station();
|
var service_pipe = new Service.PipeLine();
|
|
foreach (var catalog in catalog_list)
|
{
|
var logic_tree_list = service_logic_tree.GetExByCatalogID(CorpID, catalog.ID);
|
var vm_logic_tree_item_list = new List<ViewModel.LogicalTreeItem>();
|
if (logic_tree_list != null || logic_tree_list.Count > 0)
|
{
|
foreach (var logic_tree in logic_tree_list)
|
{
|
var vm_logic_tree_item = new ViewModel.LogicalTreeItem();
|
vm_logic_tree_item.ID = $"{IStation.ObjectType.Logic_业务清单}_{logic_tree.ID}";
|
var parentId = TreeParentIdsHelper.GetLastParentID(logic_tree.ParentIds);
|
if (parentId < 1)
|
{
|
vm_logic_tree_item.ParentID = string.Empty;
|
}
|
else
|
{
|
vm_logic_tree_item.ParentID = $"{IStation.ObjectType.Logic_业务清单}_{parentId}";
|
}
|
|
vm_logic_tree_item.LogicalID = logic_tree.ObjectID;
|
vm_logic_tree_item.LogicalType = logic_tree.ObjectType;
|
vm_logic_tree_item.LogicalName = logic_tree.ObjectName;
|
if (logic_tree.ObjectType == IStation.ObjectType.Logic_业务区域)
|
{
|
var logic_area = service_logic_area.GetByID(logic_tree.CorpID,logic_tree.ObjectID);
|
vm_logic_tree_item.LogicalModel = new ViewModel.LogicArea(logic_area);
|
}
|
else if (logic_tree.ObjectType == IStation.ObjectType.Station_泵站)
|
{
|
var station = service_station.GetByID(logic_tree.CorpID,logic_tree.ObjectID);
|
vm_logic_tree_item.LogicalModel = new ViewModel.Station(station);
|
}
|
vm_logic_tree_item.Children = new List<ViewModel.LogicalTreeItem>();
|
|
var vm_logic_tree_parent_item = vm_logic_tree_item_list.Find(t => t.ID == vm_logic_tree_item.ParentID);
|
if (vm_logic_tree_parent_item != null)
|
{
|
vm_logic_tree_parent_item.Children.Add(vm_logic_tree_item);
|
}
|
vm_logic_tree_item_list.Add(vm_logic_tree_item);
|
|
if (logic_tree.ObjectType == IStation.ObjectType.Station_泵站)
|
{
|
var pipe_list = service_pipe.GetEnginePumpListByBelongTypeAndBelongID(logic_tree.CorpID, logic_tree.ObjectType, logic_tree.ObjectID);
|
if (pipe_list != null && pipe_list.Count > 0)
|
{
|
foreach (var pipe in pipe_list)
|
{
|
var vm_pipe = new ViewModel.LogicalTreeItem();
|
vm_pipe.ID = $"{IStation.ObjectType.PipeLine_管路}_{pipe.ID}";
|
vm_pipe.ParentID = vm_logic_tree_item.ID;
|
vm_pipe.LogicalID = pipe.ID;
|
vm_pipe.LogicalType = IStation.ObjectType.PipeLine_管路;
|
vm_pipe.LogicalName = pipe.Name;
|
vm_pipe.LogicalModel = new ViewModel.PipeLine(pipe);
|
vm_pipe.Children = new List<ViewModel.LogicalTreeItem>();
|
vm_logic_tree_item.Children.Add(vm_pipe);
|
}
|
}
|
}
|
|
}
|
vm_logic_tree_item_list = vm_logic_tree_item_list.Where(t => string.IsNullOrEmpty(t.ParentID)).ToList();
|
}
|
vm_cache_list.Add(new ViewModel.LogicCatalogExLogicalTreeItems(catalog, vm_logic_tree_item_list));
|
}
|
|
#endregion
|
|
return vm_cache_list;
|
|
|
}, CacheHelper.CacheLevel3);
|
return new Result<List<ViewModel.LogicCatalogExLogicalTreeItems>>(vm_list);
|
}
|
|
}
|
}
|