From d108d61f6735e93a2a7377832b6eb056ca8f0d4e Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 13 六月 2023 16:10:20 +0800
Subject: [PATCH] 增加管线泄漏报警查询接口 增加管线泄漏报警查看接口

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java |   31 ++++++++++++++-
 ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java             |    6 +++
 ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml                   |    2 
 ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml                             |   27 +++++++++++++
 ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/domain/ArdAlarmTube.java                   |    9 ++++
 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java       |    2 
 6 files changed, 71 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index 55ace11..3006be4 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -46,6 +46,8 @@
     @Resource
     ArdAlarmStealelecMapper ardAlarmStealelecMapper;
     @Resource
+    ArdAlarmTubeMapper ardAlarmTubeMapper;
+    @Resource
     IArdAlarmTubeService ardAlarmTubeService;
     @Resource
     ArdTubesMapper ardTubesMapper;
@@ -59,7 +61,7 @@
         String refreshTime = configService.selectConfigByKey("refreshTime");
         switch (condition.getCommand()) {
             case 1001:
-                List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectAllByCommandArdAlarmStealelecList(refreshTime);
+                List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectListAllByCommand(refreshTime);
                 return ardAlarmStealelecs.stream()
                         .map(ardAlarmStealelec -> {
                             GlobalAlarmData globalAlarmData = new GlobalAlarmData()
@@ -74,6 +76,22 @@
                             return globalAlarmData;
                         })
                         .collect(Collectors.toList());
+            case 1014:
+                List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
+                return ardAlarmTubes.stream()
+                        .map(ardAlarmTube -> {
+                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
+                                    .setId(ardAlarmTube.getId())
+                                    .setName(ardAlarmTube.getTubeName())
+                                    .setAlarmTime(ardAlarmTube.getAlarmTime())
+                                    .setLongitude(ardAlarmTube.getLongitude())
+                                    .setLatitude(ardAlarmTube.getLatitude())
+                                    .setAltitude(ardAlarmTube.getAltitude())
+                                    .setCount(ardAlarmTube.getCount())
+                                    .setTotal(ardAlarmTube.getTotal());
+                            return globalAlarmData;
+                        })
+                        .collect(Collectors.toList());
             default:
                 return null;
         }
@@ -84,14 +102,21 @@
         SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         switch (condition.getCommand()) {
             case 1001:
-                String id = condition.getId();
-                ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(id);
+                ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(condition.getId());
                 if(StringUtils.isNotNull(ardAlarmStealelec)) {
                     String describe = ardAlarmStealelec.getDescribe();
                     String startTime = fmt.format(ardAlarmStealelec.getStartTime());
                     int i = ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime());
                     return ardAlarmStealelec;
                 }
+            case 1014:
+                ArdAlarmTube ardAlarmTube = ardAlarmTubeMapper.selectArdAlarmTubeById(condition.getId());
+                if(StringUtils.isNotNull(ardAlarmTube)) {
+                    String tubeId = ardAlarmTube.getTubeId();
+                    String alarmTime = fmt.format(ardAlarmTube.getAlarmTime());
+                    int i = ardAlarmTubeMapper.updateViewTimeByTubeId(tubeId, alarmTime, DateUtils.getTime());
+                    return ardAlarmTube;
+                }
             default: return null;
         }
     }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
index b16eca7..ba0012f 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
@@ -13,6 +13,6 @@
     ArdAlarmStealelec selectByPrimaryKey(String id);
     List<ArdAlarmStealelec> selectRealByCondition(@Param("refreshTime")String refreshTime,@Param("deptId")Long deptId);
     List<ArdAlarmStealelec> selectHistoryByCondition(GlobalAlarmCondition condition);
-    List<ArdAlarmStealelec> selectAllByCommandArdAlarmStealelecList(@Param("refreshTime")String refreshTime);
+    List<ArdAlarmStealelec> selectListAllByCommand(@Param("refreshTime")String refreshTime);
     int updateViewTimeByDescribe(@Param("describe")String describe,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
 }
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/domain/ArdAlarmTube.java b/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/domain/ArdAlarmTube.java
index d3a1e74..5a177f5 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/domain/ArdAlarmTube.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/domain/ArdAlarmTube.java
@@ -86,5 +86,12 @@
     @Excel(name = "鏌ョ湅鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date viewTime;
 
-
+    /**
+     * 鎶ヨ鎬绘暟
+     */
+    private Integer total;
+    /**
+     * 鏈鎶ヨ鏁伴噺
+     */
+    private Integer count;
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
index 3347f00..86c0041 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
@@ -1,7 +1,10 @@
 package com.ruoyi.alarm.tubeAlarm.mapper;
 
 import java.util.List;
+
+import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec;
 import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -59,4 +62,7 @@
      * @return 缁撴灉
      */
     public int deleteArdAlarmTubeByIds(String[] ids);
+
+    public List<ArdAlarmTube> selectListAllByCommand(@Param("refreshTime")String refreshTime);
+    public int updateViewTimeByTubeId(@Param("tubeId")String tubeId,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
 }
diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
index 07e5183..dcc4c42 100644
--- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -129,4 +129,31 @@
             #{id}
         </foreach>
     </delete>
+    <select id="selectListAllByCommand" resultMap="ArdAlarmTubeResult">
+        SELECT T.*
+        FROM (
+                 SELECT aat.ID,
+                        aat.tube_id,
+                        aat.tube_name,
+                        aat.alarm_time,
+                        aat.longitude,
+                        aat.latitude,
+                        aat.altitude,
+                        ROW_NUMBER() OVER ( PARTITION BY aat.tube_id ORDER BY aat.alarm_time DESC ) AS rn,
+                         COUNT(CASE WHEN aat.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aat.tube_id ) AS COUNT,
+		            COUNT ( aat.alarm_time ) OVER ( PARTITION BY tube_id ) AS total
+                 FROM
+                     ard_alarm_tube aat
+                 WHERE
+                     aat.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
+             ) T
+        WHERE T.rn = 1
+    </select>
+    <update id="updateViewTimeByTubeId" parameterType="String">
+        update ard_alarm_tube
+        set view_time=#{viewTime}
+        where tube_id = #{tubeId}
+          and alarm_time&lt;=#{alarmTime}
+          and view_time is null
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml b/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
index bfc4dcf..0e2a338 100644
--- a/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
+++ b/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
@@ -40,7 +40,7 @@
             </if>
         </where>
     </select>
-    <select id="selectAllByCommandArdAlarmStealelecList" resultMap="BaseResultMap">
+    <select id="selectListAllByCommand" resultMap="BaseResultMap">
         SELECT T.*
         FROM (
                  SELECT aas.ID,

--
Gitblit v1.9.3