|  |  |  | 
|---|
|  |  |  | //获取所有城市aqi小时数据 | 
|---|
|  |  |  | QueryWrapper<CityAqi> wrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | wrapper.select("city_code", "time", "value") | 
|---|
|  |  |  | .ge("time", DateUtils.dateToDateString(start)) | 
|---|
|  |  |  | .lt("time", DateUtils.dateToDateString(end)); | 
|---|
|  |  |  | .ge("time", start) | 
|---|
|  |  |  | .lt("time", end); | 
|---|
|  |  |  | List<Map<String, Object>> dailyData = cityAqiService.listMaps(wrapper); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (dailyData.size() == 0) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //按city_code分组 | 
|---|
|  |  |  | Map<String, List<Map<String, Object>>> data = dailyData.parallelStream().collect(Collectors.groupingBy(o -> o.get("city_code").toString())); | 
|---|
|  |  |  | Map<String, List<Map<String, Object>>> data = dailyData.stream() | 
|---|
|  |  |  | .collect(Collectors.groupingBy(o -> o.get("city_code").toString())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | CityAqiDaily cityAqiDaily = new CityAqiDaily(); | 
|---|
|  |  |  | List<CityAqiDaily> cityAqiDailies = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data.forEach((cityCode, value) -> { | 
|---|
|  |  |  | CityAqiDaily cityAqiDaily = new CityAqiDaily(); | 
|---|
|  |  |  | Map<String, Object> jsonMap = new HashMap<>(); | 
|---|
|  |  |  | cityAqiDaily.setCityCode(Integer.parseInt(cityCode)); | 
|---|
|  |  |  | cityAqiDaily.setTime(start); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | sensors.forEach(sensor -> { | 
|---|
|  |  |  | OptionalDouble optionalDouble = value.parallelStream().flatMapToDouble(v -> { | 
|---|
|  |  |  | OptionalDouble optionalDouble = value.stream().flatMapToDouble(v -> { | 
|---|
|  |  |  | Map<String, Object> dataValue = JSONObject.parseObject((String) v.get("value"), Map.class); | 
|---|
|  |  |  | Object sensorValue = dataValue.get(sensor); | 
|---|
|  |  |  | if (ObjectUtils.isEmpty(sensorValue)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | jsonMap.put("compositeIndex", compositeIndex); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | cityAqiDaily.setValue(JSONObject.toJSONString(jsonMap)); | 
|---|
|  |  |  | cityAqiDailyMapper.insert(cityAqiDaily); | 
|---|
|  |  |  | cityAqiDailies.add(cityAqiDaily); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | cityAqiDailyMapper.insertCityAqiDaily(cityAqiDailies); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|