package com.moral.api.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.CityAqiDaily;
import com.moral.api.entity.CityAqiYearly;
import com.moral.api.mapper.CityAqiYearlyMapper;
import com.moral.api.service.CityAqiDailyService;
import com.moral.api.service.CityAqiYearlyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
import com.moral.util.AmendUtils;
import com.moral.util.ComprehensiveIndexUtils;
import com.moral.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.OptionalDouble;
import java.util.stream.Collectors;
import java.util.stream.DoubleStream;
/**
*
* 城市aqi年数据表 服务实现类
*
*
* @author moral
* @since 2021-11-04
*/
@Service
public class CityAqiYearlyServiceImpl extends ServiceImpl implements CityAqiYearlyService {
@Autowired
private CityAqiDailyService cityAqiDailyService;
@Autowired
private CityAqiYearlyMapper cityAqiYearlyMapper;
@Override
public void insertCityAqiYearly() {
//需要均值计算的因子
List sensors = Arrays.asList("PM2_5", "PM10", "SO2", "NO2");
//开始时间,去年1号
Date start = DateUtils.getFirstDayOfLastYear();
//上上年
Date lastLastYear = DateUtils.getDate(DateUtils.getDateAddYear(DateUtils.dateToDateString(start, DateUtils.yyyy), -1), DateUtils.yyyy);
//结束时间,本年1号
Date end = DateUtils.getDate(DateUtils.getDateAddYear(DateUtils.dateToDateString(start, DateUtils.yyyy), 1), DateUtils.yyyy);
//获取所有城市aqi小时数据
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.select("city_code", "time", "value")
.ge("time", DateUtils.dateToDateString(start))
.lt("time", DateUtils.dateToDateString(end));
List