From 450688a18ced81ec1bd77a535492b12548249e69 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 29 七月 2023 09:51:49 +0800
Subject: [PATCH] 4

---
 src/main/java/com/yssh/controller/WarningAnalyseController.java |    2 
 src/main/java/com/yssh/mapper/QxshMapper.java                   |    5 +
 src/main/java/com/yssh/service/WarningAnalyseService.java       |  133 +-------------------------------------------
 src/main/resources/mapper/QxshMapper.xml                        |   23 +++++--
 4 files changed, 27 insertions(+), 136 deletions(-)

diff --git a/src/main/java/com/yssh/controller/WarningAnalyseController.java b/src/main/java/com/yssh/controller/WarningAnalyseController.java
index b165874..23bd4ef 100644
--- a/src/main/java/com/yssh/controller/WarningAnalyseController.java
+++ b/src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -60,7 +60,7 @@
     }
 
     @ApiOperationSupport(order = 4)
-    @ApiOperation(value = "姣忔棩棰勮鎶ヨ鏁伴噺鍙樺寲瓒嬪娍", notes = "涓�鍛ㄦ瘡鏃ラ璀︺�佹姤璀︽暟閲忕粺璁★紝杩斿洖鍙傛暟alarmDayCount涓轰竴鍛ㄦ瘡鏃ユ姤璀︾粺璁℃暟閲忓垪琛紝鍙傛暟warningDayCount涓轰竴鍛ㄦ瘡鏃ラ璀︾粺璁℃暟閲忓垪琛�")
+    @ApiOperation(value = "涓�鍛ㄩ璀︽姤璀︽暟閲忓彉鍖栬秼鍔�", notes = "涓�鍛ㄩ璀︽姤璀︽暟閲忓彉鍖栬秼鍔匡紝杩斿洖鍙傛暟alarmDayCount涓轰竴鍛ㄦ瘡鏃ユ姤璀︾粺璁℃暟閲忓垪琛紝鍙傛暟warningDayCount涓轰竴鍛ㄦ瘡鏃ラ璀︾粺璁℃暟閲忓垪琛�")
     @GetMapping("/everydayCount")
     public Result everydayCount(@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date) {
         Date endDate = null == date ? new Date() : date;
diff --git a/src/main/java/com/yssh/mapper/QxshMapper.java b/src/main/java/com/yssh/mapper/QxshMapper.java
index e8628c6..c9db586 100644
--- a/src/main/java/com/yssh/mapper/QxshMapper.java
+++ b/src/main/java/com/yssh/mapper/QxshMapper.java
@@ -5,6 +5,7 @@
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author WWW
@@ -17,6 +18,10 @@
 
     public List<Qxsh> selectMonthTop10(String time);
 
+    public List<Map<String, Object>> count7DayForWarn(@Param("start") Integer start, @Param("end") Integer end);
+
+    public List<Map<String, Object>> count7DayForAlarm(@Param("start") Integer start, @Param("end") Integer end);
+
     public List<Qxsh> selectByBeginAndEnd(@Param("start") Integer start, @Param("end") Integer end);
 
     public Qxsh selectByTimeAndName(@Param("time") Integer time, @Param("name") String name);
diff --git a/src/main/java/com/yssh/service/WarningAnalyseService.java b/src/main/java/com/yssh/service/WarningAnalyseService.java
index d42c589..515c4c1 100644
--- a/src/main/java/com/yssh/service/WarningAnalyseService.java
+++ b/src/main/java/com/yssh/service/WarningAnalyseService.java
@@ -202,139 +202,14 @@
         Date startDate = DateUtils.getAPeriodOfTime(endDate, -6, Calendar.DATE);
         Integer start = Integer.parseInt(DateUtils.getYyyyMmDdHh(startDate));
 
-
-
-
         Map<String, List<Map<String, Object>>> result = new HashMap<>();
+        List<Map<String, Object>> warnList = qxshMapper.count7DayForWarn(start, end);
+        result.put("warningDayCount", warnList);
 
-        Map<String, Object> param = new HashMap<String, Object>();
-        Date now = new Date();
-        Date last = DateUtils.getAPeriodOfTime(now, -7, Calendar.DATE); // 涓婂懆鐨勪粖澶�
-        param.put("startTime", DateUtils.getYyyyMmDdHhMmSs(last));
-        param.put("endTime", DateUtils.getYyyyMmDdHhMmSs(now));
-
-        param.put("type", 0);
-        List<Map<String, Object>> alarmDayCount = warningDetailMapper.selectWarningDayCountByMap(param);
-        result.put("alarmDayCount", alarmDayCount);
-
-        param.put("type", 1);
-        List<Map<String, Object>> warningDayCount = warningDetailMapper.selectWarningDayCountByMap(param);
-        result.put("warningDayCount", warningDayCount);
+        List<Map<String, Object>> alarmList = qxshMapper.count7DayForAlarm(start, end);
+        result.put("alarmDayCount", alarmList);
 
         return result;
-    }
-
-    public Map<String, List<Double>> selectEachLocationDataChange() {
-		/*Map<String, List<Double>> result = new LinkedHashMap<>();
-		List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
-		Date nowDate = DateUtils.getNowDate();
-		Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
-		Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getAPeriodOfTime(nowDate, -3, Calendar.HOUR_OF_DAY)));
-		List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
-		checkPoints.forEach(c -> {
-			List<String> tableNames = new ArrayList<>();
-			recordList.forEach(r -> {
-				tableNames.add(r.getTableName());
-			});
-			List<Double> values = new ArrayList<>();
-			if (StringUtils.isNotNull(tableNames)) {
-				List<SuYuanMonitorData> data = suYuanMapper.getMonitorData(tableNames, c.getId());
-				data.forEach(v -> {
-					values.add(v.getValue());
-				});
-				result.put(c.getName(), values);
-			}
-		});
-		return result;*/
-
-        Map<String, List<Double>> result = new LinkedHashMap<>();
-        List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
-        Date nowDate = DateUtils.getNowDate();
-        Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
-        Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getAPeriodOfTime(nowDate, -3, Calendar.HOUR_OF_DAY)));
-        List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
-
-        List<String> tableNames = new ArrayList<>();
-        for (DictRecord dr : recordList) {
-            if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
-                tableNames.add(dr.getTableName());
-            }
-        }
-        if (tableNames.isEmpty()) {
-            return result;
-        }
-
-        for (MonitorPointPosition c : checkPoints) {
-            List<Double> values = new ArrayList<>();
-            List<SuYuanMonitorData> data = suYuanMapper.getMonitorData(tableNames, c.getId());
-            if (null != data && data.size() > 0) {
-                for (SuYuanMonitorData v : data) {
-                    values.add(v.getValue());
-                }
-            }
-            result.put(c.getName(), values);
-        }
-        return result;
-    }
-
-    public List<Map<String, Object>> selectThisMonthLocationValueDataTop10() {
-		/*List<Map<String, Object>> result = new ArrayList<>();
-		List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
-		Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
-		Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
-		List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
-		checkPoints.forEach(c -> {
-			List<String> tableNames = new ArrayList<>();
-			recordList.forEach(r -> {
-				tableNames.add(r.getTableName());
-			});
-			Map<String, Object> map = suYuanMapper.getMonthValueDataMax(tableNames, c.getId());
-			if (StringUtils.isNotNull(map) && StringUtils.isNotEmpty(map)) {
-				String suYuanId = map.get("id").toString();
-				map.put("name", commonService.select3dCheckPointById(suYuanId).getName());
-				map.remove("id");
-			}
-			result.add(map);
-		});
-		return CalculateUtils.sort(result, "value", true).subList(0, 10);*/
-
-        List<Map<String, Object>> result = new ArrayList<>();
-        List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
-        Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthStart()));
-        Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getMonthEnd()));
-        //startTime = 2023040100L;
-        //endTime = 2023043023L;
-
-        List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
-
-        List<String> tableNames = new ArrayList<>();
-        for (DictRecord dr : recordList) {
-            if (suYuanMapper.isTableExists(dr.getTableName()) > 0) {
-                tableNames.add(dr.getTableName());
-            }
-        }
-        if (tableNames.isEmpty()) {
-            return result;
-        }
-
-        /*List<String> idList = new ArrayList<>();
-        for (MonitorPointPosition c : checkPoints) {
-            idList.add("'" + c.getId() + "'");
-        }
-        String ids = String.join(",", idList);*/
-
-        for (MonitorPointPosition c : checkPoints) {
-            Map<String, Object> map = suYuanMapper.getMonthValueDataMax(tableNames, c.getId());
-            if (null != map && map.size() > 0) {
-                //String suYuanId = map.get("id").toString();
-                //map.put("name", commonService.select3dCheckPointById(suYuanId).getName());
-                //map.remove("id");
-                map.put("name", c.getName());
-                result.add(map);
-            }
-        }
-
-        return CalculateUtils.sort(result, "value", true).subList(0, 10);
     }
 
     /**
diff --git a/src/main/resources/mapper/QxshMapper.xml b/src/main/resources/mapper/QxshMapper.xml
index 93e3a28..af93f53 100644
--- a/src/main/resources/mapper/QxshMapper.xml
+++ b/src/main/resources/mapper/QxshMapper.xml
@@ -19,12 +19,23 @@
         limit 10;
     </select>
 
-    <select id="count7DayForWarn" resultType="com.yssh.entity.Qxsh">
-        select id, name, format(value, 2) "value", time
-        from yssh_qxsh
-        where time between #{start} and #{end}
-            and value > (select jcyj from alert_config limit 1) and name like 'AI-%'
-        order by time, name;
+    <select id="count7DayForWarn" resultType="java.util.Map">
+        with rs as (
+            select left(time, 8) "createTime"
+            from yssh_qxsh
+            where time between #{start} and #{end} and name like 'AI-%'
+                and value > (select jcyj from alert_config limit 1) and value &lt;= (select jcbj from alert_config limit 1)
+        )
+        select createTime, count(*) "num" from rs group by createTime order by createTime;
+    </select>
+
+    <select id="count7DayForAlarm" resultType="java.util.Map">
+        with rs as (
+            select left(time, 8) "createTime"
+            from yssh_qxsh
+            where time between #{start} and #{end} and name like 'AI-%' and value > (select jcbj from alert_config limit 1)
+        )
+        select createTime, count(*) "num" from rs group by createTime order by createTime;
     </select>
 
     <select id="selectByBeginAndEnd" resultType="com.yssh.entity.Qxsh">

--
Gitblit v1.9.3