From de0d596acbf52dac0bbad75de7a809ee55ccc3b3 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Wed, 18 Nov 2020 11:52:37 +0800
Subject: [PATCH] update风场
---
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java | 64 +++++++++++++++++++++++---------
1 files changed, 46 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
index d6942ce..4beb266 100644
--- a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -10,6 +10,7 @@
import com.moral.mapper.HistoryMapper;
import com.moral.util.AQICalculation;
import com.moral.util.AQICalculation2;
+import com.moral.util.DateUtil;
import io.swagger.models.auth.In;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
@@ -22,6 +23,7 @@
import com.moral.service.DeviceService;
import com.moral.service.HistoryHourlyService;
import com.moral.service.SensorService;
+import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
@@ -154,8 +156,35 @@
Date date1 = calendar.getTime();
String date2 = simpleDateFormat.format(date1);
List<Map> list = historyHourlyMapper.getDataByMacAndTime(mac, sensor, perTime, date2);
+ list.remove(0);
+
+ /*������1-2���������������������������������1���������������������������2���������������������1-24���
+ * ���24���������������������������������������������������������������*/
+ /*������������start----------------------------------------------------------------*/
+ if (list.size() == 23) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ //���������������������yyyy-MM-dd HH:mm:ss
+ perTime = perTime + " 00:00:00";
+ Date perTimeDate = sdf.parse(perTime);
+ perTimeDate = DateUtil.rollDay(perTimeDate, 1);
+ Date endTimeDate = DateUtil.rollDay(perTimeDate, 2);
+ //������������������������
+ String startTime = simpleDateFormat.format(perTimeDate);
+ String endTime = simpleDateFormat.format(endTimeDate);
+
+ //������������2020-11-16���������������������������17���0������������������������������������������2020-11-17---2020-11-18
+ List<Map> nextDayList = historyHourlyMapper.getDataByMacAndTime(mac, sensor, startTime, endTime);
+ if(!ObjectUtils.isEmpty(nextDayList)){
+ perTime=perTime.replaceAll(" 00:00:00"," 24");
+ Map<String, Object> datas = nextDayList.get(0);
+ datas.put("time",perTime);
+ list.add(datas);
+ }
+ }
+ /*������������end----------------------------------------------------------------*/
+
List<Map> newList = new ArrayList<Map>();
- for (int i = 0; i < 24; i++) {
+ for (int i = 0; i <= 24; i++) {
Map map=new HashMap();
if (i < 10) {
map.put("time","0"+i);
@@ -180,7 +209,7 @@
lists.add(newList);
}
- for (int i = 0; i < 24; i++) {
+ for (int i = 0; i <= 24; i++) {
Map<String, Object> map = new HashMap<>();
List iList = new ArrayList();
for (List<Map> list : lists) {
@@ -207,9 +236,9 @@
} catch (ParseException e) {
e.printStackTrace();
}
- for (int i = 0; i <perList.size() ; i++) {
+ /*for (int i = 0; i <perList.size() ; i++) {
perList.get(i).replace("time",perList.get(i).get("time"),(Integer) perList.get(i).get("time")+1);
- }
+ }*/
int j=0;
for (int i = 0; i <perList.size() ; i++) {
if (!((List)perList.get(i).get("values")).get(0).equals("")){
@@ -266,7 +295,7 @@
timeOfHour=timeOfHour+1;
}
O3_8.put("time", String.valueOf(timeOfHour));
- O3_8.put("O3-8h", String.valueOf(avg1));
+ O3_8.put("O3_8h", String.valueOf(avg1));
mapList1.add(O3_8);
}else {
continue;
@@ -281,25 +310,24 @@
List<Map<String, String>> mapList1 = listArrayList.get(0);
List<Double> O3List = new ArrayList();
for (Map<String, String> stringStringMap : mapList1) {
- O3List.add(Double.parseDouble(stringStringMap.get("O3-8h")));
+ O3List.add(Double.parseDouble(stringStringMap.get("O3_8h")));
}
-
maxO3 = Collections.max(O3List);
for (int i = 0; i <dataAvbByMIdAndTime.size() ; i++) {
- dataAvbByMIdAndTime.get(i).put("O3-8h",null);
+ dataAvbByMIdAndTime.get(i).put("O3_8h",null);
int time = Integer.parseInt(((Object)dataAvbByMIdAndTime.get(i).get("time")).toString().substring(11,13)) ;
for (int j = 0; j <mapList1.size() ; j++) {
int time1 = Integer.parseInt(mapList1.get(j).get("time").toString()) ;
if (time==time1){
- Double O3_8h = Double.parseDouble(mapList1.get(j).get("O3-8h").toString());
- dataAvbByMIdAndTime.get(i).put("O3-8h",new BigDecimal(O3_8h).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
+ Double O3_8h = Double.parseDouble(mapList1.get(j).get("O3_8h").toString());
+ dataAvbByMIdAndTime.get(i).put("O3_8h",new BigDecimal(O3_8h).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
}
}
}
}
Map<String, Object> dailyAvgData = historyMapper.getDailyAvgData(mId, startTime);
if (dailyAvgData!=null){
- dailyAvgData.put("maxO3-8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
+ dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue());
dailyAvgData.put("time",startTime);
}
if (dataAvbByMIdAndTime.size()>24){
@@ -309,9 +337,9 @@
dataAvbByMIdAndTime.get(i).put("AQI",Double.parseDouble(map1.get("AQI").toString()));
if (Double.parseDouble(map1.get("AQI").toString())>=50){
String name = map1.get("maxSensor").toString();
- dataAvbByMIdAndTime.get(i).put("���������������",name);
+ dataAvbByMIdAndTime.get(i).put("primary_pollutants",name);
}else {
- dataAvbByMIdAndTime.get(i).put("���������������","-");
+ dataAvbByMIdAndTime.get(i).put("primary_pollutants","-");
}
}
}else {
@@ -321,14 +349,14 @@
dataAvbByMIdAndTime.get(i).put("AQI",Double.parseDouble(map1.get("AQI").toString()));
if (Double.parseDouble(map1.get("AQI").toString())>=50){
String name = map1.get("maxSensor").toString();
- dataAvbByMIdAndTime.get(i).put("���������������",name);
+ dataAvbByMIdAndTime.get(i).put("primary_pollutants",name);
}else {
- dataAvbByMIdAndTime.get(i).put("���������������","-");
+ dataAvbByMIdAndTime.get(i).put("primary_pollutants","-");
}
}
}
Map<String, Object> dayAQI = AQICalculation2.dayAQI(dailyAvgData);
- dailyAvgData.put("���������������",dayAQI.get("maxSensor"));
+ dailyAvgData.put("primary_pollutants",dayAQI.get("maxSensor"));
dailyAvgData.put("AQI",dayAQI.get("AQI"));
dataAvbByMIdAndTime.add(dataAvbByMIdAndTime.size(),dailyAvgData);
@@ -338,13 +366,13 @@
if (i!=dataAvbByMIdAndTime.size()-1){
String time = dataAvbByMIdAndTime.get(i).get("time").toString().substring(11,13);
dataAvbByMIdAndTime.get(i).remove("time");
- timeAndDate.put("time",time);
+ timeAndDate.put("time",time+"H");
timeAndDate.put("data",dataAvbByMIdAndTime.get(i));
finalList.add(timeAndDate);
}else {
String time = dataAvbByMIdAndTime.get(i).get("time").toString().substring(0,11);
dataAvbByMIdAndTime.get(i).remove("time");
- timeAndDate.put("time",time);
+ timeAndDate.put("time",time+"H");
timeAndDate.put("data",dataAvbByMIdAndTime.get(i));
finalList.add(timeAndDate);
}
--
Gitblit v1.8.0