From c8d4813258b1fd1e27b109db5f4c3c89a890400c Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Wed, 24 Nov 2021 16:33:13 +0800
Subject: [PATCH] 获取地区年数据
---
screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java | 10 +++
screen-api/src/main/java/com/moral/api/controller/CityAqiDailyController.java | 45 +++++++++++++++
screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 86 ++++++++++++++++++++++++++++
3 files changed, 141 insertions(+), 0 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/CityAqiDailyController.java b/screen-api/src/main/java/com/moral/api/controller/CityAqiDailyController.java
new file mode 100644
index 0000000..5cf8f67
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/CityAqiDailyController.java
@@ -0,0 +1,45 @@
+package com.moral.api.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.moral.api.entity.Organization;
+import com.moral.api.service.CityAqiDailyService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.WebUtils;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * @program: screen
+ * @description: city_aqi_daily������������
+ * @author: lizijie
+ * @create: 2021-11-23 14:52
+ **/
+@Slf4j
+@Api(tags = {"city_aqi_daily������������"})
+@RestController
+@CrossOrigin(origins = "*", maxAge = 3600)
+@RequestMapping("/cityAqiDaily")
+public class CityAqiDailyController {
+
+ @Resource
+ private CityAqiDailyService cityAqiDailyService;
+
+ @RequestMapping(value = "oneYearsData", method = RequestMethod.GET)
+ @ResponseBody
+ public ResultMessage oneYearsData(HttpServletRequest request){
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
+ Object cityCode = parameters.get("cityCode");
+ Object year = parameters.get("year");
+ if (ObjectUtils.isEmpty(cityCode) || ObjectUtils.isEmpty(year)){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ Map<String, Map<String, Object>> resultMap = cityAqiDailyService.oneYearsData(parameters);
+ return ResultMessage.ok(resultMap);
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
index aff00f4..3eba9af 100644
--- a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
+++ b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
@@ -7,6 +7,7 @@
import com.moral.api.pojo.form.aqi.QueryChartOfPollutionLevelForm;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -35,4 +36,13 @@
* @Date: 2021/11/22
*/
List<MonthlyPollutionLevel> queryBarChartOfPollutionLevels(QueryChartOfPollutionLevelForm form);
+
+ /**
+ *@Description: ������������������������������������������
+ *@Param: [map]
+ *@return: java.util.Map<java.lang.String,java.lang.Object>
+ *@Author: lizijie
+ *@Date: 2021/11/23 14:42
+ **/
+ Map<String,Map<String,Object>> oneYearsData(Map map);
}
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 29c0706..84675e9 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
@@ -1,6 +1,7 @@
package com.moral.api.service.impl;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.CityAqiDaily;
import com.moral.api.mapper.CityAqiDailyMapper;
@@ -185,5 +186,90 @@
return monthlyPollutionLevels;
}
+ @Override
+ public Map<String, Map<String,Object>> oneYearsData(Map map) {
+ int city_code = Integer.parseInt(map.get("cityCode").toString());
+ String year = map.get("year").toString();
+ String startTime = year+"-01-01 00:00:00";
+ String endTime = year+"-12-31 23:59:59";
+ QueryWrapper<CityAqiDaily> cityAqiDailyQueryWrapper = new QueryWrapper<>();
+ cityAqiDailyQueryWrapper.eq("city_code", city_code);
+ cityAqiDailyQueryWrapper.between("time",startTime,endTime);
+ List<CityAqiDaily> cityAqiDailies = cityAqiDailyMapper.selectList(cityAqiDailyQueryWrapper);
+ Map<String,Map<String,Object>> resultMap = new HashMap<>();
+ for (int i=1;i<13;i++){
+ Map<String, Object> monthMap = new HashMap<>();
+ String month = null;
+ if (i<10){
+ month = "0"+i;
+ }else {
+ month = String.valueOf(i);
+ }
+ String monthDate = year+"-"+month;
+ String monthFirstDay = year+"-"+month+"-01";
+ int monthDay = DateUtils.getMonthDay(monthFirstDay);
+ for (int j=1;j<monthDay+1;j++){
+ String day = null;
+ if (j<10){
+ day = "0"+j;
+ }else {
+ day = String.valueOf(j);
+ }
+ String dayDate = year+"-"+month+"-"+day;
+ monthMap.put(dayDate,null);
+ }
+ resultMap.put(monthDate,monthMap);
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ for (CityAqiDaily cityAqiDaily:cityAqiDailies) {
+ String time = sdf.format(cityAqiDaily.getTime());
+ String monthDate = time.substring(0,7);
+ String dayDate = time.substring(0,10);
+ Double PM2_5 = null;
+ Double PM10 = null;
+ Double SO2 = null;
+ Double NO2 = null;
+ Double CO = null;
+ Double O3 = null;
+ String primaryPollutant = null;
+ String value = cityAqiDaily.getValue();
+ JSONObject jsonObject = new JSONObject();
+ jsonObject = JSONObject.parseObject(value);
+ if (!ObjectUtils.isEmpty(jsonObject.get("PM2_5"))){
+ PM2_5 = (Double.parseDouble(jsonObject.get("PM2_5").toString()));
+ }
+ if (!ObjectUtils.isEmpty(jsonObject.get("PM10"))){
+ PM10 = (Double.parseDouble(jsonObject.get("PM10").toString()));
+ }
+ if (!ObjectUtils.isEmpty(jsonObject.get("SO2"))){
+ SO2 = (Double.parseDouble(jsonObject.get("SO2").toString()));
+ }
+ if (!ObjectUtils.isEmpty(jsonObject.get("NO2"))){
+ NO2 = (Double.parseDouble(jsonObject.get("NO2").toString()));
+ }
+ if (!ObjectUtils.isEmpty(jsonObject.get("CO"))){
+ CO = (Double.parseDouble(jsonObject.get("CO").toString()));
+ }
+ if (!ObjectUtils.isEmpty(jsonObject.get("O3"))){
+ O3 = (Double.parseDouble(jsonObject.get("O3").toString()));
+ }
+ if (!ObjectUtils.isEmpty(jsonObject.get("primaryPollutant"))){
+ primaryPollutant = jsonObject.get("primaryPollutant").toString();
+ }
+ Map<String,Object> valueMap = new HashMap<>();
+ valueMap.put("PM2_5",PM2_5);
+ valueMap.put("PM10",PM10);
+ valueMap.put("SO2",SO2);
+ valueMap.put("NO2",NO2);
+ valueMap.put("CO",CO);
+ valueMap.put("O3",O3);
+ valueMap.put("primaryPollutant",primaryPollutant);
+ Map<String,Object> monthMap = new HashMap<>();
+ monthMap = resultMap.get(monthDate);
+ monthMap.put(dayDate,valueMap);
+ resultMap.put(monthDate,monthMap);
+ }
+ return resultMap;
+ }
}
--
Gitblit v1.8.0