From 321a114af75d62f66bd5d46f01a44c955cbde286 Mon Sep 17 00:00:00 2001 From: ZhuDongming <zdm773644075@hotmail.com> Date: Mon, 02 Sep 2019 23:43:47 +0800 Subject: [PATCH] 更新污染传播接口 --- src/main/java/com/moral/controller/ScreenController.java | 102 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 73 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 19f2c5e..68612a4 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -1,14 +1,10 @@ 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.format.DateTimeFormatter; import java.util.ArrayList; @@ -20,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; @@ -68,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; @@ -83,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; @@ -93,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.������������ @@ -141,6 +141,9 @@ */ @Resource private DeviceService deviceService; + + @Resource + private HistoryHourlyService historyHourlyService; @Resource private HistoryMinutelyService historyMinutelyService; @@ -1218,36 +1221,77 @@ @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); - 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 mac=parameters.get("mac").toString(); + 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); + System.out.println(timeLocalDateTime); + int month = timeLocalDateTime.getMonth().getValue(); + Point dirPoint = historyHourlyService.getDirPoint(parameters); + Map<String, Object> getPollutionSourceData = historyHourlyService.getPollutionSourceData(parameters); + System.out.println(dirPoint.toString()); + System.out.println("getPollutionSourceData:" + getPollutionSourceData); + 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("������AQI", hourAqi.get("AQI")); + returnMap.put("������AQI", 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>> returnList = historyService.getMointorPointRankByOrganizationId(account); + return new ResultBean<List<Map<String, Object>>>(returnList); + } + } -- Gitblit v1.8.0