From d1f1b489eea7730bb1cb78cdae24c626db835298 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 30 Apr 2020 11:24:16 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java | 69 +++++++++++++++++++++++++++++++++-
1 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
index d1235c5..314a26d 100644
--- a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -15,6 +15,8 @@
import com.moral.mapper.SensorMapper;
import com.moral.service.DeviceService;
import com.moral.service.HistoryHourlyService;
+import com.moral.service.SensorService;
+
import javax.annotation.Resource;
@Service
@@ -24,6 +26,9 @@
@Resource
private DeviceService deviceService;
+
+ @Resource
+ private SensorService sensorService;
@Resource
private SensorMapper sensorMapper;
@@ -36,17 +41,75 @@
sensorKeys.add(sensor.getSensorKey());
}
parameters.put("sensorKeys", sensorKeys);
- return historyHourlyMapper.getPollutionSourceData(parameters);
+ Map<String, Object> pollutionSourceData = historyHourlyMapper.getPollutionSourceData(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> 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 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