From c492a224f8f89cca822e7539fe9a570415a6094e Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 13 Jan 2022 08:28:17 +0800
Subject: [PATCH] screen-api            添加获取城市同期对比模拟数据接口

---
 screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java |   24 ++++
 screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java   |  102 ++++++++++++++++++++
 screen-api/src/main/java/com/moral/api/controller/AqiController.java                 |   49 +++++++++
 screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java   |   38 +++++++
 screen-common/src/main/java/com/moral/constant/Constants.java                        |   57 ++++++++---
 5 files changed, 250 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 29ef335..4adb29b 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
@@ -1,14 +1,13 @@
 package com.moral.api.controller;
 
 import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel;
+import com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent;
 import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel;
-import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm;
-import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm;
-import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm;
+import com.moral.api.pojo.form.aqi.*;
+import com.moral.api.pojo.vo.cityAQI.AirQualityComparisonVO;
 import com.moral.api.pojo.vo.cityAQI.BarChartOfPollutionLevelVO;
 import com.moral.api.pojo.vo.cityAQI.BarChartTableOfPollutionLevelVO;
 import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO;
-import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm;
 import com.moral.api.service.CityAqiDailyService;
 
 import io.swagger.annotations.Api;
@@ -257,4 +256,46 @@
         return ResultMessage.ok(datas);
     }
 
