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; } }