namespace IStation.Application
|
{
|
/// <summary>
|
/// StationMonitorList
|
/// </summary>
|
[Route("SZJT/Station/Monitor/List/Mobile")]
|
[ApiDescriptionSettings("SZJT", Name = "泵站监测列表(手机)", Order = 1800)]
|
public class StationMonitorList_MobileController : IDynamicApiController
|
{
|
|
/// <summary>
|
/// 通过 StationID 获取
|
/// </summary>
|
[Route("GetByStationID@V1.0")]
|
[HttpGet]
|
public List<StationMonitorListGroupMobileDto> GetByStationID([FromQuery][Required] StationIDInput input)
|
{
|
var allGroupList = new Yw.Service.MonitorPointGroup().GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID);
|
if (allGroupList == null || allGroupList.Count < 1)
|
{
|
return default;
|
}
|
var service_monitor = new Yw.Service.MonitorPoint();
|
var service_monitor_record = new Yw.Service.MonitorRealRecord();
|
var vmList = new List<StationMonitorListGroupMobileDto>();
|
foreach (var group in allGroupList)
|
{
|
var vm_group = new StationMonitorListGroupMobileDto(group);
|
vmList.Add(vm_group);
|
var allMonitorList = service_monitor.GetExSignalWithSignalTypeByGroupID(group.ID);
|
allMonitorList = allMonitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
|
allMonitorList = allMonitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList();
|
if (allMonitorList != null && allMonitorList.Count > 1)
|
{
|
foreach (var monitor in allMonitorList)
|
{
|
var signal = monitor.SignalList.First();
|
var record = service_monitor_record.GetLastRecord(signal.ID);
|
var vm_monitor = new StationMonitorListItemMobileDto(monitor, signal, record);
|
vm_group.MonitorList.Add(vm_monitor);
|
}
|
if (group.Flags.Contains(IStation.Flags.机组))
|
{
|
var monitor_run_list = allMonitorList.Where(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.运行状态)).ToList();
|
if (monitor_run_list != null && monitor_run_list.Count > 0)
|
{
|
var monitor_run = monitor_run_list.Find(x => x.Flags.Contains(IStation.Flags.默认));
|
if (monitor_run == null)
|
{
|
monitor_run = monitor_run_list.First();
|
}
|
vm_group.RunStatus = vm_group.MonitorList.Find(x => x.SignalID == monitor_run.SignalList.First().ID)?.DataValue;
|
}
|
}
|
}
|
}
|
return vmList;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
}
|