From 106dbe94a4bcfc90fc646b0a1e017e23ad2b058b Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Mon, 07 May 2018 15:15:04 +0800
Subject: [PATCH] 三级警报数据
---
src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java | 38 +++++++++++++++++++
src/main/java/com/moral/controller/ReportController.java | 12 +++++-
src/main/resources/mapper/AlarmDailyMapper.xml | 17 ++++++++
src/main/java/com/moral/mapper/AlarmDailyMapper.java | 2 +
src/main/java/com/moral/service/AlarmDailyService.java | 2 +
5 files changed, 68 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java
index 39b6a6a..b95ea24 100644
--- a/src/main/java/com/moral/controller/ReportController.java
+++ b/src/main/java/com/moral/controller/ReportController.java
@@ -82,9 +82,17 @@
@GetMapping("alarm-year")
public ResultBean<List<Integer>> getAlarmDataByYear(HttpServletRequest request) throws Exception {
Map<String, Object> parameters = getParametersStartingWith(request, null);
- List<Integer> alarmDataByYear = alarmDailyService.getAlarmDataByYear(parameters);
+ List<Integer> result = alarmDailyService.getAlarmDataByYear(parameters);
- return new ResultBean<List<Integer>>(alarmDataByYear);
+ return new ResultBean<List<Integer>>(result);
+ }
+
+ @GetMapping("alarm-month")
+ public ResultBean<List<Map<String, Object>>> getAlarmDataByMonth(HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = getParametersStartingWith(request, null);
+ List<Map<String, Object>> result = alarmDailyService.getAlarmDataByMonth(parameters);
+
+ return new ResultBean<List<Map<String, Object>>>(result);
}
}
diff --git a/src/main/java/com/moral/mapper/AlarmDailyMapper.java b/src/main/java/com/moral/mapper/AlarmDailyMapper.java
index 1fc7606..7e4cc6d 100644
--- a/src/main/java/com/moral/mapper/AlarmDailyMapper.java
+++ b/src/main/java/com/moral/mapper/AlarmDailyMapper.java
@@ -12,4 +12,6 @@
List<Map<String, Object>> getAlarmDataByYear(Map<String, Object> parameters);
+ Map<String, Object> getAlarmDataByMonth(Map<String, Object> parameters);
+
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/AlarmDailyService.java b/src/main/java/com/moral/service/AlarmDailyService.java
index 1108fd6..6f42c9d 100644
--- a/src/main/java/com/moral/service/AlarmDailyService.java
+++ b/src/main/java/com/moral/service/AlarmDailyService.java
@@ -10,4 +10,6 @@
List<Integer> getAlarmDataByYear(Map<String, Object> parameters);
+ List<Map<String, Object>> getAlarmDataByMonth(Map<String, Object> parameters);
+
}
diff --git a/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
index de4d232..2fb7446 100644
--- a/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
@@ -5,10 +5,13 @@
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -16,6 +19,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
+import com.moral.entity.Sensor;
import com.moral.mapper.AlarmDailyMapper;
import com.moral.mapper.SensorMapper;
import com.moral.service.AlarmDailyService;
@@ -119,4 +123,38 @@
return Arrays.asList(result);
}
+ @Override
+ public List<Map<String, Object>> getAlarmDataByMonth(Map<String, Object> parameters) {
+ LocalDate localDate = LocalDate.now();
+ List<Sensor> sensors = sensorMapper.selectAll();
+ parameters.put("start", localDate.with(TemporalAdjusters.firstDayOfMonth()));
+ parameters.put("end", localDate.with(TemporalAdjusters.firstDayOfNextMonth()));
+ parameters.put("sensors", sensors);
+ Map<String, Object> map = alarmDailyMapper.getAlarmDataByMonth(parameters);
+ List<Entry<String, Object>> list = new ArrayList<Entry<String,Object>>(map.entrySet());
+ Collections.sort(list, new Comparator<Map.Entry<String, Object>>() {
+ @Override
+ public int compare(Entry<String, Object> o1, Entry<String, Object> o2) {
+ if (o2.getValue().equals(o1.getValue())) {
+ return Integer.compare(Integer.valueOf(o1.getKey().replace("e", "")),Integer.valueOf(o2.getKey().replace("e", "")));
+ }
+ return Integer.valueOf(o2.getValue().toString()).compareTo(Integer.valueOf(o1.getValue().toString()));
+ }
+ });
+ List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
+ for (Entry<String, Object> entry : list) {
+ for (Sensor sensor : sensors) {
+ if (!entry.getValue().toString().equals("0") && entry.getKey().equals(sensor.getSensorKey())) {
+ Map<String, Object> map2 = new HashMap<String, Object>();
+ map2.put(sensor.getName(), entry.getValue());
+ resultList.add(map2);
+ sensors.remove(sensor);
+ break;
+ }
+ }
+ }
+
+ return resultList;
+ }
+
}
diff --git a/src/main/resources/mapper/AlarmDailyMapper.xml b/src/main/resources/mapper/AlarmDailyMapper.xml
index db13fc0..b29f1c5 100644
--- a/src/main/resources/mapper/AlarmDailyMapper.xml
+++ b/src/main/resources/mapper/AlarmDailyMapper.xml
@@ -80,7 +80,7 @@
SELECT
DATE_FORMAT(h.time, '%Y-%m') AS 'time'
<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
- COUNT(json -> '$.${sensorKey}')
+ COUNT(json -> '$.${sensorKey}')
</foreach>
FROM
alarm_daily h
@@ -93,5 +93,20 @@
GROUP BY
DATE_FORMAT(h.time, '%Y-%m')
</select>
+
+ <select id="getAlarmDataByMonth" resultType="java.util.Map">
+ SELECT
+ <foreach collection="sensors" separator="," item="sensor">
+ COUNT(json -> '$.${sensor.sensorKey}') AS '${sensor.sensorKey}'
+ </foreach>
+ FROM
+ alarm_daily h
+ WHERE
+ h.time >= #{start}
+ AND h.time <![CDATA[<]]> #{end}
+ <if test="state != null">
+ AND h.state = #{state}
+ </if>
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0