From fa7229d6571a73e5691a21f7b4052d681cca8317 Mon Sep 17 00:00:00 2001 From: ZhuDongming <zdm773644075@hotmail.com> Date: Tue, 03 Sep 2019 20:51:01 +0800 Subject: [PATCH] update 污染传播接口 --- src/main/java/com/moral/controller/ScreenController.java | 105 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 75 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 3e7e744..3c6991a 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -1,16 +1,11 @@ package com.moral.controller; -import static com.moral.common.util.ResourceUtil.getValue; -import static com.moral.common.util.WebUtils.getParametersStartingWith; - import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.text.DecimalFormat; -import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.Month; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; @@ -21,9 +16,6 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.net.ftp.FTPClient; @@ -69,6 +61,7 @@ import com.moral.entity.MapBounds; import com.moral.entity.MonitorPoint; import com.moral.entity.Organization; +import com.moral.entity.Point; import com.moral.entity.Region; import com.moral.entity.alarm.AlarmConfig; import com.moral.entity.alarm.AlarmConfigValue; @@ -84,6 +77,7 @@ import com.moral.service.DictionaryDataService; import com.moral.service.HangzhouAqiService; import com.moral.service.HistoryDailyService; +import com.moral.service.HistoryHourlyService; import com.moral.service.HistoryMinutelyService; import com.moral.service.HistoryService; import com.moral.service.MachineActivateService; @@ -94,12 +88,17 @@ import com.moral.service.SensorService; import com.moral.service.SensorUnitService; import com.moral.service.WeatherService; +import com.moral.util.AQICalculation; import com.moral.util.TempAllocationUtils; - import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import static com.moral.common.util.ResourceUtil.getValue; +import static com.moral.common.util.WebUtils.getParametersStartingWith; /** * The Class ScreenController.������������ @@ -142,6 +141,9 @@ */ @Resource private DeviceService deviceService; + + @Resource + private HistoryHourlyService historyHourlyService; @Resource private HistoryMinutelyService historyMinutelyService; @@ -1219,38 +1221,81 @@ @GetMapping("/pollutionSource") @ApiOperation(value = "������������������", notes = "������������������") @ApiImplicitParams(value = { - @ApiImplicitParam(name = "organizationId", defaultValue = "5", value = "���������������������id", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "mac", value = "������mac������(������p5dnd7a0391972)", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "time", value = "������������(���������2019-08-22)", required = true, paramType = "query", dataType = "String")}) + @ApiImplicitParam(name = "mac", value = "������mac������(������898607b0101730392251)", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "sensorKey", value = "������������������������key(���������e1)", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "time", value = "������������(���������2019-09-01-10)", required = true, paramType = "query", dataType = "String")}) public ModelAndView pollutionSource(ModelAndView model, HttpServletRequest request) throws Exception { Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - LocalDate today = LocalDate.now(); - String time = parameters.get("time").toString(); - DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate selectTime = LocalDate.parse(time, dateTimeFormatter); - int month = selectTime.getMonth().getValue(); - LocalDate yesterday = today.minusDays(1); - LocalDate futureDay = today.plusDays(14); - Boolean isAfterYesterday = selectTime.isAfter(yesterday) || selectTime.isEqual(yesterday); - Boolean isAfterFutureDay = selectTime.isAfter(futureDay); - Map<String, Object> weatherInfoToday = weatherService.getWeatherDataByRegion(parameters); - Map<String, Object> weatherInfoForecast = new HashMap<>(); - if (isAfterYesterday && !isAfterFutureDay) { - weatherInfoForecast = weatherService.get15DayWeatherDataByRegion(parameters); - } - Boolean isToday = selectTime.isEqual(today); + String timeStr = parameters.get("time").toString(); + String YearAndDay = timeStr.substring(0, timeStr.lastIndexOf("-")); + String Hour = timeStr.substring(timeStr.lastIndexOf("-") + 1); + String time = YearAndDay + " " + Hour + ":00:00"; + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime timeLocalDateTime = LocalDateTime.parse(time, dateTimeFormatter); + int month = timeLocalDateTime.getMonth().getValue(); + Point dirPoint = historyHourlyService.getDirPoint(parameters); + Map<String, Object> getPollutionSourceData = historyHourlyService.getPollutionSourceData(parameters); String mac = parameters.get("mac").toString(); Device device = deviceService.getDeviceByMac(mac, false); JSONObject params = new JSONObject(); - params.put("weatherInfoToday", weatherInfoToday); - params.put("weatherInfoForecast", weatherInfoForecast); params.put("device", device); - params.put("isToday", isToday); params.put("month", month); + params.put("dirPoint", dirPoint); + params.put("getPollutionSourceData", getPollutionSourceData); String paramsJson = params.toJSONString(); model.addObject("pollutionSourceParams", paramsJson); model.setViewName("pollutionsource"); return model; } + + @GetMapping("getAirQualityComparison") + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "organizationId", defaultValue = "5", value = "���������������������id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "monitor_point_id", defaultValue = "5", value = "������������id", required = true, paramType = "query", dataType = "String")}) + public ResultBean<Map<String, Object>> getAirQualityComparison(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = getParametersStartingWith(request, null); + Map<String, Object> map = weatherService.getWeatherDataByRegion(parameters); + Map<String, Double> sensorMap = new HashMap<>(); + sensorMap.put("e1", Double.parseDouble(map.get("pm25").toString())); + sensorMap.put("e2", Double.parseDouble(map.get("pm10").toString())); + sensorMap.put("e11", Double.parseDouble(map.get("so2").toString())); + sensorMap.put("e16", Double.parseDouble(map.get("no2").toString())); + sensorMap.put("e10", Double.parseDouble(map.get("co").toString())); + sensorMap.put("e15", Double.parseDouble(map.get("o3").toString())); + Map<String, Object> StateControl = AQICalculation.hourlyAQI(sensorMap); + System.out.println("StateControl:"+StateControl); + Map<String, Object> hourAqi = historyService.gitHourlyAQIByMonitorPointIdAndTimeslot(parameters); + System.out.println("hourAqi:"+hourAqi); + Map<String, Object> returnMap = new HashMap<>(); + returnMap.put("MonitorPointAQI", hourAqi.get("AQI")); + returnMap.put("StateControlAQI", StateControl.get("AQI")); + return new ResultBean<Map<String, Object>>(returnMap); + } + + @GetMapping("mointorPointRank") + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "accountId", value = "������id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "sensor", value = "������", required = true, paramType = "query", dataType = "String") + }) + public ResultBean<List<Map<String, Object>>> getMointorPointRank(HttpServletRequest request){ + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + String id = parameters.get("accountId").toString(); + String sensor = parameters.get("sensor").toString(); + Map<String, Object> account = accountService.getOrganizationIdByAccountId(id); + //������������id������������������������������ + account.put("sensor", sensor); + List<Map<String, Object>> rankList = historyService.getMointorPointRankByOrganizationId(account); + List<Map<String, Object>> returnList = new ArrayList<>(); + for (Map<String, Object> map : rankList) { + boolean contains = map.containsKey("sensor"); + if (contains) { + returnList.add(map); + } + } + return new ResultBean<List<Map<String, Object>>>(returnList); + } + } -- Gitblit v1.8.0