jinpengyong
2021-12-22 9d91dc402f279630eaa100024fd3b1542fbeb41c
screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -53,18 +53,16 @@
    @Autowired
    private RedisTemplate redisTemplate;
    @Autowired
    @Override
    public void insertCityAqi() {
        //pubtime=08的数据,是07-08之间的数据,存入数据库时的时间为07点
        Date now = new Date();
        Date time = DateUtils.dataToTimeStampTime(now, DateUtils.yyyy_MM_dd_HH_EN);
        String format = DateUtils.yyyy_MM_dd_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);
        }
        //获取城市配置
@@ -87,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"));
@@ -104,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) {
@@ -128,20 +132,19 @@
            //首要污染物计算
            Map<String, Object> sixParamMap = new HashMap<>();
            sixParamMap.put("a34002", aqi.get("PM10"));
            sixParamMap.put("a34004", aqi.get("PM2_5"));
            sixParamMap.put("a21004", aqi.get("NO2"));
            sixParamMap.put("a21005", aqi.get("CO"));
            sixParamMap.put("a05024", aqi.get("O3"));
            sixParamMap.put("a21026", aqi.get("SO2"));
            sixParamMap.put(Constants.SENSOR_CODE_PM25, aqi.get("PM2_5"));
            sixParamMap.put(Constants.SENSOR_CODE_PM10, aqi.get("PM10"));
            sixParamMap.put(Constants.SENSOR_CODE_SO2, aqi.get("SO2"));
            sixParamMap.put(Constants.SENSOR_CODE_NO2, aqi.get("NO2"));
            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