namespace IStation.Application { /// /// StationMonitorList /// [Route("SZJT/Station/Monitor/List/Mobile")] [ApiDescriptionSettings("SZJT", Name = "泵站监测列表(手机)", Order = 1800)] public class StationMonitorList_MobileController : IDynamicApiController { /// /// 通过 StationID 获取 /// [Route("GetByStationID@V1.0")] [HttpGet] public List 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(); 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; } } }