From 5fed7b486fea656ae9878166e3530b7e29eae7eb Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 30 Aug 2019 09:57:06 +0800
Subject: [PATCH] 站点排名
---
src/main/java/com/moral/service/HistoryService.java | 2
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 32 ++++++++++++++--
src/main/resources/mapper/MonitorPointMapper.xml | 8 ++++
src/main/java/com/moral/controller/MobileController.java | 12 +++--
src/main/java/com/moral/mapper/HistoryMapper.java | 2 +
src/main/resources/mapper/HistoryMapper.xml | 14 +++++++
src/main/java/com/moral/mapper/MonitorPointMapper.java | 4 ++
7 files changed, 64 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/moral/controller/MobileController.java b/src/main/java/com/moral/controller/MobileController.java
index 7ce2738..23a1a9c 100644
--- a/src/main/java/com/moral/controller/MobileController.java
+++ b/src/main/java/com/moral/controller/MobileController.java
@@ -360,16 +360,18 @@
@GetMapping("mointorPointRank")
@ApiOperation(value = "������������������", notes = "������������������")
@ApiImplicitParams(value = {
- @ApiImplicitParam(name = "accountId", value = "������id", required = true, paramType = "query", dataType = "String")
+ @ApiImplicitParam(name = "accountId", value = "������id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensor", value = "������", required = true, paramType = "query", dataType = "String")
})
- public ResultBean<Map<String, Object>> getMointorPointRank(HttpServletRequest request){
+ 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������������������������������
- System.out.println(account);
- historyService.getMointorPointRankByOrganizationId(account);
- return new ResultBean<Map<String, Object>>(account);
+ account.put("sensor", sensor);
+ List<Map<String, Object>> returnList = historyService.getMointorPointRankByOrganizationId(account);
+ return new ResultBean<List<Map<String, Object>>>(returnList);
}
}
diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index 32164b0..2cd3775 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -23,5 +23,7 @@
Map<String, Object> getAVGValueByMacAndTimeslot(@Param("mac")String mac, @Param("starttime")String starttime, @Param("endtime")String endtime);
List<Map<String, Object>> getSensorDataToday(Map<String, Object> parameters);
+
+ List<Map<String, Object>> getAVGSensorRankByMonitorPointIdList(@Param("sensor")String sensor, @Param("monitorPointIdList") List<Object> monitorPointIdList, @Param("before5Time")String before5Time, @Param("endTime")String endTime);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/MonitorPointMapper.java b/src/main/java/com/moral/mapper/MonitorPointMapper.java
index ae3420d..815c197 100644
--- a/src/main/java/com/moral/mapper/MonitorPointMapper.java
+++ b/src/main/java/com/moral/mapper/MonitorPointMapper.java
@@ -2,6 +2,9 @@
import java.util.List;
import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
import com.moral.common.mapper.BaseMapper;
import com.moral.entity.MonitorPoint;
import tk.mybatis.mapper.entity.Example;
@@ -13,4 +16,5 @@
List<Integer> selectOrganizationIds(int id);
List<Integer> selectVersionsById(int id);
Map<String, Object> selectAllById(int id);
+ List<Map<String, Object>> getIdByOrganizationId(@Param("organizationIdList") List<Object> organizationIdList);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/HistoryService.java b/src/main/java/com/moral/service/HistoryService.java
index b619064..b41a7eb 100644
--- a/src/main/java/com/moral/service/HistoryService.java
+++ b/src/main/java/com/moral/service/HistoryService.java
@@ -25,6 +25,6 @@
Map<String, Object> gitHourlyAQIByMacAndTimeslot(Map<String, Object> parameters);
- Map<String, Object> getMointorPointRankByOrganizationId(Map<String, Object> parameters);
+ List<Map<String, Object>> getMointorPointRankByOrganizationId(Map<String, Object> parameters);
}
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index 2b23155..dff8765 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -1,5 +1,6 @@
package com.moral.service.impl;
+import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -33,6 +34,7 @@
import com.moral.entity.Sensor;
import com.moral.mapper.DeviceMapper;
import com.moral.mapper.HistoryMapper;
+import com.moral.mapper.MonitorPointMapper;
import com.moral.mapper.OrganizationRelationMapper;
import com.moral.mapper.SensorMapper;
import com.moral.mapper.SensorUnitMapper;
@@ -61,6 +63,9 @@
@Resource
private OrganizationRelationMapper organizationRelationMapper;
+
+ @Resource
+ private MonitorPointMapper monitorPointMapper;
@Override
public Map<String, Object> getAllSensorAverageByDevice(Map<String, Object> parameters) throws Exception {
@@ -382,7 +387,7 @@
}
@Override
- public Map<String, Object> getMointorPointRankByOrganizationId(Map<String, Object> parameters) {
+ public List<Map<String, Object>> getMointorPointRankByOrganizationId(Map<String, Object> parameters) {
//������������id
String organizationId = parameters.get("organization_id").toString();
//������������������������������������������������������id
@@ -396,11 +401,9 @@
for(int i=0;i<10;i++) {
if(!parentIdList.isEmpty()) {
//������������������������������
- System.out.println("parentIdList:"+parentIdList);
List<Map<String, Object>> childIdList = organizationRelationMapper.getChildIdByParentId(parentIdList);
//���������������id������
parentIdList.clear();
- System.out.println("childIdList:"+childIdList);
//������������id������������������
for (Map<String, Object> map : childIdList) {
organizationIdList.add(map.get("child_id"));
@@ -412,6 +415,27 @@
}
System.out.println(organizationIdList);
- return null;
+ //������������id������������id
+ List<Map<String, Object>> monitorPointIdListMap = monitorPointMapper.getIdByOrganizationId(organizationIdList);
+ //���List<Map<String, Object>>���������List<Object>
+ List<Object> monitorPointIdList = new ArrayList<>();
+ for (Map<String, Object> map : monitorPointIdListMap) {
+ monitorPointIdList.add(map.get("id"));
+ }
+
+ //������������id���������������������������
+ //������������������������
+ Calendar rightNow = Calendar.getInstance();
+ //���������������������������
+ Calendar beforeTime = Calendar.getInstance();
+ beforeTime.add(Calendar.MINUTE, -5);// 5���������������������
+ Date beforeD = beforeTime.getTime();
+ Date end = rightNow.getTime();
+ String endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(end);
+ String before5Time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(beforeD); // ������������������
+
+ String sensor = parameters.get("sensor").toString();
+ List<Map<String, Object>> result = historyMapper.getAVGSensorRankByMonitorPointIdList(sensor, monitorPointIdList, before5Time, endTime);
+ return result;
}
}
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 7aec033..ace511c 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -193,5 +193,19 @@
ORDER BY
time
</select>
+
+ <select id="getAVGSensorRankByMonitorPointIdList" resultType="java.util.Map">
+ SELECT mp.name, AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) sensor
+ FROM device d, history h, monitor_point mp
+ WHERE d.mac=h.mac
+ And mp.id=d.monitor_point_id
+ AND d.monitor_point_id IN
+ <foreach collection="monitorPointIdList" index="index" item="monitorPointId" open="(" separator="," close=")">
+ #{monitorPointId}
+ </foreach>
+ AND h.time BETWEEN #{before5Time} AND #{endTime}
+ GROUP BY d.monitor_point_id
+ ORDER BY AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) DESC
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/MonitorPointMapper.xml b/src/main/resources/mapper/MonitorPointMapper.xml
index 2743e54..1ecd9d7 100644
--- a/src/main/resources/mapper/MonitorPointMapper.xml
+++ b/src/main/resources/mapper/MonitorPointMapper.xml
@@ -148,4 +148,12 @@
FROM monitor_point
WHERE id = #{id}
</select>
+ <select id="getIdByOrganizationId" resultType="java.util.Map">
+ SELECT id
+ FROM monitor_point
+ WHERE organization_id IN
+ <foreach collection="organizationIdList" index="index" item="organizationId" open="(" separator="," close=")">
+ #{organizationId}
+ </foreach>
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0