From 66309ec82964316c3ae032fdcf2742d59179922c Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 05 Jan 2023 14:55:05 +0800
Subject: [PATCH] 列表数据导出

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

diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
index 261ee12..57fff86 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/MonitorPointServiceImpl.java
@@ -161,6 +161,68 @@
         return resultList;
     }
 
+    /**
+     * ������������������������
+     *
+     * @param params
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getHourlyDataDataV3(Map<String, Object> params) {
+        List<String> macs = (List<String>) params.remove("macs");
+//        String[] macs = params.remove("macs").toString().split(",");
+//        List<String> macsList = Arrays.asList(macs);
+        QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        queryWrapper.in("mac", macs);
+        List<Device> devices = deviceMapper.selectList(queryWrapper);
+        if (devices.size()<=0){
+            return null;
+        }
+        String[] sensors = params.remove("sensors").toString().split(",");
+        List<String> sensorsList = Arrays.asList(sensors);
+//        List<String> sensorsList = (List<String>) params.remove("sensors");
+        String startTime = params.get("startTime").toString();
+        String endTime = params.get("endTime").toString();
+        Date startDate = DateUtils.getDate(startTime,DateUtils.yyyy_MM_dd_HH_EN);
+        Date endDate = DateUtils.getDate(endTime,DateUtils.yyyy_MM_dd_HH_EN);
+        List<Map<String,Object>> resultList = new ArrayList<>();
+        for (Device device:devices) {
+            List<HistoryHourly> hourlies = historyHourlyService.getValueByMacAndTime(device.getMac(), DateUtils.getDate(params.get("startTime").toString(), DateUtils.yyyy_MM_dd_HH_EN), DateUtils.getDate(params.get("endTime").toString(), DateUtils.yyyy_MM_dd_HH_EN));
+            for (String sensor:sensorsList) {
+                Map<String, Object> timeValueMap = new LinkedHashMap<>();//key���time���value������������json
+                QueryWrapper<MonitorPoint> monitorPointQueryWrapper = new QueryWrapper<>();
+                monitorPointQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+                monitorPointQueryWrapper.eq("id",device.getMonitorPointId());
+                MonitorPoint monitorPoint = monitorPointMapper.selectOne(monitorPointQueryWrapper);
+                timeValueMap.put("������������",monitorPoint.getName());
+                timeValueMap.put("name",device.getName());
+                QueryWrapper<Sensor> sensorQueryWrapper = new QueryWrapper<>();
+                sensorQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
+                sensorQueryWrapper.eq("code",sensor);
+                Sensor sensorEntity = sensorMapper.selectOne(sensorQueryWrapper);
+                timeValueMap.put("sensor",sensorEntity.getName());
+                for (HistoryHourly historyHourly : hourlies) {
+                    Date time = historyHourly.getTime();
+                    String dateStr = DateUtils.dateToDateString(time, "yyyy-MM-dd HH");
+                    String value = historyHourly.getValue();
+                    JSONObject jsonObject = JSONObject.parseObject(value);
+                    if (jsonObject.containsKey(sensor)){
+                        timeValueMap.put(dateStr, jsonObject.get(sensor).toString());
+                    }
+                }
+                //���������������������
+                Date middleDate = startDate;
+                while (DateUtils.compareDateStr(DateUtils.dateToDateString(endDate,DateUtils.yyyy_MM_dd_HH_EN),DateUtils.dateToDateString(middleDate,DateUtils.yyyy_MM_dd_HH_EN),DateUtils.yyyy_MM_dd_HH_EN)<=0){
+                    if (timeValueMap.get(DateUtils.dateToDateString(middleDate,DateUtils.yyyy_MM_dd_HH_EN)) == null)
+                        timeValueMap.put(DateUtils.dateToDateString(middleDate,DateUtils.yyyy_MM_dd_HH_EN), null);
+                    middleDate = DateUtils.addHours(middleDate,1);
+                }
+                resultList.add(timeValueMap);
+            }
+        }
+        return resultList;
+    }
 
 }
 

--
Gitblit v1.8.0