From 44858471387cb6808fb086813d5987daf9e5d77a Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 13 九月 2024 14:05:16 +0800
Subject: [PATCH] 运行监控增加省厅条件、点位在线取point online,统计增加数据权限

---
 ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java         |    4 +-
 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java            |    4 +-
 ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java    |   14 +++----
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java               |    4 +
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml                    |   46 +++++++++++++++--------
 ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java |    8 ++-
 6 files changed, 48 insertions(+), 32 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java
index aae75a5..3a03f64 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java
@@ -17,6 +17,7 @@
  * @date 2024-03-04
  */
 @Data
+//TODO:鏀瑰瓧鍏歌澶囩姸鎬�
 public class TMonitorVO extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
@@ -226,7 +227,8 @@
     private String error;
     private String unitName;
     private LocalDate mongoCreateTime;
-
+    /** 寮傚父鎭㈠鐩戞帶鏃堕棿澶╂暟 */
+    private String time;
     /**
      * 褰撴棩鎺ユ敹鍒扮殑褰撴棩鎶撴媿閲�
      */
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java b/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java
index 3ac12c1..b79c732 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/TMonitorController.java
@@ -32,7 +32,7 @@
     /**
      * 鏌ヨ璁惧璧勪骇鍒楄〃
      */
-   @PreAuthorize("@ss.hasPermi('system:monitor:list')")
+    @PreAuthorize("@ss.hasPermi('system:monitor:list')")
     @GetMapping("/list")
     public TableDataInfo list(TMonitorVO tMonitor)
     {
@@ -101,12 +101,10 @@
      * 鑾峰彇瑙嗛璁惧缁熻鏁�
      */
     @PreAuthorize("@ss.hasPermi('system:monitor:list')")
-    @GetMapping("/getVideoCount/{cameraFunType}")
-    public AjaxResult getVideoCount(@PathVariable String cameraFunType)
+    @GetMapping("/getVideoCount")
+    public AjaxResult getVideoCount(TMonitorVO monitor)
     {
-        TMonitor tMonitor = new TMonitor();
-        tMonitor.setCameraFunType(cameraFunType);
-        return success(tMonitorService.getVideoCount(tMonitor));
+        return success(tMonitorService.getVideoCount(monitor));
     }
 
     /**
@@ -114,9 +112,9 @@
      */
     @PreAuthorize("@ss.hasPermi('system:monitor:list')")
     @GetMapping("/recoveryException")
-    public AjaxResult recoveryException()
+    public AjaxResult recoveryException(TMonitorVO monitor)
     {
-        return success(tMonitorService.recoveryException());
+        return success(tMonitorService.recoveryException(monitor));
     }
 
 
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index bda6714..225637e 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -86,14 +86,14 @@
      * @param tMonitor 鏉′欢
      * @return 缁熻鏁�
      */
-    Map<String, String> getVideoCount(TMonitor tMonitor);
+    Map<String, String> getVideoCount(TMonitorVO tMonitor);
 
     /**
      * 鑾峰彇鎭㈠寮傚父璁惧
      * @param time 鏃堕棿
      * @return 鏁版嵁
      */
-    Map<String, String> recoveryException(String time);
+    Map<String, String> recoveryException(TMonitorVO monitor);
 
     /**
      * 鑾峰彇鎭㈠寮傚父鎸佺画鍏虫敞璁惧
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
index d0246df..d3341e9 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -75,13 +75,13 @@
      * @param tMonitor 鏉′欢
      * @return 杩斿洖涓�涓寘鍚棰戞暟閲忕殑Map瀵硅薄锛屽叾涓璳ey涓虹粺璁℃寚鏍囷紝value涓哄搴斿姛鑳界被鍨嬩笅鐨勭粺璁℃暟閲忋��
      */
-    Map<String, String> getVideoCount(TMonitor tMonitor);
+    Map<String, String> getVideoCount(TMonitorVO tMonitor);
 
     /**
      * 鑾峰彇寮傚父鎭㈠瑙嗛璁惧缁熻鏁�
      * @return 鏁版嵁
      */
-    Map<String, String> recoveryException();
+    Map<String, String> recoveryException(TMonitorVO monitor);
 
     /**
      * 鑾峰彇棣栭〉璁惧鎶樼嚎鍥�
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index e03649d..771bfc1 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -192,14 +192,16 @@
 
     @Override
     @DataScope(deptAlias = "d",userAlias = "u")
-    public Map<String, String> getVideoCount(TMonitor tMonitor) {
+    public Map<String, String> getVideoCount(TMonitorVO tMonitor) {
         return tMonitorMapper.getVideoCount(tMonitor);
     }
 
     @Override
-    public Map<String, String> recoveryException() {
+    @DataScope(deptAlias = "d",userAlias = "u")
+    public Map<String, String> recoveryException(TMonitorVO monitor) {
         String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time");
-        return tMonitorMapper.recoveryException(time);
+        monitor.setTime(time);
+        return tMonitorMapper.recoveryException(monitor);
     }
 
     @Override
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 5bfc1f0..f5a4c39 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -98,15 +98,20 @@
 
     <select id="selectTMonitorList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
         select m.id, m.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude,
-        camera_capture_area, on_state, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag,
+        camera_capture_area, p.online as onState, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag,
         IF(COUNT(w.id) OVER() > 0, '鏄�', '鍚�') AS error, u.unit_name from t_monitor m
         left join t_yw_point p on m.serial_number = p.serial_number and p.deleted = 0
         left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
         left join t_work_order w on m.serial_number = w.serial_number and w.deleted = 0
         left join t_yw_unit u on p.unit_id = u.id and u.deleted = 0
         <where>
+
             <if test="serialNumber != null  and serialNumber != ''">and m.serial_number = #{serialNumber}</if>
-            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
+            <if test="name != null  and name != ''">
+            and (name like concat('%', #{name}, '%')
+            or m.serial_number like concat('%', #{name}, '%')
+            or u.unit_name like concat('%', #{name}, '%')) </if>
+            <if test="provinceTag != null ">and p.province_tag = #{provinceTag}</if>
             <if test="siteType != null ">and site_type = #{siteType}</if>
             <if test="macAddr != null  and macAddr != ''">and mac_addr = #{macAddr}</if>
             <if test="ip != null  and ip != ''">and ip = #{ip}</if>
@@ -118,7 +123,7 @@
             <if test="cameraCaptureArea != null  and cameraCaptureArea != ''">and camera_capture_area =
                 #{cameraCaptureArea}
             </if>
-            <if test="onState != null ">and on_state = #{onState}</if>
+            <if test="onState != null ">and p.online = #{onState}</if>
             <if test="civilCode != null  and civilCode != ''">and civil_code = #{civilCode}</if>
             <if test="integratedDevice != null ">and integrated_device = #{integratedDevice}</if>
             <if test="cameraBrand != null ">and camera_brand = #{cameraBrand}</if>
@@ -140,8 +145,8 @@
             <if test="hybm != null  and hybm != ''">and hybm = #{hybm}</if>
             <if test="lxbm != null ">and lxbm = #{lxbm}</if>
             <if test="recovery != null ">and p.recovery = #{recovery}</if>
+            ${params.dataScope}
         </where>
-        ${params.dataScope}
     </select>
 
     <select id="selectMonitorVOList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
@@ -307,26 +312,35 @@
 
     <select id="getVideoCount" resultType="java.util.Map">
         SELECT count(*) AS totalPosts,
-        IFNULL(SUM(IF(on_state = 1, 1, 0)), 0) AS totalMembers,
-        IFNULL(SUM(IF(on_state = 2, 1, 0)), 0) AS postsPercentage,
-        IFNULL(ROUND(SUM(IF(on_state = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage
-        FROM t_monitor m
+        IFNULL(SUM(IF(p.online = 1, 1, 0)), 0) AS totalMembers,
+        IFNULL(SUM(IF(p.online = 0, 1, 0)), 0) AS postsPercentage,
+        IFNULL(ROUND(SUM(IF(p.online, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage FROM t_monitor m
+        left join t_yw_point p on m.serial_number = p.serial_number
+        left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
         <where>
             camera_fun_type like concat('%', #{cameraFunType}, '%')
+            <if test="provinceTag!=null">
+                and p.province_tag = #{provinceTag}
+            </if>
+            ${params.dataScope}
         </where>
     </select>
 
     <select id="recoveryException" resultType="java.util.Map">
-        <![CDATA[
         SELECT count(*)                                                          AS totalPosts,
-               IFNULL(SUM(IF(on_state = 1, 1, 0)), 0)                            AS totalMembers,
-               IFNULL(SUM(IF(on_state = 2, 1, 0)), 0)                            AS postsPercentage,
-               IFNULL(ROUND(SUM(IF(on_state = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage
+               IFNULL(SUM(IF(p.online = 1, 1, 0)), 0)                            AS totalMembers,
+               IFNULL(SUM(IF(p.online = 0, 1, 0)), 0)                            AS postsPercentage,
+               IFNULL(ROUND(SUM(IF(p.online = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage
         FROM t_monitor t
-                 LEFT JOIN t_yw_point p ON t.serial_number = p.serial_number
-        WHERE p.recovery = 1
-           OR TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <= #{time}
-        ]]>
+        LEFT JOIN t_yw_point p ON t.serial_number = p.serial_number
+        left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
+        <where>
+            (p.recovery = 1 OR TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <![CDATA[<=]]> #{time})
+             <if test="provinceTag!=null">
+                and p.province_tag = #{provinceTag}
+             </if>
+        ${params.dataScope}
+        </where>
     </select>
 
     <select id="selectRecoveryMonitor" resultType="com.ycl.platform.domain.vo.TMonitorVO">

--
Gitblit v1.8.0