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 { /// /// 运行 /// [AllowAnonymous] [Route("LargeScreen/Demo/Run")] [ApiDescriptionSettings("LargeScreen", Name = "Demo(运行)", Order = 666)] public class DemoRun_Controller : IDynamicApiController, ITransient { private readonly IHttpContextAccessor _httpContextAccessor; /// /// /// public DemoRun_Controller(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } private const long _corpId = 3; /// /// 通过 MonitorPointID 获取最近一条实时数据 /// [Route("GetLastRealRecordByMonitorPointID")] [HttpGet] public List GetLastRealRecordByMonitorPointID([FromQuery][Required] MonitorPointIDUnderCorpInput input) { var list = new Service.MonitorRealRecord().GetLastRecord(input.CorpID, input.MonitorPointID); var vm_list = list?.Select(x => x.Adapt()).ToList(); return vm_list; } /// /// 通过 MonitorPointIds 获取最近一条数据 /// [Route("GetLastRecordByMonitorPointIds")] [HttpGet] public List GetLastRecordByMonitorPointIds([FromQuery][Required] MonitorPointIdsUnderCorpInput input) { var corpId = input.CorpID; var ids = LongListHelper.ToList(input.MonitorPointIds); var list = new Service.MonitorRecord().GetLastRecord(corpId, ids); return list?.Select(x => new DemoMonitorRecordDto(x)).ToList(); } /// /// 通过 MonitorPointID 获取某天的实时数据 /// [Route("GetRealRecordListByMonitorPointIDOfDay")] [HttpGet] public List GetRealRecordListByMonitorPointIDOfDay ( [Required, Range(1, long.MaxValue, ErrorMessage = "CorpID 必须大于0")] long CorpID, [Required, Range(1, long.MaxValue, ErrorMessage = "MonitorPointID 必须大于0")] long MonitorPointID, [Required] DateTime Day ) { var list = new Service.MonitorRealRecord().GetByMonitorPointIDOfDay(CorpID, MonitorPointID, Day); return list?.Select(x => new DemoMonitorRealRecordDto(x)).ToList(); } /// /// 获取监测报警记录模糊分页列表 /// [Route("GetMonitorAlarmRecordFluzzyPageList")] [HttpGet] public PageListOutput GetMonitorAlarmRecordFluzzyPageList([FromQuery][Required] DemoGetMonitorAlarmRecordFluzzyPageListInput input) { int total = 0; var list = new Service.MonitorAlarmRecord().GetFluzzyPageList (input.CorpID, LongListHelper.ToList(input.MonitorPointIds), input.AlarmType, input.AlarmLevel, input.HandleStatus, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total); var vm_list = list?.Select(x => x.Adapt()).ToList(); return new PageListOutput() { Total = total, List = vm_list }; } } }