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