From 641b065c69f4311f3ac2b555a9d952e4daab62ad Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 02 Jul 2020 13:28:06 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java | 127 ++++++++++++++++++++++++++++++++---------
1 files changed, 98 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
index 6ba5929..bd36de4 100644
--- a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -5,8 +5,6 @@
import java.util.List;
import java.util.Map;
-import javax.annotation.Resource;
-
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
@@ -17,6 +15,9 @@
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
public class HistoryHourlyServiceImpl implements HistoryHourlyService {
@@ -25,6 +26,9 @@
@Resource
private DeviceService deviceService;
+
+ @Resource
+ private SensorService sensorService;
@Resource
private SensorMapper sensorMapper;
@@ -37,31 +41,96 @@
sensorKeys.add(sensor.getSensorKey());
}
parameters.put("sensorKeys", sensorKeys);
- /* if(pollutionSourceData.get("e6")!=null&&pollutionSourceData.get("e18")!=null){
- pollutionSourceData=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;*/
- System.out.println("----"+historyHourlyMapper.getPollutionSourceData(parameters));
- return historyHourlyMapper.getPollutionSourceData(parameters);
+ return pollutionSourceData;
}
@Override
- public Point getDirPoint(Map<String, Object> parameters) throws Exception{
- Map<String,Object> pollutionSourceData=getPollutionSourceData(parameters);
+ 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 Point getDirPoint(Map<String, Object> parameters) throws Exception {
+ 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)){
- System.out.println("pollutionSourceData"+pollutionSourceData);
- if(pollutionSourceData.get("e18")!=null&&pollutionSourceData.get("e23")!=null&&pollutionSourceData.get("e6")!=null){
- double windSpeed=Double.valueOf(pollutionSourceData.get("e18").toString());
- double winDir=Double.valueOf(pollutionSourceData.get("e23").toString());
- double distance=windSpeed*3600;
- double long1=device.getLongitude();
- double lat1=device.getLatitude();
- System.out.println("windSpeed:"+windSpeed+"---winDir:"+winDir+"---distance:"+distance+"--long1:"+long1+"--lat1:"+lat1);
- String[] result=calLocationByDistanceAndLocationAndDirection(winDir,long1,lat1,distance);
- System.out.println("result1���"+Double.valueOf(result[0])+"result2���"+Double.valueOf(result[1]));
+ Point pointEnd = new Point();
+ if (MapUtils.isNotEmpty(pollutionSourceData)) {
+ 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;
+ double long1 = device.getLongitude();
+ double lat1 = device.getLatitude();
+ String[] result = calLocationByDistanceAndLocationAndDirection(winDir, long1, lat1, distance);
pointEnd.setLng(Double.valueOf(result[0]));
pointEnd.setLat(Double.valueOf(result[1]));
}
@@ -70,29 +139,29 @@
}
-
/**
* ���������������������������������������������������������������������������
- * @param angle ���������������������������������������������
+ *
+ * @param angle ���������������������������������������������
* @param startLong ���������������
- * @param startLat ���������������
- * @param distance ���������������m
+ * @param startLat ���������������
+ * @param distance ���������������m
* @return
*/
- private String[] calLocationByDistanceAndLocationAndDirection(double angle, double startLong,double startLat, double distance){
+ private String[] calLocationByDistanceAndLocationAndDirection(double angle, double startLong, double startLat, double distance) {
/** ������������ **/
final double R = 6371e3;
/** 180�� **/
final DecimalFormat df = new DecimalFormat("0.000000");
String[] result = new String[2];
//���������������������������������������
- double �� = distance/R;
+ double �� = distance / R;
// ���������radian���������������������������
angle = Math.toRadians(angle);
startLong = Math.toRadians(startLong);
startLat = Math.toRadians(startLat);
- double lat = Math.asin(Math.sin(startLat)*Math.cos(��)+Math.cos(startLat)*Math.sin(��)*Math.cos(angle));
- double lng = startLong + Math.atan2(Math.sin(angle)*Math.sin(��)*Math.cos(startLat),Math.cos(��)-Math.sin(startLat)*Math.sin(lat));
+ double lat = Math.asin(Math.sin(startLat) * Math.cos(��) + Math.cos(startLat) * Math.sin(��) * Math.cos(angle));
+ double lng = startLong + Math.atan2(Math.sin(angle) * Math.sin(��) * Math.cos(startLat), Math.cos(��) - Math.sin(startLat) * Math.sin(lat));
// ���������������10���������������
lng = Math.toDegrees(lng);
lat = Math.toDegrees(lat);
--
Gitblit v1.8.0