| | |
| | | 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; |
| | | |
| | |
| | | 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 = { |
| | |
| | | * proportion:对应天气污染等级占总天数的比例 |
| | | * */ |
| | | private List<Map<String,Object>> values; |
| | | |
| | | /* |
| | | * 合计天数 |
| | | * */ |
| | | private Integer totalDays; |
| | | } |
| | |
| | | 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; |
| | | } |
| | |
| | | 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<>(); |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /* |
| | | * 获取今年的第一天 |
| | | * */ |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /* |
| | | * 获取昨天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); |