From 8a16116027464d17e800cd070d256aff59350b7d Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 16 Nov 2020 15:50:32 +0800
Subject: [PATCH] 更改监测因子趋势图M

---
 src/main/java/com/moral/controller/ScreenController.java           |   13 +++++++++++++
 src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java |   37 +++++++++++++++++++++++++++++++++----
 2 files changed, 46 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 3fde66f..416054a 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -701,6 +701,9 @@
         //������������������������������������������������
         ParameterUtils.getTimeType4Time(parameters);
         String time1 = (String) parameters.get("time");
+        time1 = time1.replaceAll(" ", "");
+        parameters.put("time",time1);
+
         String mac1 = (String) parameters.get("mac");
         List<Map<String, Object>> list = null;
         if (mac1 != null && mac1.equals("p5dnd7a0392018") && time1.substring(0, 4).equals("2019")) {
@@ -711,6 +714,12 @@
             parameters.put("sensors", Arrays.asList(sensorKey));
             // monitorPointService.isCompensateCalculation(parameters);
             list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
+
+
+            /* 0���������������������11������������0���������������������1-24������������������������0������������������������������������24������������
+                ������������������24���������������23-24���������24������������������������0���������������
+             */
+            /*������������start-------------------------------------------------------------------------*/
             list.remove(0);
             if (list.size() == 23) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -722,6 +731,7 @@
                 //������������������������
                 String time2 = sdf2.format(date);
                 parameters.put("time", time2);
+                /*���������������0������������������24���������������������������*/
                 List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
                 if(!ObjectUtils.isEmpty(nextDayList)){
                     time1=time1.replaceAll(" 00:00:00"," 24");
@@ -730,6 +740,9 @@
                     list.add(datas);
                 }
             }
+            /*������������end-------------------------------------------------------------------------*/
+
+
             for (Map<String, Object> map : list) {
                 String time = map.get("time").toString();
                 time = time.substring(time.length() - 2);
diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
index d6942ce..ffaffab 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("")){

--
Gitblit v1.8.0