kaiyu
2021-11-17 5158c660013d52524559d4435f27b5e63d3221b7
screen-api
更改饼状图接口
5 files modified
197 ■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/AqiController.java 93 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java 5 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java 42 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java 3 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/DateUtils.java 54 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/AqiController.java
@@ -15,6 +15,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -107,6 +109,97 @@
        return ResultMessage.ok(dto);
    }
    @GetMapping("test")
    public ResultMessage test(){
        List<PieChartOfPollutionLevelDTO> dtos = new ArrayList<>();
        PieChartOfPollutionLevelDTO dto = new PieChartOfPollutionLevelDTO();
        dto.setTime("2021-11");
        dto.setTotalDays(10);
        List<Map<String,Object>> list = new ArrayList<>();
        Map<String,Object> map = new HashMap<>();
        map.put("proportion","40%");
        map.put("days",4);
        map.put("pollution",0);
        list.add(map);
        Map<String,Object> map1 = new HashMap<>();
        map1.put("proportion","30%");
        map1.put("days",3);
        map1.put("pollution",1);
        list.add(map1);
        Map<String,Object> map2 = new HashMap<>();
        map2.put("proportion","30%");
        map2.put("days",3);
        map2.put("pollution",2);
        list.add(map2);
        Map<String,Object> map3 = new HashMap<>();
        map3.put("proportion","0%");
        map3.put("days",0);
        map3.put("pollution",3);
        list.add(map3);
        Map<String,Object> map4 = new HashMap<>();
        map4.put("proportion","0%");
        map4.put("days",0);
        map4.put("pollution",4);
        list.add(map4);
        Map<String,Object> map5 = new HashMap<>();
        map5.put("proportion","0%");
        map5.put("days",0);
        map5.put("pollution",5);
        list.add(map5);
        dto.setValues(list);
        PieChartOfPollutionLevelDTO dto1 = new PieChartOfPollutionLevelDTO();
        dto1.setTime("2021-11");
        List<Map<String,Object>> list1 = new ArrayList<>();
        Map<String,Object> map11 = new HashMap<>();
        map11.put("proportion","40%");
        map11.put("days",4);
        map11.put("pollution",0);
        list1.add(map11);
        Map<String,Object> map12 = new HashMap<>();
        map12.put("proportion","30%");
        map12.put("days",3);
        map12.put("pollution",1);
        list1.add(map12);
        Map<String,Object> map13 = new HashMap<>();
        map13.put("proportion","30%");
        map13.put("days",3);
        map13.put("pollution",2);
        list1.add(map13);
        Map<String,Object> map14 = new HashMap<>();
        map14.put("proportion","0%");
        map14.put("days",0);
        map14.put("pollution",3);
        list1.add(map14);
        Map<String,Object> map15 = new HashMap<>();
        map15.put("proportion","0%");
        map15.put("days",0);
        map15.put("pollution",4);
        list1.add(map15);
        Map<String,Object> map16 = new HashMap<>();
        map16.put("proportion","0%");
        map16.put("days",0);
        map16.put("pollution",5);
        list1.add(map16);
        dto1.setValues(list1);
        dto1.setTotalDays(10);
        dtos.add(dto);
        dtos.add(dto1);
        return ResultMessage.ok(dtos);
    }
    @GetMapping("provincialRanking")
    @ApiOperation(value = "省内排名", notes = "省内排名")
    @ApiImplicitParams(value = {
screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java
@@ -25,4 +25,9 @@
     *       proportion:对应天气污染等级占总天数的比例
    * */
    private List<Map<String,Object>> values;
    /*
    * 合计天数
    * */
    private Integer totalDays;
}
screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java
@@ -18,32 +18,48 @@
public class QueryPieChartOfPollutionLevelForm {
    /*
    * 地区码 必传
    * */
     * 地区码 必传
     * */
    Integer regionCode;
    /*
    * 自定义开始时间
    * 非必传,当不传的时候默认获取今年的数据
    * */
     * 查询年份数据的时候需要传递,非必传
     * */
    @DateTimeFormat(pattern = "yyyy")
    @JsonFormat(pattern = "yyyy", timezone = "GMT+8")
    Date year;
    /*
     * 自定义开始时间,非必传
     * */
    @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(regionCode==null)
    public boolean valid() {
        if (regionCode == null)
            return false;
        //如果没有自定义时间,则开始时间设定为今年第一天,结束时间设定为昨天
        if(startDate==null||endDate==null){
             startDate = DateUtils.getFirstDayOfCurrYear();
             endDate = DateUtils.getYesterdayDate();
        //如果没有自定义时间,则为查询年份数据
        if (startDate == null || endDate == null) {
            if (year == null)
                return false;
            //判断是否为今年
            if (DateUtils.isCurrentYear(year)) {
                startDate = DateUtils.getFirstDayOfCurrYear();
                endDate = DateUtils.getYesterdayDate();
                return true;
            }else{
                startDate = DateUtils.getFirstDayOfYear(year);
                endDate = DateUtils.getLastDayOfYear(year);
                return true;
            }
        }
        return true;
    }
screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java
@@ -77,6 +77,7 @@
        List<Map<String,Object>> valueMap = new ArrayList<>();
        Set<Map.Entry<String, Integer>> entries = pollutionDaysMap.entrySet();
        Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();
        Integer totalDays = 0;
        while(iterator.hasNext()){
            Map.Entry<String, Integer> entry = iterator.next();
            Map<String,Object> pollutionMap = new HashMap<>();
@@ -89,11 +90,13 @@
            pollutionMap.put("pollution",pollution);
            pollutionMap.put("days",days);
            valueMap.add(pollutionMap);
            totalDays+=days;
        }
        //封装返回对象
        PieChartOfPollutionLevelDTO dto = new PieChartOfPollutionLevelDTO();
        dto.setTime(time);
        dto.setValues(valueMap);
        dto.setTotalDays(totalDays);
        return dto;
    }
}
screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -940,12 +940,52 @@
    }
    /*
    * 获取今年的第一天
    * */
    public static Date getFirstDayOfCurrYear(){
     * 获取今年的第一天
     * */
    public static Date getFirstDayOfCurrYear() {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_YEAR,1);
        cal.set(Calendar.DAY_OF_YEAR, 1);
        return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
    }
    /*
     * 获取日期年份的第一天
     * */
    public static Date getFirstDayOfYear(Date date) {
        final Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        final int last = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
        cal.set(Calendar.DAY_OF_YEAR, last);
        cal.set(Calendar.HOUR_OF_DAY,0);
        cal.set(Calendar.MINUTE,0);
        cal.set(Calendar.SECOND,0);
        return cal.getTime();
    }
    /*
     * 获取日期年份的最后一天
     * */
    public static Date getLastDayOfYear(Date date) {
        final Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
        cal.set(Calendar.DAY_OF_YEAR, last);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        return cal.getTime();
    }
    /*
     * 判断日期是否为今年
     * */
    public static boolean isCurrentYear(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        int currentYear = cal.get(Calendar.YEAR);
        cal.setTime(date);
        int year = cal.get(Calendar.YEAR);
        return year == currentYear;
    }
    /**
@@ -1040,9 +1080,9 @@
    }
    /*
    * 获取昨天Date
    * */
    public static Date getYesterdayDate(){
     * 获取昨天Date
     * */
    public static Date getYesterdayDate() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        cal.set(Calendar.HOUR_OF_DAY, 0);