From d7ee12cb208473741f79b64505adccd0653e4654 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Tue, 27 Oct 2020 13:44:28 +0800 Subject: [PATCH] vue页面增加误差率参数,沧州剔除非本公司设备显示,报表接口更新 --- src/main/java/com/moral/service/HistoryMinutelyService.java | 1 src/main/java/com/moral/controller/ScreenController.java | 28 +++++++++ src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 93 ++++++++++++------------------ src/main/java/com/moral/service/impl/WeatherServiceImpl.java | 16 +++++ 4 files changed, 79 insertions(+), 59 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index da6a8cc..1b6ff2b 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -1060,7 +1060,34 @@ public ResultBean<List<MonitorPoint>> getMonitorPointsAndDevicesByRegion(HttpServletRequest request) throws Exception { Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + String regionCode = parameters.get("regionCode").toString(); List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters); + + //������������������������������ + if (regionCode.startsWith("1309")) { + List<Integer> orgIds = new ArrayList<>(); + Collections.addAll(orgIds, 60, 65, 159, 165, 166); + Iterator<MonitorPoint> iter = monitorPoints.iterator(); + while (iter.hasNext()) { + MonitorPoint next = iter.next(); + Integer mpId = next.getId(); + Integer orgId = next.getOrganizationId(); + if (!orgIds.contains(orgId)) { + iter.remove(); + } else { + if (orgId == 60) { + if (mpId != 56) { + iter.remove(); + } + } else if (orgId == 65) { + if (mpId != 83 && mpId != 84) { + iter.remove(); + } + } + } + } + } + //������������monitorPoint������������������device.getName()������������ for (MonitorPoint monitorPoint : monitorPoints) { List<Device> deviceList = monitorPoint.getDevices(); @@ -2520,7 +2547,6 @@ @ApiImplicitParam(name = "endTime", value = "������������(���������2020-08-04)", required = false, paramType = "query", dataType = "String")}) public ResultBean<List<Map<String, Object>>> getAllDeviceDataToExcel(HttpServletRequest request) throws Exception { Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - ParameterUtils.getTimeType4Time(parameters); List<Map<String, Object>> list = historyMinutelyService.getAllDeviceDataToExcel(parameters); return new ResultBean<List<Map<String, Object>>>(list); } diff --git a/src/main/java/com/moral/service/HistoryMinutelyService.java b/src/main/java/com/moral/service/HistoryMinutelyService.java index fe65a54..35be96b 100644 --- a/src/main/java/com/moral/service/HistoryMinutelyService.java +++ b/src/main/java/com/moral/service/HistoryMinutelyService.java @@ -38,7 +38,6 @@ List<Map<String, Object>> getMultiDeviceSensorData(Map<String, Object> parameters) throws Exception; - List<Map<String, Object>> getAllDeviceDataToExcel(Map<String, Object> parameters) throws Exception; } diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java index b3056f9..66aed92 100644 --- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java @@ -1001,6 +1001,8 @@ @Override public List<Map<String, Object>> getAllDeviceDataToExcel(Map<String, Object> parameters) throws Exception { + Calendar cal = Calendar.getInstance(); + int length = ((String) parameters.get("startTime")).split("-").length; String time = parameters.remove("startTime").toString(); String timeb; if (parameters.get("endTime") == null) { @@ -1008,65 +1010,44 @@ } else { timeb = parameters.remove("endTime").toString(); } + String dateFormat = ""; + String typeFormat = ""; + String timeUnits = "daily"; + int i = 0; + if (length == 1) { + dateFormat = "yyyy"; + typeFormat = "%Y"; + i = Calendar.YEAR; + } else if (length == 2) { + dateFormat = "yyyy-MM"; + typeFormat = "%Y-%m"; + i = Calendar.MONTH; + } else if (length == 3) { + dateFormat = "yyyy-MM-dd"; + typeFormat = "%Y-%m-%d"; + i = Calendar.DAY_OF_MONTH; + } else if (length == 4) { + dateFormat = "yyyy-MM-dd HH"; + typeFormat = "%Y-%m-%d %H"; + timeUnits = "hourly"; + i = Calendar.HOUR_OF_DAY; + time = time.substring(0, 10) + " " + time.substring(11, 13); + timeb = timeb.substring(0, 10) + " " + timeb.substring(11, 13); + } parameters.put("time", time); parameters.put("timeb", timeb); - Calendar cal = Calendar.getInstance(); - int length = time.length(); - String type = ""; - if (length == 10) { - type = "day"; - } else if (length == 7) { - type = "month"; - } else if (length == 4) { - type = "year"; - } else if (length == 13) { - type = "hour"; - } - parameters.put("type", type); - String[] endTimes = timeb.split("-"); - String dateFormat = ""; - String beginTime = ""; - String endTime = ""; - Integer year = Integer.valueOf(endTimes[0]); - int i = 0; - if (type.equals("year")) { - dateFormat = "yyyy-MM"; - beginTime = time + "-01"; - timeb = Integer.valueOf(timeb) + 1 + ""; - endTime = timeb + "-01"; - i = Calendar.MONTH; - } else if (type.equals("month")) { - dateFormat = "yyyy-MM-dd"; - beginTime = time + "-01"; - i = Calendar.DAY_OF_MONTH; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); - cal.setTime(sdf.parse(timeb)); - cal.add(Calendar.MONTH, 1); - timeb = sdf.format(cal.getTime()); - endTime = timeb + "-01"; - } else if (type.equals("day")) { - dateFormat = "yyyy-MM-dd HH"; - beginTime = time + " 00"; - i = Calendar.HOUR_OF_DAY; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - cal.setTime(sdf.parse(timeb)); - cal.add(Calendar.DAY_OF_MONTH, 1); - timeb = sdf.format(cal.getTime()); - endTime = timeb + " 00"; - } else if (type.equals("hour")) { - dateFormat = "yyyy-MM-dd HH:mm"; - beginTime = time + ":00:00"; - i = Calendar.MINUTE; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); - cal.setTime(sdf.parse(timeb)); - cal.add(Calendar.HOUR_OF_DAY, 1); - timeb = sdf.format(cal.getTime()); - endTime = timeb + ":00:00"; - } + SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); - cal.setTime(sdf.parse(beginTime)); + cal.setTime(sdf.parse(timeb)); + cal.add(i, 1); + Date endTime = cal.getTime(); + parameters.put("format", dateFormat); + parameters.put("typeFormat", typeFormat); + parameters.put("timeUnits", timeUnits); + parameters.put("field", i); + cal.setTime(sdf.parse(time)); List<String> times = new ArrayList<>(); - for (long d = cal.getTimeInMillis(); d < sdf.parse(endTime).getTime(); cal.set(i, cal.get(i) + 1), d = cal.getTimeInMillis()) { + for (long d = cal.getTimeInMillis(); d < endTime.getTime(); cal.set(i, cal.get(i) + 1), d = cal.getTimeInMillis()) { String format = sdf.format(d); times.add(format); } @@ -1074,7 +1055,7 @@ List<String> keys = Arrays.asList(sensorKeys); parameters.put("sensors", keys); parameters.put("sensorKeys", keys); - parameters.put("timeb", timeb); + parameters.put("timeb", sdf.format(endTime)); int mpId = Integer.valueOf(parameters.get("monitorPoint").toString()); String monitorPointName = monitorPointMapper.getMonitorName(mpId); List<Map<String, Object>> devices = deviceMapper.getDevicesByMpId(mpId); diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java index 8c83b3b..2a64f27 100644 --- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java +++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java @@ -569,6 +569,7 @@ //������������ int x = 0; + parameters.put("cityCode", code); List<Map<String, Object>> realList = realWeatherMapper.getRealWeather(parameters); if (realList.size() == 0) { //1-23��������������������������������������������������������������������� @@ -670,7 +671,7 @@ listMap.put("city", name); String time1 = listMap.get("time").toString(); for (Map<String, Object> aqiMap : realAqilist) { - if(time1.equals(aqiMap.get("time"))){ + if (time1.equals(aqiMap.get("time"))) { listMap.putAll(aqiMap); } } @@ -841,6 +842,19 @@ map.put("river", geographyMap.get("river").toString()); } } + for (int i = 0; i < resultList.size(); i = i + 2) { + Map<String, Object> foreMap = resultList.get(i); + Map<String, Object> realMap = resultList.get(i + 1); + if (foreMap.get("O3C") != null && realMap.get("O3C") != null) { + Double foreO3 = Double.valueOf(foreMap.get("O3C").toString()); + Double realO3 = Double.valueOf(realMap.get("O3C").toString()); + int round = (int) Math.round((realO3 - foreO3) / realO3 * 100); + if (round < 0) { + round = -round; + } + realMap.put("errorRate", round + "%"); + } + } return resultList; } } -- Gitblit v1.8.0