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