screen-api/src/main/java/com/moral/api/controller/AqiController.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java | ●●●●● patch | view | raw | blame | history | |
screen-common/src/main/java/com/moral/constant/Constants.java | ●●●●● patch | view | raw | blame | history |
screen-api/src/main/java/com/moral/api/controller/AqiController.java
@@ -1,14 +1,13 @@ package com.moral.api.controller; import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent; 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.form.aqi.*; import com.moral.api.pojo.vo.cityAQI.AirQualityComparisonVO; import com.moral.api.pojo.vo.cityAQI.BarChartOfPollutionLevelVO; import com.moral.api.pojo.vo.cityAQI.BarChartTableOfPollutionLevelVO; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; import com.moral.api.service.CityAqiDailyService; import io.swagger.annotations.Api; @@ -257,4 +256,46 @@ return ResultMessage.ok(datas); } /** * @Description: 查询城市空气质量同期对比数据 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2022/1/12 */ @GetMapping("queryAirQualityComparison") public ResultMessage queryAirQualityComparison(AirQualityComparisonForm form){ //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //查询业务 //返回数据 ConcentrationAndPercent c = new ConcentrationAndPercent(); c.setConcentration("5"); c.setPercent("10%"); List<AirQualityComparisonVO> datas = new ArrayList<>(); AirQualityComparisonVO vo1 = new AirQualityComparisonVO(); vo1.setCityName("XXX"); vo1.setCompositeIndex(c); vo1.setPM10(c); vo1.setPM25(c); vo1.setSO2(c); vo1.setNO2(c); vo1.setCO(c); vo1.setO3(c); vo1.setFineDays(c); vo1.setServerDays(c); AirQualityComparisonVO vo2 = vo1; AirQualityComparisonVO vo3 = vo1; AirQualityComparisonVO vo4 = vo1; AirQualityComparisonVO vo5 = vo1; datas.add(vo1); datas.add(vo2); datas.add(vo3); datas.add(vo4); datas.add(vo5); return ResultMessage.ok(datas); } } screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java
New file @@ -0,0 +1,24 @@ package com.moral.api.pojo.dto.cityAQI; import lombok.Data; /** * @ClassName SensorConAndPer * @Description 对比数据的浓度和百分比实体 * @Author 陈凯裕 * @Date 2022/1/12 16:55 * @Version TODO **/ @Data public class ConcentrationAndPercent { /* * 对应的浓度/指数/天数 * */ private String concentration; /* * 同比/环比 * */ private String percent; } screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java
New file @@ -0,0 +1,102 @@ package com.moral.api.pojo.form.aqi; import com.fasterxml.jackson.annotation.JsonFormat; import com.moral.constant.Constants; import com.moral.util.DateUtils; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** * @ClassName AirQualityForm * @Description 空气质量同期对比实体 * @Author 陈凯裕 * @Date 2022/1/12 15:11 * @Version TODO **/ @Data public class AirQualityComparisonForm { /* * 地区码 查询28城市无需传入 * */ Integer regionCode; /* * 地区类型 0为市内城市,1为省内城市,2为28城市 * */ String regionType; /* * 对比类型,0为同比 1为环比 * */ String comparisonType; /* * 查询年份数据的时候需要传递,非必传 * */ @DateTimeFormat(pattern = "yyyy") @JsonFormat(pattern = "yyyy", timezone = "GMT+8") Date year; /* * 查询年份数据的时候需要传递,非必传 * */ @DateTimeFormat(pattern = "yyyy-MM") @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") Date month; /* * 自定义开始时间,非必传 * */ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") Date startDate; /* * 自定义结束时间,非必传 * */ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") Date endDate; public boolean valid() { //校验地区类型对应的地区码 if(regionType==null||comparisonType==null) return false; if (!regionType.equals(Constants.TWENTY_EIGHT_CITIES) && regionCode == null) return false; if (regionCode.toString().length() != 6) return false; if (regionType.equals(Constants.CITY_TYPE)) { String regionCodeStr = regionCode.toString(); if (!regionCodeStr.substring(regionCodeStr.length() - 2, regionCodeStr.length()).equals("00")) return false; } if (regionType.equals(Constants.PROVINCE_TYPE)) { String regionCodeStr = regionCode.toString(); if (!regionCodeStr.substring(regionCodeStr.length() - 4, regionCodeStr.length()).equals("0000")) return false; } //时间转换 if (year != null) { if(month!=null) return false; startDate = DateUtils.getFirstDayOfYear(year); endDate = DateUtils.getLastDayOfYear(year); return true; } if (month != null) { if(year!=null) return false; startDate = DateUtils.getFirstDayOfMonth(month); endDate = DateUtils.getLastDayOfMonth(month); return true; } if(startDate!=null&&endDate!=null) return true; return false; } } screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java
New file @@ -0,0 +1,38 @@ package com.moral.api.pojo.vo.cityAQI; import com.fasterxml.jackson.annotation.JsonProperty; import com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent; import lombok.Data; /** * @ClassName AirQualityComparisonVO * @Description 空气质量同期对比VO * @Author 陈凯裕 * @Date 2022/1/12 16:51 * @Version TODO **/ @Data public class AirQualityComparisonVO { private String cityName; private ConcentrationAndPercent compositeIndex; private ConcentrationAndPercent PM25; private ConcentrationAndPercent PM10; private ConcentrationAndPercent SO2; private ConcentrationAndPercent NO2; private ConcentrationAndPercent CO; private ConcentrationAndPercent O3; private ConcentrationAndPercent fineDays; private ConcentrationAndPercent serverDays; } screen-common/src/main/java/com/moral/constant/Constants.java
@@ -190,18 +190,18 @@ public static final String NULL_VALUE = "N/V"; /* * 数据有效的标记位,有效 * */ * 数据有效的标记位,有效 * */ public static final String MARKER_BIT_TRUE = "N"; /* * 数据有效的标记位,有效性不足 * */ * 数据有效的标记位,有效性不足 * */ public static final String MARKER_BIT_FALSE = "H"; /* * 数据中各个传感器代表标记位的key后缀 * */ * 数据中各个传感器代表标记位的key后缀 * */ public static final String MARKER_BIT_KEY = "Flag"; /* @@ -220,28 +220,28 @@ public static final String SPECIAL_DEVICE_UAV = "1"; /* * 时报 * */ * 时报 * */ public static final String HOURLY_REPORT = "0"; /* * 日报 * */ * 日报 * */ public static final String DAILY_REPORT = "1"; /* * 周报 * */ * 周报 * */ public static final String WEEKLY_REPORT = "2"; /* * 月报 * */ * 月报 * */ public static final String MONTHLY_REPORT = "3"; /* * 数据正常标识符 * */ * 数据正常标识符 * */ public static final String NORMAL_FLAG = "N"; public static final String EXCELLENT_WEATHER = "优"; @@ -267,4 +267,29 @@ public static final String SERIOUS_WEATHER_CODE = "4"; public static final String SERVER_WEATHER_CODE = "5"; /* * 市内类型 * */ public static final String CITY_TYPE = "0"; /* * 省内类型 * */ public static final String PROVINCE_TYPE = "1"; /* * 28城市类型 * */ public static final String TWENTY_EIGHT_CITIES = "2"; /* * 同比数据 * */ public static final String YOY = "0"; /* * 环比数据 * */ public static final String QOQ = "1"; }