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 { /// /// MonitorAlarmRecord /// [Route("Run/MonitorAlarmRecord/Mobile")] [ApiDescriptionSettings("Run", Name = "监测报警记录(手机)", Order = 499)] public class MonitorAlarmRecord_MobileController : IDynamicApiController { #region 1.0 /// /// 通过 MonitorPointID 获取分页列表(手机) /// [Route("GetPageListByMonitorPointID@V1.0")] [HttpGet] public PageListOutput GetPageListByMonitorPointID ([FromQuery][Required] GetMonitorAlarmRecordPageListByMonitorPointIDMobileInput input) { int total = 0; var list = new Service.MonitorAlarmRecord() .GetPageListByMonitorPointID(input.CorpID, input.MonitorPointID, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total); if (list == null || list.Count < 1) { return new PageListOutput() { Total = total, List = new List() }; } var monitor = new Service.MonitorPoint().GetExSignalWithSignalTypeByID(input.CorpID, input.MonitorPointID); var vmList = list.Select(x => { Model.Signal_SignalType signal = null; if (x.SignalID.HasValue) { signal = monitor.SignalList.Find(t => t.ID == x.SignalID.Value); } var vm = new MonitorAlarmPageRecordMobileDto(monitor, signal, x); return vm; }).ToList(); return new PageListOutput() { Total = total, List = vmList }; } /// /// 通过 StationID 获取分页列表(手机) /// [Route("GetPageListByStationID@V1.0")] [HttpGet] public PageListOutput GetPageListByStationID ([FromQuery][Required] GetMonitorAlarmRecordPageListByStationIDMobileInput input) { int total = 0; var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(input.CorpID, ObjectType.Station, input.StationID); if (monitorList == null || monitorList.Count < 1) { return new PageListOutput() { Total = total, List = new List() }; } var monitorPointIds = monitorList.Select(x => x.ID).Distinct().ToList(); var list = new Service.MonitorAlarmRecord() .GetPageListByMonitorPointIds(input.CorpID, monitorPointIds, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total); if (list == null || list.Count < 1) { return new PageListOutput() { Total = total, List = new List() }; } var vmList = list.Select(x => { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); Model.Signal_SignalType signal = null; if (x.SignalID.HasValue) { signal = monitor.SignalList.Find(t => t.ID == x.SignalID.Value); } var vm = new MonitorAlarmPageRecordMobileDto(monitor, signal, x); return vm; }).ToList(); return new PageListOutput() { Total = total, List = 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.MonitorAlarmRecord().GetByMonitorPointIDOfDay(CorpID, MonitorPointID, Day); var vm_list = list?.Select(x => new MonitorAlarmRecordMobileDto(x)).ToList(); return vm_list; } /// /// 通过 MonitorPointID 获取最近一条记录列表(手机) /// [Route("GetLastRecordListByMonitorPointID@V1.0")] [HttpGet] public List GetLastRecordListByMonitorPointID([FromQuery][Required] MonitorPointIDUnderCorpInput input) { var list = new Service.MonitorAlarmRecord().GetLastRecordListByMonitorPointID(input.CorpID, input.MonitorPointID); var vm_list = list?.Select(x => new MonitorAlarmLastRecordMobileDto(x)).ToList(); return vm_list; } /// /// 通过 MonitorPointID 获取最近一条记录(手机) /// [Route("GetLastRecordByMonitorPointID@V1.0")] [HttpGet] public MonitorAlarmLastRecordMobileDto GetLastRecordByMonitorPointID([FromQuery][Required] MonitorPointIDUnderCorpInput input) { var model = new Service.MonitorAlarmRecord().GetLastRecordByMonitorPointID(input.CorpID, input.MonitorPointID); return model == null ? null : new MonitorAlarmLastRecordMobileDto(model); } /// /// 通过 SignalID 获取最近一条记录列表(手机) /// [Route("GetLastRecordListBySignalID@V1.0")] [HttpGet] public List GetLastRecordListBySignalID([FromQuery][Required] SignalIDUnderCorpInput input) { var list = new Service.MonitorAlarmRecord().GetLastRecordListBySignalID(input.CorpID, input.MonitorPointID, input.SignalID); var vm_list = list?.Select(x => new MonitorAlarmLastRecordMobileDto(x)).ToList(); return vm_list; } /// /// 通过 SignalID 获取最近一条记录(手机) /// [Route("GetLastRecordBySignalID@V1.0")] [HttpGet] public MonitorAlarmLastRecordMobileDto GetLastRecordBySignalID([FromQuery][Required] SignalIDUnderCorpInput input) { var model = new Service.MonitorAlarmRecord().GetLastRecordBySignalID(input.CorpID, input.MonitorPointID, input.SignalID); return model == null ? null : new MonitorAlarmLastRecordMobileDto(model); } #endregion #region 1.1 /// /// 通过 MonitorPointID 获取分页列表(手机) /// [Route("GetPageListByMonitorPointID@V1.1")] [HttpGet] public PageListOutput GetPageListByMonitorPointID1_1 ([FromQuery][Required] GetMonitorAlarmRecordPageListByMonitorPointIDMobileInput input) { int total = 0; var list = new Service.MonitorAlarmRecord() .GetPageListByMonitorPointID(input.CorpID, input.MonitorPointID, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total); if (list == null || list.Count < 1) { return new PageListOutput() { Total = total, List = new List() }; } var monitor = new Service.MonitorPoint().GetExSignalWithSignalTypeByID(input.CorpID, input.MonitorPointID); var alarmLevelList = new Service.AlarmLevel().GetByCorpID(input.CorpID); var vmList = list.Select(x => { Model.Signal_SignalType signal = null; if (x.SignalID.HasValue) { signal = monitor.SignalList.Find(t => t.ID == x.SignalID.Value); } var vm = new MonitorAlarmPageRecordMobileDto1_1(monitor, signal, alarmLevelList, x); return vm; }).ToList(); return new PageListOutput() { Total = total, List = vmList }; } /// /// 通过 StationID 获取分页列表(手机) /// [Route("GetPageListByStationID@V1.1")] [HttpGet] public PageListOutput GetPageListByStationID1_1 ([FromQuery][Required] GetMonitorAlarmRecordPageListByStationIDMobileInput input) { int total = 0; var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(input.CorpID, ObjectType.Station, input.StationID); if (monitorList == null || monitorList.Count < 1) { return new PageListOutput() { Total = total, List = new List() }; } var monitorPointIds = monitorList.Select(x => x.ID).Distinct().ToList(); var list = new Service.MonitorAlarmRecord() .GetPageListByMonitorPointIds(input.CorpID, monitorPointIds, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total); if (list == null || list.Count < 1) { return new PageListOutput() { Total = total, List = new List() }; } var alarmLevelList = new Service.AlarmLevel().GetByCorpID(input.CorpID); var vmList = list.Select(x => { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); Model.Signal_SignalType signal = null; if (x.SignalID.HasValue) { signal = monitor.SignalList.Find(t => t.ID == x.SignalID.Value); } var vm = new MonitorAlarmPageRecordMobileDto1_1(monitor, signal, alarmLevelList, x); return vm; }).ToList(); return new PageListOutput() { Total = total, List = vmList }; } #endregion } }