jinpengyong
2022-01-17 3ddfa12fbc43e80e99e4959fbac8881eaa8e3ca3
screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java
@@ -23,28 +23,24 @@
    Integer regionCode;
    /*
    * 地区类型 0为市内城市,1为省内城市,2为28城市
    * 地区类型 city为市内城市,province为省内城市,28为28城市
    * */
    String regionType;
    /*
    * 对比类型,0为同比 1为环比
    * 对比类型,yoy为同比 mom为环比
    * */
    String comparisonType;
    /*
     * 查询年份数据的时候需要传递,非必传
     * */
    @DateTimeFormat(pattern = "yyyy")
    @JsonFormat(pattern = "yyyy", timezone = "GMT+8")
    Date year;
    String dateType;
    /*
     * 查询年份数据的时候需要传递,非必传
     * */
    @DateTimeFormat(pattern = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    Date month;
    String time;
    /*
     * 自定义开始时间,非必传
@@ -60,13 +56,21 @@
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    Date endDate;
    /*
    * 对比开始时间
    * */
    Date comparisonStartDate;
    /*
    * 对比结束时间
    * */
    Date comparisonEndDate;
    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();
@@ -75,28 +79,43 @@
        }
        if (regionType.equals(Constants.PROVINCE_TYPE)) {
            String regionCodeStr = regionCode.toString();
            if (!regionCodeStr.substring(regionCodeStr.length() - 4, regionCodeStr.length()).equals("0000"))
                return false;
            regionCode = Integer.parseInt(regionCodeStr.substring(0,regionCodeStr.length()-4)+"0000");
        }
        //时间转换
        if (year != null) {
            if(month!=null)
                return false;
            startDate = DateUtils.getFirstDayOfYear(year);
            endDate = DateUtils.getLastDayOfYear(year);
            return true;
        if(dateType.equals(Constants.MONTH)){
            Date date = DateUtils.getDate(time, "yyyy-MM");
            startDate = DateUtils.getFirstDayOfMonth(date);
            endDate = DateUtils.getLastDayOfMonth(date);
        }
        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;
        if(dateType.equals(Constants.YEAR)){
            Date date = DateUtils.getDate(time, "yyyy");
            startDate = DateUtils.getFirstDayOfYear(date);
            endDate = DateUtils.getLastDayOfYear(date);
        }
        if(startDate==null||endDate==null)
            return false;
        calculateComparisonDate();
        return true;
    }
    /**
    * @Description: 计算对比时间
            * @Param: [startDate, endDate]
            * @return: void
            * @Author: 陈凯裕
            * @Date: 2022/1/14
            */
    private void calculateComparisonDate(){
        if(comparisonType.equals(Constants.MOM)){
            comparisonStartDate = DateUtils.addMonths(startDate,-1);
            comparisonEndDate = DateUtils.addMonths(endDate,-1);
        }else{
            comparisonStartDate = DateUtils.addMonths(startDate,-12);
            comparisonEndDate = DateUtils.addMonths(endDate,-12);
        }
    }
}