jinpengyong
2021-12-22 9d91dc402f279630eaa100024fd3b1542fbeb41c
screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -55,12 +55,14 @@
    @Override
    public void insertCityAqi() {
        //pubtime=08的数据,是07-08之间的数据,存入数据库时的时间为07点
        Date now = new Date();
        Date time = DateUtils.dataToTimeStampTime(now, DateUtils.yyyy_MM_dd_HH_EN);
        //存入数据库是time字段实际时间
        Date dataTime = DateUtils.addHours(time, -1);
        Date start = null;
        if (DateUtils.getHour(time) == 0 || DateUtils.getHour(time) >= 8) {
            start = DateUtils.addHours(time, -7);
        if (DateUtils.getHour(time) >= 8) {
            start = DateUtils.addHours(time, -8);
        }
        //获取城市配置
@@ -83,8 +85,14 @@
            Map<String, Object> map = (Map<String, Object>) data.get("data");
            Map<String, Object> aqi = (Map<String, Object>) map.get("aqi");
            aqi.put("PM2_5", aqi.remove("pm25C"));
            aqi.remove("pm25");
            aqi.remove("pm10");
            aqi.remove("so2");
            aqi.remove("no2");
            aqi.remove("co");
            aqi.remove("o3");
            aqi.put("PM2_5", aqi.remove("pm25C"));
            aqi.put("PM10", aqi.remove("pm10C"));
            aqi.put("SO2", aqi.remove("so2C"));
            aqi.put("NO2", aqi.remove("no2C"));
@@ -100,7 +108,7 @@
                        .ge("time", DateUtils.dateToDateString(start));
                List<Map<String, Object>> cityAqis = cityAqiMapper.selectMaps(queryWrapper);
                Map<String, Object> params = new HashMap<>();
                params.put("time", DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_HH_mm_ss_S_EN));
                params.put("time", DateUtils.dateToDateString(dataTime, DateUtils.yyyy_MM_dd_HH_mm_ss_S_EN));
                params.put("value", JSONObject.toJSONString(aqi));
                cityAqis.add(params);
                if (cityAqis.size() >= 6) {
@@ -131,13 +139,12 @@
            sixParamMap.put(Constants.SENSOR_CODE_CO, aqi.get("CO"));
            sixParamMap.put(Constants.SENSOR_CODE_O3, aqi.get("O3"));
            AQI aqiAndPollutant = AQIUtils.hourlyAQI(sixParamMap);
            if (!ObjectUtils.isEmpty(aqiAndPollutant.getPrimaryPollutantNames())) {
                aqi.put("primaryPollutant", aqiAndPollutant.getPrimaryPollutantNames());
            }
            aqi.put("primaryPollutant", aqiAndPollutant.getPrimaryPollutantNames());
            CityAqi cityAqi = new CityAqi();
            cityAqi.setCityCode(cityCode);
            cityAqi.setTime(time);
            cityAqi.setTime(dataTime);
            cityAqi.setValue(JSONObject.toJSONString(aqi));
            cityAqiMapper.insert(cityAqi);
            //存入redis