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
|
{
|
/// <summary>
|
/// MonitorRealRecord
|
/// </summary>
|
[Route("Run/MonitorRealRecord/Mobile")]
|
[ApiDescriptionSettings("Run", Name = "监测实时记录(手机)", Order = 989)]
|
public class MonitorRealRecord_MobileController : IDynamicApiController
|
{
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取最近一条数据(已进行单位转换,采用得是显示单位)
|
/// </summary>
|
[Route("GetLastRecordByMonitorPointID@V1.0")]
|
[HttpGet]
|
public List<MonitorRealRecordSignalContentMobileDto> 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;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointIds 获取最近一条数据(已进行单位转换,采用得是显示单位)
|
/// </summary>
|
[Route("GetLastRecordByMonitorPointIds@V1.0")]
|
[HttpGet]
|
public List<MonitorRealRecordMobileDto> 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;
|
}
|
|
/// <summary>
|
/// 通过 StationID 获取最近一条数据(已进行单位转换,采用得是显示单位)
|
/// </summary>
|
[Route("GetLastRecordByStationID@V1.0")]
|
[HttpGet]
|
public List<MonitorRealRecordMobileDto> 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;
|
}
|
|
/// <summary>
|
/// 通过 MonitorPointID 获取某天的全部数据 (已进行单位转换,采用得是显示单位)
|
/// </summary>
|
[Route("GetByMonitorPointIDOfDay@V1.0")]
|
[HttpGet]
|
public List<MonitorRealRecordSignalContentMobileDto> 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;
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
}
|