lamphua 1 settimana fa
parent
commit
3417aef286

+ 60
- 5
cmc-temperature-back/cmc-monitoring/src/main/java/com/ruoyi/monitoring/controller/CmcTemperatureController.java Vedi File

@@ -86,15 +86,14 @@ public class CmcTemperatureController extends BaseController {
86 86
             QueryWrapper qw1 = getQW(temperature, Info);
87 87
             temperatureList = cmcTemperatureService.list(qw1);
88 88
             temperatureList.addAll(records);
89
-            if (channelSize > 30)
89
+            if (channelSize > 30) {
90 90
                 for (int i = 0; i < temperatureList.size() - channelSize + 1; i = i + channelSize) {
91 91
                     Date minTime = temperatureList.get(i).getDatetime();
92 92
                     if (temperatureList.get(i + 10).getDatetime().getTime() > minTime.getTime()) {
93
-                        for (int j = i + 10; j < i + channelSize; j ++) {
93
+                        for (int j = i + 10; j < i + channelSize; j++) {
94 94
                             temperatureList.get(j).setDatetime(minTime);
95 95
                         }
96
-                    }
97
-                    else {
96
+                    } else {
98 97
                         if (temperatureList.get(i + 30).getDatetime().getTime() > minTime.getTime()) {
99 98
                             for (int j = i + 30; j < i + channelSize; j++) {
100 99
                                 temperatureList.get(j).setDatetime(minTime);
@@ -102,10 +101,66 @@ public class CmcTemperatureController extends BaseController {
102 101
                         }
103 102
                     }
104 103
                 }
104
+            }
105
+            if (temperatureList.size() >= page.getPageSize()) {
105 106
                 if (page.getPageNumber() > 1)
106 107
                     temperatureList.subList(0, (int) (page.getPageSize() * (page.getPageNumber() - 1))).clear();
107 108
                 else
108
-                    temperatureList.subList((int) page.getPageSize() * 1, temperatureList.size()).clear();
109
+                    temperatureList.subList((int) page.getPageSize(), temperatureList.size()).clear();
110
+            }
111
+        }
112
+        return getPageData(temperatureList).total(temperatureList.size() / channelSize);
113
+    }
114
+
115
+    /**
116
+     * 根据点位查询水温监测列表(不分页)
117
+     */
118
+    @Get
119
+    @Mapping("listAllByInfo")
120
+    public PageData<CmcTemperature> listAllByInfo(CmcTemperature cmcTemperature, String Info) {
121
+        CmcChannel channel = new CmcChannel();
122
+        channel.setInfo(Info);
123
+        int channelSize = cmcChannelService.listChannel(channel).size();
124
+        QueryWrapper qw = getQW(cmcTemperature, Info);
125
+        List<CmcTemperature> records = cmcTemperatureService.list(qw);
126
+        List<CmcTemperature> temperatureList = new ArrayList<>();
127
+        if (records.size() > 2) {
128
+            long diffInMillis;
129
+            // 第30条与第31条数据时间差 毫秒
130
+            if (channelSize > 30) {
131
+                diffInMillis = records.get(30).getDatetime().getTime() - records.get(29).getDatetime().getTime();
132
+                // 时间差超过15分钟,删最后10条数据
133
+                if (diffInMillis / 1000 / 60 > 15)
134
+                    records.subList(records.size() - channelSize + 30, records.size()).clear();
135
+            }
136
+            // 第1条数据与0时时间差 毫秒
137
+            diffInMillis = records.get(0).getDatetime().getTime() - cmcTemperature.getStartTime().getTime();
138
+            if (diffInMillis / 1000 / 60 > 15)
139
+                records.subList(records.size() - channelSize, records.size()).clear();
140
+            CmcTemperature temperature = new CmcTemperature();
141
+            long fifteenMinutesAgoMillis = cmcTemperature.getStartTime().getTime() - (15 * 60 * 1000);
142
+            Date fifteenMinutesAgo = new Date(fifteenMinutesAgoMillis);
143
+            temperature.setStartTime(fifteenMinutesAgo);
144
+            temperature.setEndTime(cmcTemperature.getStartTime());
145
+            QueryWrapper qw1 = getQW(temperature, Info);
146
+            temperatureList = cmcTemperatureService.list(qw1);
147
+            temperatureList.addAll(records);
148
+            if (channelSize > 30) {
149
+                for (int i = 0; i < temperatureList.size() - channelSize + 1; i = i + channelSize) {
150
+                    Date minTime = temperatureList.get(i).getDatetime();
151
+                    if (temperatureList.get(i + 10).getDatetime().getTime() > minTime.getTime()) {
152
+                        for (int j = i + 10; j < i + channelSize; j++) {
153
+                            temperatureList.get(j).setDatetime(minTime);
154
+                        }
155
+                    } else {
156
+                        if (temperatureList.get(i + 30).getDatetime().getTime() > minTime.getTime()) {
157
+                            for (int j = i + 30; j < i + channelSize; j++) {
158
+                                temperatureList.get(j).setDatetime(minTime);
159
+                            }
160
+                        }
161
+                    }
162
+                }
163
+            }
109 164
         }
110 165
         return getPageData(temperatureList).total(temperatureList.size() / channelSize);
111 166
     }

+ 7
- 0
cmc-temperature-ui/src/api/monitoring/temperature.js Vedi File

@@ -20,4 +20,11 @@ export function listByInfo(query) {
20 20
     method: 'get',
21 21
     params: query
22 22
   })
23
+}
24
+export function listAllByInfo(query) {
25
+  return request({
26
+    url: '/monitoring/temperature/listAllByInfo',
27
+    method: 'get',
28
+    params: query
29
+  })
23 30
 }

Loading…
Annulla
Salva