using Microsoft.AspNetCore.Mvc;
|
using System.Net;
|
using System.Net.Http.Headers;
|
using Microsoft.Extensions.Hosting.Internal;
|
using Microsoft.AspNetCore.Http.Extensions;
|
using IStation.Untity;
|
using Furion.DynamicApiController;
|
using System.ComponentModel.DataAnnotations;
|
using Mapster;
|
using Microsoft.AspNetCore.Http;
|
using Furion.DependencyInjection;
|
using Microsoft.AspNetCore.Authorization;
|
using Furion.DataEncryption;
|
using Furion.FriendlyException;
|
|
namespace IStation.Application
|
{
|
/// <summary>
|
/// PipeLine
|
/// </summary>
|
[AllowAnonymous]
|
[Route("LargeScreen/Demo/PipeLine")]
|
[ApiDescriptionSettings("LargeScreen", Name = "Demo(管路)", Order = 666)]
|
public class DemoPipeLine_Controller : IDynamicApiController, ITransient
|
{
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
/// <summary>
|
///
|
/// </summary>
|
public DemoPipeLine_Controller(IHttpContextAccessor httpContextAccessor)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
}
|
|
/// <summary>
|
/// 通过 BelongType 和 BelongID 获取拓展泵性能曲线列表
|
/// </summary>
|
[Route("GetExPumpFeatCurveListByBelongTypeAndBelongID")]
|
[HttpGet]
|
public List<DemoPipeLineExPumpFeatCurveDto> GetExPumpFeatCurveListByBelongTypeAndBelongID([FromQuery][Required] BelongUnderCorpInput input)
|
{
|
var corpId = input.CorpID;
|
var belongType = input.BelongType;
|
var belongId = input.BelongID;
|
|
var cacheKey = $"LargeScreen_Demo_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 == PipeLine.EnginePump).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<DemoPipeLineExPumpFeatCurveDto>();
|
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.BindingType == IStation.ObjectType.Product);
|
if (binding == null)
|
continue;
|
var pump = service_product.GetChildPumpByEnginePumpID(binding.CorpID, binding.BindingID);
|
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 DemoPipeLineExPumpFeatCurveDto(pipe_engine_pump, pump, property_list, curve);
|
vm_cache_list.Add(vm_cache);
|
}
|
return vm_cache_list;
|
}, CacheHelper.CacheLevel3);
|
|
return vm_list;
|
}
|
|
}
|
}
|