| | |
| | | import com.moral.service.DeviceService; |
| | | import com.moral.service.HistoryHourlyService; |
| | | import com.moral.service.SensorService; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | @Service |
| | |
| | | } |
| | | |
| | | @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; |