From 27e913d6d28a9cfa0785d15453a4de10fd36ce6d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 10 二月 2025 11:17:59 +0800
Subject: [PATCH] 首页录像统计加上间歇

---
 ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml |  132 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 115 insertions(+), 17 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
index 37b36f7..e3e9c64 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
@@ -3,11 +3,13 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ycl.platform.mapper.CheckIndexFaceMapper">
-    
+
     <resultMap type="com.ycl.platform.domain.entity.CheckIndexFace" id="CheckIndexFaceResult">
         <result property="id"    column="id"    />
         <result property="deptId"    column="dept_id"    />
         <result property="examineTag"    column="examine_tag"    />
+        <result property="num"    column="num"    />
+        <result property="score"    column="score"    />
         <result property="createTime"    column="create_time"    />
         <result property="viewConnectStability"    column="view_connect_stability"    />
         <result property="siteOnline"    column="site_online"    />
@@ -24,28 +26,47 @@
     </sql>
 
     <select id="selectCheckIndexFaceList"  resultMap="CheckIndexFaceResult">
+        select tcif.*,sd.dept_name,tcs.score,IFNULL(tcs.device_count,0) as num
+        from t_check_index_face tcif left join sys_dept sd on tcif.dept_id = sd.dept_id
+        left join t_check_score tcs on tcif.id = tcs.index_id
+        <where>
+            tcs.examine_category = 3
+            <if test="deptId != null "> and tcif.dept_id = #{deptId}</if>
+            <if test="examineTag != null "> and tcif.examine_tag = #{examineTag}</if>
+            <if test="quarter != null and quarter.size > 0">
+                and date_format(tcs.create_time, '%Y-%m') between #{quarter[0]} and #{quarter[1]}
+            </if>
+            <if test="date != null "> and  date_format(tcif.create_time,'%Y-%m') = #{date}</if>
+            <if test="day != null "> and  date(tcif.create_time) = #{day}</if>
+            <if test="params.publish != null  and params.publish != ''">and tcif.publish = #{params.publish}</if>
+            <if test="deptIds != null ">and tcif.dept_id in
+                <foreach collection="deptIds" separator="," open="(" close=")" item="deptId">
+                    #{deptId}
+                </foreach>
+            </if>
+        </where>
+        order by tcif.examine_tag desc,sd.area_code,tcif.create_time
+    </select>
+
+    <select id="getCheckIndexFaceList"  resultMap="CheckIndexFaceResult">
         select tcif.*,sd.dept_name
         from t_check_index_face tcif left join sys_dept sd on tcif.dept_id = sd.dept_id
-        <where>  
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="examineTag != null "> and examine_tag = #{examineTag}</if>
-            <if test="date != null "> and  date_format(tcif.create_time,'%Y-%m') = #{date}</if>
-            <if test="viewConnectStability != null "> and view_connect_stability = #{viewConnectStability}</if>
-            <if test="siteOnline != null "> and site_online = #{siteOnline}</if>
-            <if test="deviceDirectoryConsistent != null "> and device_directory_consistent = #{deviceDirectoryConsistent}</if>
-            <if test="faceInformationCollectionAccuracy != null "> and face_information_collection_accuracy = #{faceInformationCollectionAccuracy}</if>
-            <if test="facePictureQualification != null "> and face_picture_qualification = #{facePictureQualification}</if>
-            <if test="faceTimingAccuracy != null "> and face_timing_accuracy = #{faceTimingAccuracy}</if>
-            <if test="faceUploadTimeliness != null "> and face_upload_timeliness = #{faceUploadTimeliness}</if>
-            <if test="facePictureAvailability != null "> and face_picture_availability = #{facePictureAvailability}</if>
+        <where>
+            <if test="examineTag != null "> and tcif.examine_tag = #{examineTag}</if>
+            <if test="day != null "> and  date(tcif.create_time) = #{day}</if>
+            <if test="deptIds != null ">and tcif.dept_id in
+                <foreach collection="deptIds" separator="," open="(" close=")" item="deptId">
+                    #{deptId}
+                </foreach>
+            </if>
         </where>
     </select>
-    
+
     <select id="selectCheckIndexFaceById"  resultMap="CheckIndexFaceResult">
         <include refid="selectCheckIndexFaceVo"/>
         where id = #{id}
     </select>
-        
+
     <insert id="insertCheckIndexFace"  useGeneratedKeys="true" keyProperty="id">
         insert into t_check_index_face
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -99,9 +120,86 @@
     </delete>
 
     <delete id="deleteCheckIndexFaceByIds" >
-        delete from t_check_index_face where id in 
+        delete from t_check_index_face where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
-</mapper>
\ No newline at end of file
+
+    <select id="selectToday" resultType="com.ycl.platform.domain.entity.CheckIndexFace">
+        select * from t_check_index_face where DATE(create_time) = #{today}
+    </select>
+
+    <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexFace">
+<!--        SELECT-->
+<!--        IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,-->
+<!--        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,-->
+<!--        IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,-->
+<!--        IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy,-->
+<!--        IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification,-->
+<!--        IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy,-->
+<!--        IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness,-->
+<!--        IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability-->
+<!--        FROM-->
+<!--        t_check_index_face-->
+<!--        <where>-->
+<!--            <if test="deptId != null">-->
+<!--                AND dept_id = #{deptId}-->
+<!--            </if>-->
+<!--            <if test="dataScope == 1">-->
+<!--                AND examine_tag = 0-->
+<!--            </if>-->
+<!--            <if test="dataScope == 2">-->
+<!--                AND examine_tag = 1-->
+<!--            </if>-->
+<!--            <if test="dataScope == 3">-->
+<!--                AND examine_tag = 2-->
+<!--            </if>-->
+<!--        </where>-->
+<!--        ORDER BY-->
+<!--        create_time DESC-->
+<!--        <if test="deptId == null">-->
+<!--            LIMIT 7-->
+<!--        </if>-->
+<!--        <if test="deptId != null">-->
+<!--            LIMIT 1-->
+<!--        </if>-->
+
+        WITH LatestRecords AS (
+        SELECT *
+        FROM t_check_index_face
+        <where>
+            <if test="deptId != null">
+                AND dept_id = #{deptId}
+            </if>
+            <if test="dataScope == 1">
+                AND examine_tag = 0
+            </if>
+            <if test="dataScope == 2">
+                AND examine_tag = 1
+            </if>
+            <if test="dataScope == 3">
+                AND examine_tag = 2
+            </if>
+        </where>
+        ORDER BY create_time DESC
+        <if test="deptId == null">
+            LIMIT 7
+        </if>
+        <if test="deptId != null">
+            LIMIT 1
+        </if>
+        )
+        SELECT
+        IFNULL(ROUND(AVG(view_connect_stability * 100), 0), 0) AS view_connect_stability,
+        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,
+        IFNULL(ROUND(AVG(device_directory_consistent * 100), 0), 0) AS device_directory_consistent,
+        IFNULL(ROUND(AVG(face_information_collection_accuracy * 100), 0), 0) AS face_information_collection_accuracy,
+        IFNULL(ROUND(AVG(face_picture_qualification * 100), 0), 0) AS face_picture_qualification,
+        IFNULL(ROUND(AVG(face_timing_accuracy * 100), 0), 0) AS face_timing_accuracy,
+        IFNULL(ROUND(AVG(face_upload_timeliness * 100), 0), 0) AS face_upload_timeliness,
+        IFNULL(ROUND(AVG(face_picture_availability * 100), 0), 0) AS face_picture_availability
+        FROM
+        LatestRecords;
+    </select>
+</mapper>

--
Gitblit v1.8.0