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; } } }