From c5c27e7fdbee0d23264558f6abba46f3bdbbe881 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 31 Jul 2023 15:47:16 +0800
Subject: [PATCH] chore:解决经纬度丢失问题

---
 screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 85c0244..0a57a88 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -62,6 +62,7 @@
         QueryWrapper<Device> wrapper = new QueryWrapper();
         wrapper.eq("monitor_point_id", monitorPointId);
         wrapper.eq("is_delete", Constants.NOT_DELETE);
+        wrapper.orderByAsc("dev_num");
         return deviceMapper.selectList(wrapper);
     }
 
@@ -219,7 +220,17 @@
                 wrapper.between("time", startDate, endDate);
                 List<HistoryHourly> historyHourlies = multiTableQuery(wrapper, tableNames);
                 historyHourlies = historyHourlies.stream().distinct().collect(Collectors.toList());
+                List<HistoryHourly> distinctHistoryHourlies = new ArrayList<>();
+                Map<String, Object> disMap = new HashMap<>();
                 for (HistoryHourly historyHourly:historyHourlies) {
+                    Date time = historyHourly.getTime();
+                    String timeStr = DateUtils.dateToDateString(time,DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
+                    if (!disMap.containsKey(timeStr)){
+                        distinctHistoryHourlies.add(historyHourly);
+                        disMap.put(timeStr,true);
+                    }
+                }
+                for (HistoryHourly historyHourly:distinctHistoryHourlies) {
                     Map<String,Object> historyHourlyMap = new HashMap<>();
                     historyHourlyMap.put("mac",mac);
                     JSONObject value = JSONObject.parseObject(historyHourly.getValue());
@@ -323,6 +334,11 @@
                         List<Map<String,Object>> deviceData = new ArrayList<>();
                         deviceData = (List<Map<String,Object>>)resultMap.get("deviceData");
                         deviceData.add(deviceMap);
+                        Collections.sort(deviceData, (map1,map2) -> {
+                            String name1 = map1.get("name").toString();//name1���������list������������������������
+                            String name2 = map2.get("name").toString(); //name1���������list���������������������������name
+                            return name1.compareTo(name2);
+                        });
                         resultMap.put("deviceData",deviceData);
                         //result.add(resultMap);
                         flag = false;
@@ -332,6 +348,11 @@
                 if (flag){
                     List<Map<String,Object>> deviceData = new ArrayList<>();
                     deviceData.add(deviceMap);
+                    Collections.sort(deviceData, (map1,map2) -> {
+                        String name1 = map1.get("name").toString();//name1���������list������������������������
+                        String name2 = map2.get("name").toString(); //name1���������list���������������������������name
+                        return name1.compareTo(name2);
+                    });
                     Map<String,Object> resultMap = new HashMap<>();
                     resultMap.put("deviceData",deviceData);
                     resultMap.put("time",time);
@@ -340,6 +361,11 @@
             }else {
                 List<Map<String,Object>> deviceData = new ArrayList<>();
                 deviceData.add(deviceMap);
+                Collections.sort(deviceData, (map1,map2) -> {
+                    String name1 = map1.get("name").toString();//name1���������list������������������������
+                    String name2 = map2.get("name").toString(); //name1���������list���������������������������name
+                    return name1.compareTo(name2);
+                });
                 Map<String,Object> resultMap = new HashMap<>();
                 resultMap.put("deviceData",deviceData);
                 resultMap.put("time",time);

--
Gitblit v1.8.0