lixiaojun
2024-09-09 c0f3c3f170846197d8d3f74ac123e0ac93a6dd67
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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;
 
        }
 
 
 
 
 
 
 
 
 
    }
}