From f718fb9c06fa75b65870a3f5ef2fea10054009aa Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Wed, 12 Aug 2020 09:31:26 +0800 Subject: [PATCH] 风场图 --- src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java | 73 +++++++++++++++++++++++++++++++++++- 1 files changed, 71 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java index 2fabdce..710920a 100644 --- a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java @@ -16,6 +16,7 @@ import com.moral.service.DeviceService; import com.moral.service.HistoryHourlyService; import com.moral.service.SensorService; + import javax.annotation.Resource; @Service @@ -55,13 +56,81 @@ } @Override + public Map<String, Object> getPollutionSourceDataByHour(Map<String, Object> parameters) throws Exception { + List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters); + List<String> sensorKeys = new ArrayList<>(); + for (Sensor sensor : sensors) { + sensorKeys.add(sensor.getSensorKey()); + } + parameters.put("sensorKeys", sensorKeys); + Map<String, Object> pollutionSourceData = historyHourlyMapper.getPollutionSourceDataByHour(parameters); + if (MapUtils.isNotEmpty(pollutionSourceData)) { + Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters); + String selectSensorKey = parameters.get("sensorKey").toString(); + for (Map.Entry<String, String> s : sensorsMap.entrySet()) { + if (selectSensorKey.equals(s.getKey())) { + selectSensorKey = s.getValue(); + } + } + pollutionSourceData.put("selectSensorKey", selectSensorKey); + } + return pollutionSourceData; + } + + @Override + public Map<String, Object> getPollutionSourceDataAll(Map<String, Object> parameters) throws Exception { + List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters); + List<String> sensorKeys = new ArrayList<>(); + for (Sensor sensor : sensors) { + sensorKeys.add(sensor.getSensorKey()); + } + parameters.put("sensorKeys", sensorKeys); + Map<String, Object> pollutionSourceData = historyHourlyMapper.getPollutionSourceDataAll(parameters); + if (MapUtils.isNotEmpty(pollutionSourceData)) { + Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters); + String selectSensorKey = parameters.get("sensorKey").toString(); + for (Map.Entry<String, String> s : sensorsMap.entrySet()) { + if (selectSensorKey.equals(s.getKey())) { + selectSensorKey = s.getValue(); + } + } + pollutionSourceData.put("selectSensorKey", selectSensorKey); + } + return pollutionSourceData; + } + + @Override + public String getTVOCByMac(String mac,String time,String sensor) { + return historyHourlyMapper.getTVOCByMac(mac,time,sensor); + } + + @Override + public String getPressureByMac(String mac, String time) { + return historyHourlyMapper.getPressureByMac(mac,time); + } + + @Override + public Map<String,Object> getDataByMac(String mac, String time) { + return historyHourlyMapper.getDataByMac(mac,time); + } + + @Override + public List<Map<String, Object>> getDataByTimeSlot(String mac, String startTime, String endTime) throws Exception { + List<Map<String, Object>> resultMap = historyHourlyMapper.getDataByTimeSlot(mac,startTime,endTime); + return resultMap; + } + + @Override public Point getDirPoint(Map<String, Object> parameters) throws Exception { - Map<String, Object> pollutionSourceData = getPollutionSourceData(parameters); + Map<String, Object> pollutionSourceData = getPollutionSourceDataByHour(parameters); + if (MapUtils.isEmpty(pollutionSourceData)) { + pollutionSourceData = getPollutionSourceDataAll(parameters); + } String mac = parameters.get("mac").toString(); Device device = deviceService.getDeviceByMac(mac, false); Point pointEnd = new Point(); if (MapUtils.isNotEmpty(pollutionSourceData)) { - if (pollutionSourceData.get("e18") != null && pollutionSourceData.get("e23") != null && pollutionSourceData.get("e6") != null) { + if (pollutionSourceData.get("e18") != null && pollutionSourceData.get("e23") != null) { double windSpeed = Double.valueOf(pollutionSourceData.get("e18").toString()); double winDir = Double.valueOf(pollutionSourceData.get("e23").toString()); double distance = windSpeed * 3600; -- Gitblit v1.8.0