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.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.stream.Collectors;
/**
*
* 城市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() {
/*
* 年均值算法
* PM2.5,PM10,CO,日均值95百分位
* SO2,NO2,日均值98百分位
* O3,日最大值90百分位
* */
//开始时间,去年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