From 5476f8bcf411ce654c02fbd34b9086518adbd917 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 10 Sep 2020 14:25:41 +0800
Subject: [PATCH] 三天数据对比
---
src/main/java/com/moral/mapper/HistoryHourlyMapper.java | 6 ++
src/main/java/com/moral/service/HistoryHourlyService.java | 2
src/main/resources/mapper/HistoryHourlyMapper.xml | 3 +
src/main/java/com/moral/controller/ScreenController.java | 22 ++++++
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java | 91 +++++++++++++++++++++++++++++-
5 files changed, 119 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 68e80ef..e35712c 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -86,6 +86,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView;
import org.xml.sax.InputSource;
@@ -175,6 +176,9 @@
@Resource
private QualityDailyService qualityDailyService;
+
+ @Resource
+ private RestTemplate restTemplate;
/**
* Screen login. ������������
@@ -1996,6 +2000,8 @@
List list=deviceService.byMonitorIdGetDeviceAndWind(monitorPointId,time,table);
return list;
}
+
+ //������������
@GetMapping("/windAndDeviceDataByArea")
@ResponseBody
public List windAndDeviceDataByArea(String monitorPointId) {
@@ -2012,8 +2018,6 @@
mon=""+month;
}
String table="history_minutely_"+year+mon;
- log.info(table);
- log.info(time);
List list=deviceService.byMonitorIdGetDeviceAndWindSpecial(monitorPointId,time,table);
return list;
}
@@ -2213,4 +2217,18 @@
return new ResultBean<List<Map<String, Object>>>(list);
}
+
+
+ @GetMapping("contrastFactor")
+ @ApiOperation(value = "������������", notes = "������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensor", value = "������", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "time", value = "������(���������2020-03-19���20���21)", required = true, paramType = "query", dataType = "String")})
+ public ResultBean<List<Map<String, Object>>> contrastFactor(HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = getParametersStartingWith(request, null);
+ List list=historyHourlyService.getDataByMacAndTime(parameters);
+ //System.out.println(list);
+ return new ResultBean<List<Map<String, Object>>>(list);
+ }
}
diff --git a/src/main/java/com/moral/mapper/HistoryHourlyMapper.java b/src/main/java/com/moral/mapper/HistoryHourlyMapper.java
index ee570d4..a7f3c4c 100644
--- a/src/main/java/com/moral/mapper/HistoryHourlyMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryHourlyMapper.java
@@ -1,6 +1,7 @@
package com.moral.mapper;
import org.apache.ibatis.annotations.Param;
+import org.springframework.security.access.method.P;
import java.util.List;
import java.util.Map;
@@ -24,4 +25,9 @@
List<Map<String, Object>> getDataByTimeSlot(@Param("mac") String mac, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<Map<String,Object>> getTVOCByMacs(Map<String,Object> params);
+
+ List<Map> getDataByMacAndTime(@Param("mac") String mac,
+ @Param("sensor") String sensor,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime);
}
diff --git a/src/main/java/com/moral/service/HistoryHourlyService.java b/src/main/java/com/moral/service/HistoryHourlyService.java
index 2d6f9f5..ded5838 100644
--- a/src/main/java/com/moral/service/HistoryHourlyService.java
+++ b/src/main/java/com/moral/service/HistoryHourlyService.java
@@ -24,4 +24,6 @@
Map<String,Object> getDataByMac(String mac,String time);
List<Map<String, Object>> getDataByTimeSlot(String mac, String startTime, String endTime) throws Exception;
+
+ List<Map> getDataByMacAndTime(Map param);
}
diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
index 710920a..8d57a40 100644
--- a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -1,9 +1,9 @@
package com.moral.service.impl;
import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
@@ -121,6 +121,91 @@
}
@Override
+ public List<Map> getDataByMacAndTime(Map param) {
+ String mac = param.get("mac").toString();
+ String sensor = param.get("sensor").toString();
+ String time = param.get("time").toString();
+ String[] times = time.split("���");
+
+ String time1=times[0].substring(0,8);
+ for (int i = 0; i <times.length ; i++) {
+ if (i!=0){
+ times[i]=time1+""+times[i];
+ }
+ }
+ List<List> lists = new ArrayList<List>();
+ List<Map> perList = new ArrayList<Map>();
+ try {
+ for (String perTime : times) {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//���������������MM
+ Date date = simpleDateFormat.parse(perTime);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ calendar.add(Calendar.DATE, 1);
+ Date date1 = calendar.getTime();
+ String date2 = simpleDateFormat.format(date1);
+ List<Map> list = historyHourlyMapper.getDataByMacAndTime(mac, sensor, perTime, date2);
+ List<Map> newList = new ArrayList<Map>();
+ //System.out.println(list);
+ for (int i = 0; i < 24; i++) {
+ Map map=new HashMap();
+ if (i < 10) {
+ map.put("time","0"+i);
+ map.put(sensor,"");
+ newList.add(map);
+ }else {
+ map.put("time",""+i);
+ map.put(sensor,"");
+ newList.add(map);
+ }
+ }
+ //System.out.println(newList);
+ if (list.size() <= 24 && list.size() >= 0) {
+ for (int i = 0; i <list.size() ; i++) {
+ String timeS = list.get(i).get("time").toString().substring(11, 13);
+ for (Map map : newList) {
+ if (timeS.equals(map.get("time"))){
+ map.replace(sensor,"",list.get(i).get(sensor));
+ }
+ }
+ }
+ }
+ lists.add(newList);
+ }
+
+ for (int i = 0; i < 24; i++) {
+ Map<String, Object> map = new HashMap<>();
+ List iList = new ArrayList();
+ for (List<Map> list : lists) {
+ String timeS = list.get(i).get("time").toString();
+ if (i < 10) {
+ if (timeS.equals("0" + i)) {
+ iList.add(list.get(i).get(sensor));
+ } else {
+ iList.add("");
+ }
+ } else {
+ if (timeS.equals(i + "")) {
+ iList.add(list.get(i).get(sensor));
+ } else {
+ iList.add("");
+ }
+ }
+ }
+ map.put("value", iList);
+ map.put("time", i);
+ perList.add(map);
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ for (int i = 0; i <perList.size() ; i++) {
+ perList.get(i).replace("time",perList.get(i).get("time"),(Integer) perList.get(i).get("time")+1);
+ }
+ return perList;
+ }
+
+ @Override
public Point getDirPoint(Map<String, Object> parameters) throws Exception {
Map<String, Object> pollutionSourceData = getPollutionSourceDataByHour(parameters);
if (MapUtils.isEmpty(pollutionSourceData)) {
diff --git a/src/main/resources/mapper/HistoryHourlyMapper.xml b/src/main/resources/mapper/HistoryHourlyMapper.xml
index bcd20eb..e57f1c8 100644
--- a/src/main/resources/mapper/HistoryHourlyMapper.xml
+++ b/src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -98,4 +98,7 @@
and h.json->'$.e17[0]' is not null
group by h.time
</select>
+ <select id="getDataByMacAndTime" resultType="java.util.Map">
+ SELECT DATE_FORMAT(`time`,'%Y-%m-%d %H:%i:%s') as `time`,json->'$.${sensor}[0]' as ${sensor} FROM `history_hourly` where `mac`=#{mac} and `time`>=#{startTime} and `time`<#{endTime}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0