From 5158c660013d52524559d4435f27b5e63d3221b7 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Wed, 17 Nov 2021 13:54:25 +0800 Subject: [PATCH] screen-api 更改饼状图接口 --- screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java | 5 + screen-common/src/main/java/com/moral/util/DateUtils.java | 54 +++++++++++- screen-api/src/main/java/com/moral/api/controller/AqiController.java | 93 +++++++++++++++++++++++ screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 3 screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java | 42 +++++++--- 5 files changed, 177 insertions(+), 20 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/AqiController.java b/screen-api/src/main/java/com/moral/api/controller/AqiController.java index 428b780..8d3716f 100644 --- a/screen-api/src/main/java/com/moral/api/controller/AqiController.java +++ b/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 = { diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java b/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java index d3b6a2f..e09b56d 100644 --- a/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java +++ b/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; } diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java index f8ae421..20da5e5 100644 --- a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java +++ b/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; } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java index da4ee3d..22a2858 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java +++ b/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; } } diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java index a02f9b5..8889611 100644 --- a/screen-common/src/main/java/com/moral/util/DateUtils.java +++ b/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); -- Gitblit v1.8.0