ningshuxia
2022-10-31 0171d347fec140d31db39ab5d76d51eebac472c2
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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;
        }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    }
}