screen-api/src/main/java/com/moral/api/controller/AqiController.java
@@ -3,6 +3,7 @@ import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; import com.moral.api.pojo.vo.cityAQI.BarChartOfPollutionLevelVO; import com.moral.api.pojo.vo.cityAQI.BarChartTableOfPollutionLevelVO; @@ -113,14 +114,14 @@ } /** * @Description: 获取城市优良天气占比的柱状图数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/22 */ * @Description: 获取城市优良天气占比的柱状图数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/22 */ @GetMapping("queryBarChartOfPollutionLevel") public ResultMessage queryBarChartOfPollutionLevel(ChartOfPollutionLevelForm form){ public ResultMessage queryBarChartOfPollutionLevel(ChartOfPollutionLevelForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -134,14 +135,14 @@ } /** * @Description: 获取城市优良天气占比的柱状图下的表格数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/22 */ * @Description: 获取城市优良天气占比的柱状图下的表格数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/11/22 */ @GetMapping("queryBarChatTableOfPollutionLevel") public ResultMessage queryBarChatTableOfPollutionLevel(ChartOfPollutionLevelForm form){ public ResultMessage queryBarChatTableOfPollutionLevel(ChartOfPollutionLevelForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -200,14 +201,14 @@ } /** * @Description: 查询一个城市所有县级市的优良天气 * @Param: [regionCode] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/12/30 */ * @Description: 查询一个城市所有县级市的优良天气 * @Param: [regionCode] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/12/30 */ @GetMapping("queryAreaPollutionLevel") public ResultMessage queryAreaPollutionLevel(AreaPollutionLevelForm form){ public ResultMessage queryAreaPollutionLevel(AreaPollutionLevelForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -219,14 +220,14 @@ } /** * @Description: 查询26+2城市优良天气数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/12/31 */ * @Description: 查询26+2城市优良天气数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/12/31 */ @GetMapping("qeury28CitiesPollutionLevel") public ResultMessage qeury28CitiesPollutionLevel(SpecialCitiesPollutionLevelForm form){ public ResultMessage query28CitiesPollutionLevel(SpecialCitiesPollutionLevelForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -237,4 +238,23 @@ return ResultMessage.ok(datas); } /** * @Description: 查询一个省内所有城市的优良天数 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2022/1/7 */ @GetMapping("queryProvinceCitiesPollutionLevel") public ResultMessage queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //查询业务数据 List<CityPollutionLevel> datas = cityAqiDailyService.queryProvinceCitiesPollutionLevel(form); //返回数据 return ResultMessage.ok(datas); } } screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java
New file @@ -0,0 +1,65 @@ package com.moral.api.pojo.form.aqi; import com.fasterxml.jackson.annotation.JsonFormat; import com.moral.util.DateUtils; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** * @ClassName ProvinceCitiesPollutionLevelForm * @Description TODO * @Author 陈凯裕 * @Date 2022/1/7 11:20 * @Version TODO **/ @Data public class ProvinceCitiesPollutionLevelForm { /* * 地区码 * */ private Integer regionCode; /* * 如果是查年数据则该参数不能为空 * */ @DateTimeFormat(pattern = "yyyy") @JsonFormat(pattern = "yyyy", timezone = "GMT+8") private Date year; /* * 如果是查月数据则该参数不能为空 * */ @DateTimeFormat(pattern = "yyyy-MM") @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") private Date month; /* * 用于查询数据的开始时间,由form自行转换 * */ private Date startDate; /* * 用于查询数据的结束时间,由form自行转换 * */ private Date endDate; public boolean valid() { if (regionCode == null || (year == null && month == null)||(year != null && month != null)) return false; //检查regionCode格式 String regionCodeStr = regionCode.toString(); if (!regionCodeStr.substring(regionCodeStr.length() - 4, regionCodeStr.length()).equals("0000")) return false; //时间转换 if (year != null) { startDate = DateUtils.getFirstDayOfYear(year); endDate = DateUtils.getLastDayOfYear(year); return true; } startDate = DateUtils.getFirstDayOfMonth(month); endDate = DateUtils.getLastDayOfMonth(month); return true; } } screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
@@ -5,6 +5,7 @@ import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; @@ -66,4 +67,13 @@ * @Date: 2021/12/31 */ List<CityPollutionLevel> querySpecialCitiesPollutionLevel(SpecialCitiesPollutionLevelForm form); /** * @Description: 查询一个省内所有市的优良天数 * @Param: [from] * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> * @Author: 陈凯裕 * @Date: 2022/1/7 */ List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form); } screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java
@@ -11,6 +11,7 @@ import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.dto.cityAQI.PollutionDaysAndProportion; import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; @@ -322,6 +323,24 @@ return datas; } @Override public List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form) { //取参 Date startDate = form.getStartDate(); Date endDate = form.getEndDate(); Integer regionCode = form.getRegionCode(); //查询省下所有的市 List<SysArea> allCities = sysAreaService.getChildren(regionCode); //创建返回数据对象 List<CityPollutionLevel> datas = new ArrayList<>(); //遍历每个县级市 查询数据 for (SysArea city : allCities) { CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndCityCode(city,startDate,endDate); datas.add(cityPollutionLevel); } return datas; } /** * @Description: 根据地区对象和开始结束时间计算污染天气 * @Param: [area, startDate, endDate]