jinpengyong
2021-11-08 5b830047d8db717372f32b9b475cc0b57ef186de
city_aqi月年统计定时任务
3 files modified
54 ■■■■ changed files
screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java 15 ●●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java 34 ●●●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java
@@ -48,7 +48,8 @@
    @Override
    public void insertCityAqiDaily() {
        List<String> sensors = Arrays.asList("PM2_5", "PM10", "SO2", "NO2", "CO", "O3", "AQI");
        //需要均值计算的因子
        List<String> sensors = Arrays.asList("PM2_5", "PM10", "SO2", "NO2", "CO");
        String format = DateUtils.yyyy_MM_dd_EN;
        Date now = new Date();
        //开始时间,昨日
@@ -80,7 +81,7 @@
            //移除第一天数据(0点的),O3滑动值第一条数据是从1点-8点
            value.removeIf(map -> ((Date) map.get("time")).getTime() == start.getTime());
            //臭氧日均值计算,滑动值算法
            //O3日均值单独计算,滑动值算法
            Double o3OfDay = AmendUtils.o3OfDay(value);
            if (o3OfDay != null) {
                jsonMap.put("O3", o3OfDay);
@@ -92,16 +93,6 @@
            sensors.forEach(sensor -> {
                OptionalDouble optionalDouble = tempValue.parallelStream().flatMapToDouble(v -> {
                    Map<String, Object> dataValue = JSONObject.parseObject((String) v.get("value"), Map.class);
                    //臭氧单独计算
                    if ("O3".equals(sensor)) {
                        return null;
                    }
                    //aqi单独计算
                    if ("AQI".equals(sensor)) {
                        return null;
                    }
                    Object sensorValue = dataValue.get(sensor);
                    if (ObjectUtils.isEmpty(sensorValue)) {
                        return null;
screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -137,9 +137,8 @@
            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);
screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java
@@ -4,7 +4,9 @@
import org.springframework.stereotype.Component;
import com.moral.api.service.CityAqiDailyService;
import com.moral.api.service.CityAqiMonthlyService;
import com.moral.api.service.CityAqiService;
import com.moral.api.service.CityAqiYearlyService;
import com.moral.api.service.HistoryAqiService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.context.XxlJobHelper;
@@ -21,6 +23,12 @@
    @Autowired
    private CityAqiService cityAqiService;
    @Autowired
    private CityAqiMonthlyService cityAqiMonthlyService;
    @Autowired
    private CityAqiYearlyService cityAqiYearlyService;
    //国控站aqi小时数据接入
    @XxlJob("insertHistoryAqi")
@@ -48,7 +56,7 @@
    //城市aqi日数据统计
    @XxlJob("insertCityAqiDaily")
    public ReturnT insertCityAqiDaily(){
    public ReturnT insertCityAqiDaily() {
        try {
            cityAqiDailyService.insertCityAqiDaily();
        } catch (Exception e) {
@@ -57,4 +65,28 @@
        }
        return ReturnT.SUCCESS;
    }
    //城市aqi月数据统计
    @XxlJob("insertCityAqiMonthly")
    public ReturnT insertCityAqiMonthly() {
        try {
            cityAqiMonthlyService.insertCityAqiMonthly();
        } catch (Exception e) {
            XxlJobHelper.log(e.getMessage());
            return new ReturnT(ReturnT.FAIL_CODE, e.getMessage());
        }
        return ReturnT.SUCCESS;
    }
    //城市aqi年数据统计
    @XxlJob("insertCityAqiYearly")
    public ReturnT insertCityAqiYearly() {
        try {
            cityAqiYearlyService.insertCityAqiYearly();
        } catch (Exception e) {
            XxlJobHelper.log(e.getMessage());
            return new ReturnT(ReturnT.FAIL_CODE, e.getMessage());
        }
        return ReturnT.SUCCESS;
    }
}