package com.moral.api.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.CityAqi;
import com.moral.api.entity.CityAqiDaily;
import com.moral.api.mapper.CityAqiDailyMapper;
import com.moral.api.service.CityAqiDailyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.service.CityAqiService;
import com.moral.constant.Constants;
import com.moral.pojo.AQI;
import com.moral.util.AQIUtils;
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.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-10-28
 */
@Service
public class CityAqiDailyServiceImpl extends ServiceImpl implements CityAqiDailyService {
    @Autowired
    private CityAqiDailyMapper cityAqiDailyMapper;
    @Autowired
    private CityAqiService cityAqiService;
    @Override
    public void insertCityAqiDaily() {
        //需要均值计算的因子
        List sensors = Arrays.asList("PM2_5", "PM10", "SO2", "NO2", "CO");
        String format = DateUtils.yyyy_MM_dd_EN;
        Date now = new Date();
        //开始时间,昨日
        Date start = DateUtils.dataToTimeStampTime(DateUtils.getDateOfDay(now, -1), format);
        //结束时间,今日
        Date end = DateUtils.dataToTimeStampTime(now, format);
        //获取所有城市aqi小时数据
        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.select("city_code", "time", "value")
                .ge("time", start)
                .lt("time", end);
        List