From 1d7e1b771160dd8b7f25765e402ce25cac676641 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Tue, 24 Nov 2020 15:58:33 +0800 Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/screen_api_v2 --- src/main/java/com/moral/controller/ScreenController.java | 90 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 84 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index dd33e5f..cfe9a84 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -2,6 +2,7 @@ import java.io.*; import java.lang.reflect.Array; +import java.math.BigDecimal; import java.net.URLEncoder; import java.text.DateFormat; import java.text.DecimalFormat; @@ -19,6 +20,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import com.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.Expression; import com.moral.common.bean.Constants; @@ -36,6 +38,7 @@ import com.moral.entity.alarm.AlarmSensorLevel; import com.moral.entity.charts.DataSortCondition; import com.moral.entity.layout.RealTimeDeviceLayout; +import com.moral.mapper.HistoryMapper; import com.moral.service.*; import com.moral.util.*; @@ -89,6 +92,9 @@ @Api(tags = "Screen", description = "������������") public class ScreenController { public static Logger log = Logger.getLogger(ScreenController.class); + + @Resource + private HistoryMapper historyMapper; @Resource AlarmConfigService alarmConfigService; @Resource @@ -2102,9 +2108,28 @@ @ApiOperation(value = "���������������������������", notes = "���������������������������") @ApiImplicitParams(value = { @ApiImplicitParam(name = "monitorPointId", defaultValue = "1", value = "���������id", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "time", value = "���6���(���������2020-03-19)", required = true, paramType = "query", dataType = "String")}) + @ApiImplicitParam(name = "time", value = "������(���������2020-03-19)", required = true, paramType = "query", dataType = "String")}) public ResultBean<List<Map<String, Object>>> getWeatherNextDayDataByRegion(HttpServletRequest request) throws Exception { Map<String, Object> parameters = getParametersStartingWith(request, null); + List<String> sensorKeys=new ArrayList<>(); + sensorKeys.add("e15"); + parameters.put("sensorKeys",sensorKeys); + List<Map<String, Object>> resultList = weatherService.getForecastAndReal(parameters); + return new ResultBean<List<Map<String, Object>>>(resultList); + } + + + @GetMapping("forecastPM") + @ApiOperation(value = "������������������������������", notes = "������������������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "monitorPointId", defaultValue = "1", value = "���������id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "time", value = "������(���������2020-03-19)", required = true, paramType = "query", dataType = "String")}) + public ResultBean<List<Map<String, Object>>> getForecastAndRealPM(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = getParametersStartingWith(request, null); + List<String> sensorKeys=new ArrayList<>(); + sensorKeys.add("e1"); + sensorKeys.add("e2"); + parameters.put("sensorKeys",sensorKeys); List<Map<String, Object>> resultList = weatherService.getForecastAndReal(parameters); return new ResultBean<List<Map<String, Object>>>(resultList); } @@ -2693,7 +2718,7 @@ @ApiImplicitParams(value = { @ApiImplicitParam(name = "monitorPointIds", value = "������monitorid", required = true, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "time", value = "������(���������2020-03-19)", required = true, paramType = "query", dataType = "String")}) - public ResultBean<List<List<Map>>> monitorAVGData(HttpServletRequest request) throws Exception { + public ResultBean<List<List<Map<String,Object>>>> monitorAVGData(HttpServletRequest request) throws Exception { Map<String, Object> parameters = getParametersStartingWith(request, null); String monitorPointIds = (String) parameters.get("monitorPointIds"); String time = (String) parameters.get("time"); @@ -2706,18 +2731,71 @@ String date1= simpleDateFormat.format(date); String date2= simpleDateFormat.format(calendar.getTime()); String[] mIds = monitorPointIds.split(","); - List<List<Map>> lists = new ArrayList<>(); + List<List<Map<String,Object>>> lists = new ArrayList<>(); if (mIds.length==1 && mIds.length!=0){ String mId = mIds[0]; - List<Map> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mId, date1, date2); + List<Map<String,Object>> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mId, date1, date2); + Double maxO3 = Double.parseDouble(dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 1).get("maxO3").toString()); + Map<String,Object> dailyAvgData =new HashMap<>(); + if (dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data")!=""){ + dailyAvgData = (Map<String, Object>) dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data"); + dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue()); + }else { + dailyAvgData= historyHourlyService.getAvgDataByMId(mId, date1, date2); + dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue()); + } + dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); + dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); + Map<String,Object> dayMap = new HashMap<>(); + dayMap.put("data",dailyAvgData); + dayMap.put("time",date1.substring(0,11)); + dataAvbByMIdAndTime.add(dayMap); + for (int i = 0; i <dataAvbByMIdAndTime.size() ; i++) { + if (i!=dataAvbByMIdAndTime.size()-1){ + Map<String, Object> map1 = AQICalculation2.hourlyAQI((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")); + if (Double.parseDouble(map1.get("AQI").toString())>=50.0){ + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants",map1.get("maxSensor")); + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); + }else { + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants","-"); + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); + } + }else { + Map<String, Object> map1 = AQICalculation2.dayAQI((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")); + if (Double.parseDouble(map1.get("AQI").toString())>=50.0){ + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants",map1.get("maxSensor")); + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); + }else { + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("primary_pollutants","-"); + ((Map<String, Object>) dataAvbByMIdAndTime.get(i).get("data")).put("AQI",map1.get("AQI")); + } + } + } lists.add(dataAvbByMIdAndTime); //List<Device> devicesByMonitorPointId = deviceService.getDevicesByMonitorPointId(Integer.valueOf(mId)); }else { for (int i = 0; i <mIds.length ; i++) { - List<Map> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mIds[i], date1, date2); + List<Map<String,Object>> dataAvbByMIdAndTime = historyHourlyService.getDataAvbByMIdAndTime(mIds[i], date1, date2); + Double maxO3 = Double.parseDouble(dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 1).get("maxO3").toString()); + Map<String,Object> dailyAvgData =new HashMap<>(); + if (dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data")!=""){ + dailyAvgData = (Map<String, Object>) dataAvbByMIdAndTime.get(dataAvbByMIdAndTime.size() - 2).get("data"); + dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue()); + }else { + dailyAvgData= historyHourlyService.getAvgDataByMId(mIds[i], date1, date2); + dailyAvgData.put("maxO3_8h",new BigDecimal(maxO3).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue()); + } + dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); + dataAvbByMIdAndTime.remove(dataAvbByMIdAndTime.size() - 1); + Map<String,Object> dayMap = new HashMap<>(); + dayMap.put("data",dailyAvgData); + dayMap.put("time",date1.substring(0,11)); + dataAvbByMIdAndTime.add(dayMap); lists.add(dataAvbByMIdAndTime); } + List<Map<String, Object>> dataByMonitorPoints = historyHourlyService.getDataByMonitorPoints(mIds, date1, date2); + lists.add(dataByMonitorPoints); } - return new ResultBean<List<List<Map>>>(lists); + return new ResultBean<List<List<Map<String,Object>>>>(lists); } } -- Gitblit v1.8.0