From e4c69bcd4ba18dd022dd4ed86da96c5e4b8b3150 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 14 十月 2024 02:13:44 +0800
Subject: [PATCH] 动态列导出编辑完成

---
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml |   47 +++++++++++++++++++++++++++++------------------
 1 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index c38edf2..2df6852 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -342,8 +342,9 @@
     <select id="getVideoCount" resultType="java.util.Map">
         SELECT count(*) AS totalPosts,
         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
+        IFNULL(SUM(IF(p.online = -1, 1, 0)), 0) AS postsPercentage,
+        IFNULL(SUM(IF(p.online = 0, 1, 0)), 0) AS unknownNumbers,
+        IFNULL(ROUND(SUM(IF(p.online = 1 , 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>
@@ -439,30 +440,33 @@
             'video' as type,
             COUNT(p1.id) AS totalNum,
             COUNT(p2.id) AS errorNum,
-            COUNT(p1.id) - COUNT(p2.id) AS normalNum
+            COUNT(p3.id)  AS normalNum
         FROM t_monitor
         LEFT JOIN t_yw_point p1 ON t_monitor.serial_number = p1.serial_number AND p1.examine_status = 1<if test="dataScope == 1"> AND p1.province_tag = 1 </if><if test="dataScope == 3"> AND p1.dept_tag = 1 </if><if test="deptId != null"> AND p1.dept_id = #{deptId} </if>
-        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number  AND p2.examine_status = 1 AND p2.online = 0 AND p1.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if>
+        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number  AND p2.examine_status = 1 AND p2.online = -1 AND p1.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if>
+        LEFT JOIN t_yw_point p3 ON t_monitor.serial_number = p3.serial_number  AND p3.examine_status = 1 AND p3.online = 1  AND p1.id = p3.id<if test="dataScope == 1"> AND p3.province_tag = 1 </if><if test="dataScope == 3"> AND p3.dept_tag = 1 </if><if test="deptId != null"> AND p3.dept_id = #{deptId} </if>
         WHERE INSTR(camera_fun_type, 1)
         UNION ALL
         SELECT
             'car' as type,
             COUNT(p1.id) AS totalNum,
             COUNT(p2.id) AS errorNum,
-            COUNT(p1.id) - COUNT(p2.id) AS normalNum
+            COUNT(p3.id) AS normalNum
         FROM t_monitor
         LEFT JOIN t_yw_point p1 ON t_monitor.serial_number = p1.serial_number AND p1.examine_status = 1 <if test="dataScope == 1"> AND p1.province_tag = 1 </if><if test="dataScope == 3"> AND p1.dept_tag = 1 </if><if test="deptId != null"> AND p1.dept_id = #{deptId} </if>
-        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number AND p2.examine_status = 1 AND p2.online = 0 AND p1.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = '1' </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if>
+        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number AND p2.examine_status = 1 AND p2.online = -1 AND p1.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if>
+        LEFT JOIN t_yw_point p3 ON t_monitor.serial_number = p3.serial_number  AND p3.examine_status = 1 AND p3.online = 1 AND p1.id = p3.id <if test="dataScope == 1"> AND p3.province_tag = 1 </if><if test="dataScope == 3"> AND p3.dept_tag = 1 </if><if test="deptId != null"> AND p3.dept_id = #{deptId} </if>
         WHERE INSTR(camera_fun_type, 2)
         UNION ALL
         SELECT
             'face' as type,
             COUNT(p1.id) AS totalNum,
             COUNT(p2.id) AS errorNum,
-            COUNT(p1.id) - COUNT(p2.id) AS normalNum
+            COUNT(p3.id) AS normalNum
         FROM t_monitor
         LEFT JOIN t_yw_point p1 ON t_monitor.serial_number = p1.serial_number  AND p1.examine_status = 1 <if test="dataScope == 1"> AND p1.province_tag = 1 </if><if test="dataScope == 3"> AND p1.dept_tag = 1 </if><if test="deptId != null"> AND p1.dept_id = #{deptId} </if>
-        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number  AND p2.examine_status = 1 AND p2.online = 0 AND p1.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if>
+        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number  AND p2.examine_status = 1 AND p2.online = -1 AND p1.id = p2.id<if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if><if test="deptId != null"> AND p2.dept_id = #{deptId} </if>
+        LEFT JOIN t_yw_point p3 ON t_monitor.serial_number = p3.serial_number  AND p3.examine_status = 1 AND p3.online = 1  AND p1.id = p3.id<if test="dataScope == 1"> AND p3.province_tag = 1 </if><if test="dataScope == 3"> AND p3.dept_tag = 1 </if><if test="deptId != null"> AND p3.dept_id = #{deptId} </if>
         WHERE INSTR(camera_fun_type, 3)
     </select>
     <select id="monitorRate" resultType="com.ycl.platform.domain.vo.screen.MonitorRateVO">
@@ -473,15 +477,17 @@
             (
                 SELECT
                     d.area,
-                    IFNULL(ROUND((COUNT(m.id) - COUNT(m2.id)) / COUNT(m.id) * 100, 2), 0) AS faceRate,
-                    COUNT(m.id) - COUNT(m2.id) AS faceNormalNum,
+                    IFNULL(ROUND(COUNT(m3.id)/ COUNT(m.id) * 100, 2), 0) AS faceRate,
+                    COUNT(m3.id) AS faceNormalNum,
                     COUNT(m2.id) AS faceErrorNum
                 FROM
                     sys_dept d
                         LEFT JOIN t_yw_point p ON p.dept_id = d.dept_id AND p.deleted = 0  AND p.examine_status = 1 <if test="dataScope == 1"> AND p.province_tag = 1 </if><if test="dataScope == 3"> AND p.dept_tag = 1 </if>
-                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.online = 0 AND p2.examine_status = 1 AND p.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if>
+                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.online = -1 AND p2.examine_status = 1 AND p.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if>
+                        LEFT JOIN t_yw_point p3 ON p3.dept_id = d.dept_id AND p3.deleted = 0 AND p3.online = 1 AND p3.examine_status = 1 AND p.id = p3.id <if test="dataScope == 1"> AND p3.province_tag = 1 </if><if test="dataScope == 3"> AND p3.dept_tag = 1 </if>
                         LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 3)
                         LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 3)
+                        LEFT JOIN t_monitor m3 ON m3.serial_number = p3.serial_number AND INSTR(m3.camera_fun_type, 3)
                 WHERE d.del_flag = 0 AND d.area IS NOT NULL
                 GROUP BY d.area, d.dept_id
                 ORDER BY d.area_code
@@ -491,15 +497,17 @@
             (
                 SELECT
                     d.area,
-                    IFNULL(ROUND((COUNT(m.id) - COUNT(m2.id)) / COUNT(m.id) * 100, 2), 0) AS carRate,
-                    COUNT(m.id) - COUNT(m2.id) AS carNormalNum,
+                    IFNULL(ROUND(COUNT(m3.id) / COUNT(m.id) * 100, 2), 0) AS carRate,
+                    COUNT(m3.id) AS carNormalNum,
                     COUNT(m2.id) AS carErrorNum
                 FROM
                     sys_dept d
                         LEFT JOIN t_yw_point p ON p.dept_id = d.dept_id AND p.deleted = 0 AND p.examine_status = 1 <if test="dataScope == 1"> AND p.province_tag = 1 </if><if test="dataScope == 3"> AND p.dept_tag = 1 </if>
-                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.examine_status = 1 AND p2.online = 0 AND p.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if>
+                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.examine_status = 1 AND p2.online = -1 AND p.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if>
+                        LEFT JOIN t_yw_point p3 ON p3.dept_id = d.dept_id AND p3.deleted = 0 AND p3.examine_status = 1 AND p3.online = 1 AND p.id = p3.id <if test="dataScope == 1"> AND p3.province_tag = 1 </if><if test="dataScope == 3"> AND p3.dept_tag = 1 </if>
                         LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 2)
                         LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 2)
+                        LEFT JOIN t_monitor m3 ON m3.serial_number = p3.serial_number AND INSTR(m3.camera_fun_type, 2)
                 WHERE d.del_flag = 0 AND d.area IS NOT NULL
                 GROUP BY d.area, d.dept_id, d.area_code
                 ORDER BY d.area_code
@@ -509,15 +517,17 @@
             (
                 SELECT
                     d.area,
-                    IFNULL(ROUND((COUNT(m.id) - COUNT(m2.id)) / COUNT(m.id) * 100, 2), 0) AS videoRate,
-                    COUNT(m.id) - COUNT(m2.id) AS videoNormalNum,
+                    IFNULL(ROUND(COUNT(m3.id) / COUNT(m.id) * 100, 2), 0) AS videoRate,
+                    COUNT(m3.id) AS videoNormalNum,
                     COUNT(m2.id) AS videoErrorNum
                 FROM
                     sys_dept d
                         LEFT JOIN t_yw_point p ON p.dept_id = d.dept_id AND p.deleted = 0 AND p.examine_status = 1 <if test="dataScope == 1"> AND p.province_tag = 1 </if><if test="dataScope == 3"> AND p.dept_tag = 1 </if>
-                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.examine_status = 1 AND p2.online = 0 AND p.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if>
+                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.examine_status = 1 AND p2.online = -1 AND p.id = p2.id <if test="dataScope == 1"> AND p2.province_tag = 1 </if><if test="dataScope == 3"> AND p2.dept_tag = 1 </if>
+                        LEFT JOIN t_yw_point p3 ON p3.dept_id = d.dept_id AND p3.deleted = 0 AND p3.examine_status = 1 AND p3.online = 1 AND p.id = p3.id <if test="dataScope == 1"> AND p3.province_tag = 1 </if><if test="dataScope == 3"> AND p3.dept_tag = 1 </if>
                         LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 1)
                         LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 1)
+                        LEFT JOIN t_monitor m3 ON m3.serial_number = p3.serial_number AND INSTR(m3.camera_fun_type, 1)
                 WHERE d.del_flag = 0 AND d.area IS NOT NULL
                 GROUP BY d.area, d.area_code, d.dept_id
                 ORDER BY d.area_code
@@ -645,6 +655,7 @@
         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
+            where p.online != 0 and p.examine_status = 1
     </select>
 
     <update id="updateOnline">
@@ -655,7 +666,7 @@
                 online = #{online.online},
                 update_time = #{online.updateTime}
             WHERE
-                EXISTS (SELECT 1 FROM t_monitor WHERE ip = #{online.ip} AND t_monitor.serial_number = t_yw_point.serial_number)
+                EXISTS (SELECT 1 FROM t_monitor WHERE ip = #{online.ip} AND t_monitor.serial_number = t_yw_point.serial_number )
         </foreach>
     </update>
 </mapper>

--
Gitblit v1.8.0