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