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
{
///
/// EtaAnalyRunStatus
///
[Route("Eta/Analy/RunStatus")]
[ApiDescriptionSettings("Eta", Name = "能效运行状态分析", Order = 870)]
public class EtaAnalyRunStatus_Controller : IDynamicApiController
{
///
/// 通过 PipeLineID 获取当前运行状态信息
///
[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;
}
///
/// 通过 PipeLineIds 获取当前运行状态信息
///
[Route("GetCurrentInfoByPipeLineIds@V1.0")]
[HttpGet]
public List 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();
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;
}
///
/// 通过 StationID 获取当前运行状态信息
///
[Route("GetCurrentInfoByStationID@V1.0")]
[HttpGet]
public List 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();
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;
}
///
/// 通过 PipeLineID 获取日运行状态信息
///
[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;
}
///
/// 通过 PipeLineIds 获取日运行状态信息
///
[Route("GetDayInfoByPipeLineIds@V1.0")]
[HttpGet]
public List 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;
}
///
/// 通过 StationID 获取日运行状态信息
///
[Route("GetDayInfoByStationID@V1.0")]
[HttpGet]
public List 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;
}
}
}