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;
|
|
namespace IStation.Application
|
{
|
/// <summary>
|
/// EtaAnalyRunStatus
|
/// </summary>
|
[Route("Eta/Analy/RunStatus")]
|
[ApiDescriptionSettings("Eta", Name = "能效运行状态分析", Order = 870)]
|
public class EtaAnalyRunStatus_Controller : IDynamicApiController
|
{
|
/// <summary>
|
/// 通过 PipeLineID 获取当前运行状态信息
|
/// </summary>
|
[Route("GetCurrentInfoByPipeLineID@V1.0")]
|
[HttpGet]
|
public EtaPipeLineRunCurrentInfo GetCurrentInfoByPipeLineID([FromQuery][Required] PipeLineIDUnderCorpInput input)
|
{
|
var pipeLine = new Service.PipeLine().GetByID(input.CorpID,input.PipeLineID);
|
if (pipeLine == null)
|
{
|
throw new Exception("未检索到管路信息");
|
}
|
var vm = new EtaPipeLineRunCurrentInfo();
|
vm.CorpID = pipeLine.CorpID;
|
vm.PipeLineID = pipeLine.ID;
|
vm.PipeLineName = pipeLine.Name;
|
vm.CurrentRunStatus = IStation.RunStatus.Shut;
|
|
var record = new Service.EtaSingleRealRecord().GetLastNormalRecord(input.CorpID, IStation.ObjectType.PipeLine, input.PipeLineID);
|
if (record != null)
|
{
|
vm.CurrentRunStatus = record.RSa;
|
vm.HZ = record.HZa;
|
}
|
|
return vm;
|
}
|
|
/// <summary>
|
/// 通过 PipeLineIds 获取当前运行状态信息
|
/// </summary>
|
[Route("GetCurrentInfoByPipeLineIds@V1.0")]
|
[HttpGet]
|
public List<EtaPipeLineRunCurrentInfo> GetCurrentInfoByPipeLineIds([FromQuery][Required] PipeLineIdsUnderCorpInput input)
|
{
|
var ids = LongListHelper.ToList(input.PipeLineIds);
|
|
var pipeLineList = new Service.PipeLine().GetByIds(input.CorpID, ids);
|
if (pipeLineList == null || pipeLineList.Count < 1)
|
{
|
throw new Exception("未检索到管路信息");
|
}
|
pipeLineList = pipeLineList.OrderBy(x => x.SerialNO).ToList();
|
|
var service_record = new Service.EtaSingleRealRecord();
|
var vm_list = new List<EtaPipeLineRunCurrentInfo>();
|
foreach (var pipeLine in pipeLineList)
|
{
|
var vm = new EtaPipeLineRunCurrentInfo();
|
vm.CorpID = pipeLine.CorpID;
|
vm.PipeLineID = pipeLine.ID;
|
vm.PipeLineName = pipeLine.Name;
|
vm.CurrentRunStatus = IStation.RunStatus.Shut;
|
// var record = service_record.GetLastNormalRecord(pipeLine.CorpID, IStation.ObjectType.PipeLine, pipeLine.ID);
|
var record = service_record.GetLastRecord(pipeLine.CorpID, IStation.ObjectType.PipeLine, pipeLine.ID);
|
if (record != null)
|
{
|
vm.CurrentRunStatus = record.RSa;
|
vm.HZ = record.HZa;
|
}
|
vm_list.Add(vm);
|
}
|
return vm_list;
|
}
|
|
/// <summary>
|
/// 通过 StationID 获取当前运行状态信息
|
/// </summary>
|
[Route("GetCurrentInfoByStationID@V1.0")]
|
[HttpGet]
|
public List<EtaPipeLineRunCurrentInfo> GetCurrentInfoByStationID([FromQuery][Required] StationIDUnderCorpInput input)
|
{
|
var pipeLineList = new Service.PipeLine().GetByBelongTypeAndBelongID(input.CorpID, IStation.ObjectType.Station, input.StationID);
|
if (pipeLineList == null || pipeLineList.Count < 1)
|
{
|
throw new Exception("未检索到管路信息");
|
}
|
pipeLineList = pipeLineList.Where(x => x.Catalog == IStation.PipeLine.EnginePump).OrderBy(x => x.SerialNO).ToList();
|
if(pipeLineList.Count<1)
|
{
|
throw new Exception("未检索到机泵管路信息");
|
}
|
|
var service_record = new Service.EtaSingleRealRecord();
|
var vm_list = new List<EtaPipeLineRunCurrentInfo>();
|
foreach (var pipeLine in pipeLineList)
|
{
|
var vm = new EtaPipeLineRunCurrentInfo();
|
vm.CorpID = pipeLine.CorpID;
|
vm.PipeLineID = pipeLine.ID;
|
vm.PipeLineName = pipeLine.Name;
|
vm.CurrentRunStatus = IStation.RunStatus.Shut;
|
var record = service_record.GetLastNormalRecord(pipeLine.CorpID, IStation.ObjectType.PipeLine, pipeLine.ID);
|
if (record != null)
|
{
|
vm.CurrentRunStatus = record.RSa;
|
vm.HZ = record.HZa;
|
}
|
vm_list.Add(vm);
|
}
|
return vm_list;
|
}
|
|
/// <summary>
|
/// 通过 PipeLineID 获取日运行状态信息
|
/// </summary>
|
[Route("GetDayInfoByPipeLineID@V1.0")]
|
[HttpGet]
|
public EtaPipeLineRunDayInfo GetDayInfoByPipeLineID([FromQuery][Required] PipeLineIDUnderCorpOfDayInput input)
|
{
|
var pipeLine = new Service.PipeLine().GetByID(input.CorpID, input.PipeLineID);
|
if (pipeLine == null)
|
{
|
throw new Exception("未监测到管路信息");
|
}
|
|
var vm = new EtaPipeLineRunDayInfo();
|
vm.CorpID = pipeLine.CorpID;
|
vm.PipeLineID = pipeLine.ID;
|
vm.PipeLineName = pipeLine.Name;
|
vm.LastRunStatus = IStation.RunStatus.Shut;
|
|
if (input.Day < DateTime.Today)
|
{
|
var summary = new Service.EtaSumSingleRecord().GetDayByObjectOfDay(input.CorpID, IStation.ObjectType.PipeLine, input.PipeLineID, input.Day);
|
if (summary != null)
|
{
|
vm.TotalRunTime = summary.RunTime;
|
};
|
}
|
else
|
{
|
var last_record = new Service.EtaSingleRealRecord().GetLastNormalRecord(input.CorpID, IStation.ObjectType.PipeLine, input.PipeLineID);
|
{
|
if (last_record != null)
|
{
|
vm.LastRunStatus = last_record.RSa;
|
}
|
}
|
}
|
|
return vm;
|
}
|
|
/// <summary>
|
/// 通过 PipeLineIds 获取日运行状态信息
|
/// </summary>
|
[Route("GetDayInfoByPipeLineIds@V1.0")]
|
[HttpGet]
|
public List<EtaPipeLineRunDayInfo> GetDayInfoByPipeLineIds([FromQuery][Required] PipeLineIdsUnderCorpOfDayInput input)
|
{
|
var pipeLineIds = LongListHelper.ToList(input.PipeLineIds);
|
var piepLineList = new Service.PipeLine().GetByIds(input.CorpID, pipeLineIds);
|
if (piepLineList == null || piepLineList.Count < 1)
|
{
|
throw new Exception("未检索到管路信息");
|
}
|
piepLineList = piepLineList.Where(x => x.Catalog == IStation.PipeLine.EnginePump).OrderBy(x => x.SerialNO == null ? 0 : x.SerialNO.Value).ToList();
|
if (piepLineList == null || piepLineList.Count < 1)
|
{
|
throw new Exception("未检索到机泵管路信息");
|
}
|
|
var vm_list = piepLineList.Select(x => new EtaPipeLineRunDayInfo()
|
{
|
CorpID = x.CorpID,
|
PipeLineID = x.ID,
|
PipeLineName = x.Name,
|
LastRunStatus = IStation.RunStatus.Shut
|
}).ToList();
|
if (input.Day < DateTime.Today)
|
{
|
vm_list.ForEach(x => {
|
var summary = new Service.EtaSumSingleRecord().GetDayByObjectOfDay(x.CorpID, IStation.ObjectType.PipeLine, x.PipeLineID, input.Day);
|
if (summary != null)
|
{
|
x.TotalRunTime = summary.RunTime;
|
}
|
});
|
}
|
else
|
{
|
vm_list.ForEach(x => {
|
var last_record = new Service.EtaSingleRealRecord().GetLastNormalRecord(x.CorpID, IStation.ObjectType.PipeLine, x.PipeLineID);
|
if (last_record != null)
|
{
|
x.LastRunStatus = last_record.RSa;
|
}
|
});
|
}
|
|
return vm_list;
|
}
|
|
/// <summary>
|
/// 通过 StationID 获取日运行状态信息
|
/// </summary>
|
[Route("GetDayInfoByStationID@V1.0")]
|
[HttpGet]
|
public List<EtaPipeLineRunDayInfo> GetDayInfoByStationID([FromQuery][Required] StationIDUnderCorpOfDayInput input)
|
{
|
var pipeLineList = new Service.PipeLine().GetByBelongTypeAndBelongID(input.CorpID, IStation.ObjectType.Station, input.StationID);
|
if (pipeLineList == null || pipeLineList.Count < 1)
|
{
|
throw new Exception("未检索到管路信息");
|
}
|
pipeLineList = pipeLineList.Where(x => x.Catalog == IStation.PipeLine.EnginePump).OrderBy(x => x.SerialNO).ToList();
|
if (pipeLineList.Count < 1)
|
{
|
throw new Exception("未检索到机泵管路信息");
|
}
|
|
var vm_list = pipeLineList.Select(x => new EtaPipeLineRunDayInfo()
|
{
|
CorpID = x.CorpID,
|
PipeLineID = x.ID,
|
PipeLineName = x.Name,
|
LastRunStatus = IStation.RunStatus.Shut
|
}).ToList();
|
if (input.Day < DateTime.Today)
|
{
|
vm_list.ForEach(x => {
|
var summary = new Service.EtaSumSingleRecord().GetDayByObjectOfDay(x.CorpID, IStation.ObjectType.PipeLine, x.PipeLineID, input.Day);
|
if (summary != null)
|
{
|
x.TotalRunTime = summary.RunTime;
|
}
|
});
|
}
|
else
|
{
|
vm_list.ForEach(x => {
|
var last_record = new Service.EtaSingleRealRecord().GetLastNormalRecord(x.CorpID, IStation.ObjectType.PipeLine, x.PipeLineID);
|
if (last_record != null)
|
{
|
x.LastRunStatus = last_record.RSa;
|
}
|
});
|
}
|
|
return vm_list;
|
|
}
|
|
|
|
|
|
|
}
|
}
|