kaiyu
2022-01-13 c492a224f8f89cca822e7539fe9a570415a6094e
screen-api
添加获取城市同期对比模拟数据接口
3 files added
2 files modified
270 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/AqiController.java 49 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java 24 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java 102 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java 38 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/Constants.java 57 ●●●● 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";
}