|
@@ -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
|
}
|