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