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 IStation.Calculation; using IStation.Model; using Microsoft.AspNetCore.Authorization; namespace IStation.Application { /// /// MonitorRealRecord /// [Route("Run/MonitorRealRecord/Mobile")] [ApiDescriptionSettings("Run", Name = "监测实时记录(手机)", Order = 989)] public class MonitorRealRecord_MobileController : IDynamicApiController { /// /// 通过 MonitorPointID 获取最近一条数据(已进行单位转换,采用得是显示单位) /// [Route("GetLastRecordByMonitorPointID@V1.0")] [HttpGet] public List GetLastRecordByMonitorPointID([FromQuery][Required] MonitorPointIDUnderCorpInput input) { var corpId = input.CorpID; var monitorPointId = input.MonitorPointID; var list = new Service.MonitorRealRecord().GetLastRecord(corpId, monitorPointId); if (list == null || list.Count < 1) return default; var monitor = new Service.MonitorPoint().GetExSignalWithSignalTypeByID(corpId, monitorPointId); var vmList = list.Select(x => { var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorRealRecordSignalContentMobileDto(x, signal); return vm; }).ToList(); return vmList; } /// /// 通过 MonitorPointIds 获取最近一条数据(已进行单位转换,采用得是显示单位) /// [Route("GetLastRecordByMonitorPointIds@V1.0")] [HttpGet] public List GetLastRecordByMonitorPointIds([FromQuery][Required] MonitorPointIdsUnderCorpInput input) { var corpId = input.CorpID; var monitorPointIds = LongListHelper.ToList(input.MonitorPointIds); var list = new Service.MonitorRealRecord().GetLastRecord(corpId, monitorPointIds); if (list == null || list.Count < 1) return default; var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByIds(corpId, monitorPointIds); var vmList = list.Select(x => { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorRealRecordMobileDto(x, signal); return vm; }).ToList(); return vmList; } /// /// 通过 StationID 获取最近一条数据(已进行单位转换,采用得是显示单位) /// [Route("GetLastRecordByStationID@V1.0")] [HttpGet] public List GetLastRecordByStationID([FromQuery][Required] StationIDUnderCorpInput input) { var corpId = input.CorpID; var stationId = input.StationID; var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId); if (monitorList == null || monitorList.Count < 1) return default; var monitorPointIds = monitorList.Select(x => x.ID).Distinct().ToList(); var list = new Service.MonitorRealRecord().GetLastRecord(corpId, monitorPointIds); if (list == null || list.Count < 1) return default; var vmList = list.Select(x => { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorRealRecordMobileDto(x, signal); return vm; }).ToList(); return vmList; } /// /// 通过 MonitorPointID 获取某天的全部数据 (已进行单位转换,采用得是显示单位) /// [Route("GetByMonitorPointIDOfDay@V1.0")] [HttpGet] public List GetByMonitorPointIDOfDay ( [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().GetContentByMonitorPointIDOfDay(CorpID, MonitorPointID, Day); if (list == null || list.Count < 1) return default; var monitor = new Service.MonitorPoint().GetExSignalWithSignalTypeByID(CorpID, MonitorPointID); var vmList = list.Select(x => { var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorRealRecordSignalContentMobileDto(x, signal); return vm; }).ToList(); return vmList; } } }