于紫祥_1901
2020-08-12 f718fb9c06fa75b65870a3f5ef2fea10054009aa
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;