+    /** 
+    * @Description: ������������������������������������������
+            * @Param: [form]
+            * @return: com.moral.constant.ResultMessage
+            * @Author: ���������
+            * @Date: 2022/1/12
+            */ 
+    @GetMapping("queryAirQualityComparison")
+    public ResultMessage queryAirQualityComparison(AirQualityComparisonForm form){
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        //������������
+        //������������
+        ConcentrationAndPercent c = new ConcentrationAndPercent();
+        c.setConcentration("5");
+        c.setPercent("10%");
+        List<AirQualityComparisonVO> datas = new ArrayList<>();
+        AirQualityComparisonVO vo1 = new AirQualityComparisonVO();
+        vo1.setCityName("XXX");
+        vo1.setCompositeIndex(c);
+        vo1.setPM10(c);
+        vo1.setPM25(c);
+        vo1.setSO2(c);
+        vo1.setNO2(c);
+        vo1.setCO(c);
+        vo1.setO3(c);
+        vo1.setFineDays(c);
+        vo1.setServerDays(c);
+        AirQualityComparisonVO vo2 = vo1;
+        AirQualityComparisonVO vo3 = vo1;
+        AirQualityComparisonVO vo4 = vo1;
+        AirQualityComparisonVO vo5 = vo1;
+        datas.add(vo1);
+        datas.add(vo2);
+        datas.add(vo3);
+        datas.add(vo4);
+        datas.add(vo5);
+        return ResultMessage.ok(datas);
+    }
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java b/screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java
new file mode 100644
index 0000000..ea01fca
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/dto/cityAQI/ConcentrationAndPercent.java
@@ -0,0 +1,24 @@
+package com.moral.api.pojo.dto.cityAQI;
+
+import lombok.Data;
+
+/**
+ * @ClassName SensorConAndPer
+ * @Description ���������������������������������������
+ * @Author ���������
+ * @Date 2022/1/12 16:55
+ * @Version TODO
+ **/
+@Data
+public class ConcentrationAndPercent {
+
+    /*
+    * ���������������/������/������
+    * */
+    private String concentration;
+
+    /*
+    * ������/������
+    * */
+    private String percent;
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java
new file mode 100644
index 0000000..69ae60a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java
@@ -0,0 +1,102 @@
+package com.moral.api.pojo.form.aqi;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.constant.Constants;
+import com.moral.util.DateUtils;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @ClassName AirQualityForm
+ * @Description ������������������������������
+ * @Author ���������
+ * @Date 2022/1/12 15:11
+ * @Version TODO
+ **/
+@Data
+public class AirQualityComparisonForm {
+    /*
+     * ��������� ������28������������������
+     * */
+    Integer regionCode;
+
+    /*
+    * ������������ 0������������������1������������������2���28������
+    * */
+    String regionType;
+
+    /*
+    * ���������������0��������� 1���������
+    * */
+    String comparisonType;
+
+    /*
+     * ���������������������������������������������������
+     * */
+    @DateTimeFormat(pattern = "yyyy")
+    @JsonFormat(pattern = "yyyy", timezone = "GMT+8")
+    Date year;
+
+    /*
+     * ���������������������������������������������������
+     * */
+    @DateTimeFormat(pattern = "yyyy-MM")
+    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
+    Date month;
+
+    /*
+     * ���������������������������������
+     * */
+    @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(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();
+            if (!regionCodeStr.substring(regionCodeStr.length() - 2, regionCodeStr.length()).equals("00"))
+                return false;
+        }
+        if (regionType.equals(Constants.PROVINCE_TYPE)) {
+            String regionCodeStr = regionCode.toString();
+            if (!regionCodeStr.substring(regionCodeStr.length() - 4, regionCodeStr.length()).equals("0000"))
+                return false;
+        }
+
+        //������������
+        if (year != null) {
+            if(month!=null)
+                return false;
+            startDate = DateUtils.getFirstDayOfYear(year);
+            endDate = DateUtils.getLastDayOfYear(year);
+            return true;
+        }
+        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;
+    }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java
new file mode 100644
index 0000000..586ac6a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java
@@ -0,0 +1,38 @@
+package com.moral.api.pojo.vo.cityAQI;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent;
+import lombok.Data;
+
+/**
+ * @ClassName AirQualityComparisonVO
+ * @Description ������������������������VO
+ * @Author ���������
+ * @Date 2022/1/12 16:51
+ * @Version TODO
+ **/
+@Data
+public class AirQualityComparisonVO {
+
+    private String cityName;
+
+    private ConcentrationAndPercent compositeIndex;
+
+    private ConcentrationAndPercent PM25;
+
+    private ConcentrationAndPercent PM10;
+
+    private ConcentrationAndPercent SO2;
+
+    private ConcentrationAndPercent NO2;
+
+    private ConcentrationAndPercent CO;
+
+    private ConcentrationAndPercent O3;
+
+    private ConcentrationAndPercent fineDays;
+
+    private ConcentrationAndPercent serverDays;
+
+
+}
diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index 23e2737..a973063 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -190,18 +190,18 @@
     public static final String NULL_VALUE = "N/V";
 
     /*
-    * ������������������������,������
-    * */
+     * ������������������������,������
+     * */
     public static final String MARKER_BIT_TRUE = "N";
 
     /*
-    * ������������������������,���������������
-    * */
+     * ������������������������,���������������
+     * */
     public static final String MARKER_BIT_FALSE = "H";
 
     /*
-    * ������������������������������������������key������
-    * */
+     * ������������������������������������������key������
+     * */
     public static final String MARKER_BIT_KEY = "Flag";
 
     /*
@@ -220,28 +220,28 @@
     public static final String SPECIAL_DEVICE_UAV = "1";
 
     /*
-    * ������
-    * */
+     * ������
+     * */
     public static final String HOURLY_REPORT = "0";
 
     /*
-    * ������
-    * */
+     * ������
+     * */
     public static final String DAILY_REPORT = "1";
 
     /*
-    * ������
-    * */
+     * ������
+     * */
     public static final String WEEKLY_REPORT = "2";
 
     /*
-    * ������
-    * */
+     * ������
+     * */
     public static final String MONTHLY_REPORT = "3";
 
     /*
-    * ���������������������
-    * */
+     * ���������������������
+     * */
     public static final String NORMAL_FLAG = "N";
 
     public static final String EXCELLENT_WEATHER = "���";
@@ -267,4 +267,29 @@
     public static final String SERIOUS_WEATHER_CODE = "4";
 
     public static final String SERVER_WEATHER_CODE = "5";
+
+    /*
+     * ������������
+     * */
+    public static final String CITY_TYPE = "0";
+
+    /*
+     * ������������
+     * */
+    public static final String PROVINCE_TYPE = "1";
+
+    /*
+     * 28������������
+     * */
+    public static final String TWENTY_EIGHT_CITIES = "2";
+
+    /*
+     * ������������
+     * */
+    public static final String YOY = "0";
+
+    /*
+     * ������������
+     * */
+    public static final String QOQ = "1";
 }

--
Gitblit v1.8.0