From b85a7f932b9d789a2e9bdb36e366c36c2e1eb3cc Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 17 四月 2025 11:31:53 +0800
Subject: [PATCH] 查询考核成绩为null,为前端添加数据默认为0

---
 ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml |  135 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 101 insertions(+), 34 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
index 23921f4..8a086c3 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -8,6 +8,8 @@
         <result property="id"    column="id"    />
         <result property="deptId"    column="dept_id"    />
         <result property="createTime"    column="create_time"    />
+        <result property="num"    column="num"    />
+        <result property="score"    column="score"    />
         <result property="examineTag"    column="examine_tag"    />
         <result property="platformOnline"    column="platform_online"    />
         <result property="monitorQualification"    column="monitor_qualification"    />
@@ -30,36 +32,41 @@
     </sql>
 
     <select id="selectCheckIndexVideoList" parameterType="CheckIndexVideo" resultMap="CheckIndexVideoResult">
-        select tciv.*,sd.dept_name
+        select tciv.*,sd.dept_name,tcs.score,IFNULL(tcs.device_count,0) as num
         from t_check_index_video tciv left join sys_dept sd on tciv.dept_id = sd.dept_id
+        left join t_check_score tcs on tciv.id = tcs.index_id
         <where>
+            tcs.examine_category = 1
             <if test="deptId != null "> and tciv.dept_id = #{deptId}</if>
-            <if test="examineTag != null "> and examine_tag = #{examineTag}</if>
+            <if test="examineTag != null "> and tciv.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(tciv.create_time,'%Y-%m') = #{date}</if>
             <if test="day != null "> and  date(tciv.create_time) = #{day}</if>
             <if test="createTime != null "> and  date(tciv.create_time) = #{createTime}</if>
-            <if test="platformOnline != null "> and platform_online = #{platformOnline}</if>
-            <if test="monitorQualification != null "> and monitor_qualification = #{monitorQualification}</if>
-            <if test="monitorRegistration != null "> and monitor_registration = #{monitorRegistration}</if>
-            <if test="archivesRate != null "> and archives_rate = #{archivesRate}</if>
-            <if test="siteOnline != null "> and site_online = #{siteOnline}</if>
-            <if test="videoAvailable != null "> and video_available = #{videoAvailable}</if>
-            <if test="ministrySiteOnline != null "> and ministry_site_online = #{ministrySiteOnline}</if>
-            <if test="ministryVideoAvailable != null "> and ministry_video_available = #{ministryVideoAvailable}</if>
-            <if test="keySiteOnline != null "> and key_site_online = #{keySiteOnline}</if>
-            <if test="keyVideoAvailable != null "> and key_video_available = #{keyVideoAvailable}</if>
-            <if test="keyAnnotationAccuracy != null "> and key_annotation_accuracy = #{keyAnnotationAccuracy}</if>
-            <if test="keyTimingAccuracy != null "> and key_timing_accuracy = #{keyTimingAccuracy}</if>
-            <if test="keyCommandImageOnline != null "> and key_command_image_online = #{keyCommandImageOnline}</if>
-            <if test="imageResourceSecurity != null "> and image_resource_security = #{imageResourceSecurity}</if>
+            <if test="params.publish != null  and params.publish != ''">and tciv.publish = #{params.publish}</if>
             <if test="deptIds != null ">and tciv.dept_id in
             <foreach collection="deptIds" separator="," open="(" close=")" item="deptId">
                 #{deptId}
             </foreach>
             </if>
         </where>
+        order by tciv.examine_tag desc,sd.area_code,tciv.create_time
     </select>
-
+    <select id="getCheckIndexVideoList" parameterType="CheckIndexVideo" resultMap="CheckIndexVideoResult">
+        select tciv.*,sd.dept_name
+        from t_check_index_video tciv left join sys_dept sd on tciv.dept_id = sd.dept_id
+        <where>
+            <if test="examineTag != null "> and tciv.examine_tag = #{examineTag}</if>
+            <if test="day != null "> and  date(tciv.create_time) = #{day}</if>
+            <if test="deptIds != null ">and tciv.dept_id in
+                <foreach collection="deptIds" separator="," open="(" close=")" item="deptId">
+                    #{deptId}
+                </foreach>
+            </if>
+        </where>
+    </select>
     <select id="selectCheckIndexVideoById"  resultMap="CheckIndexVideoResult">
         <include refid="selectCheckIndexVideoVo"/>
         where id = #{id}
@@ -147,6 +154,70 @@
     </select>
 
     <select id="dashboard" resultType="com.ycl.platform.domain.entity.CheckIndexVideo">
+<!--        SELECT-->
+<!--        IFNULL(ROUND(AVG(platform_online * 100), 0), 0) AS platform_online,-->
+<!--        IFNULL(ROUND(AVG(monitor_qualification * 100), 0), 0) AS monitor_qualification,-->
+<!--        IFNULL(ROUND(AVG(monitor_registration * 100), 0), 0) AS monitor_registration,-->
+<!--        IFNULL(ROUND(AVG(archives_rate * 100), 0), 0) AS archives_rate,-->
+<!--        IFNULL(ROUND(AVG(site_online * 100), 0), 0) AS site_online,-->
+<!--        IFNULL(ROUND(AVG(video_available * 100), 0), 0) AS video_available,-->
+<!--        IFNULL(ROUND(AVG(ministry_site_online * 100), 0), 0) AS ministry_site_online,-->
+<!--        IFNULL(ROUND(AVG(ministry_video_available * 100), 0), 0) AS ministry_video_available,-->
+<!--        IFNULL(ROUND(AVG(key_site_online * 100), 0), 0) AS key_site_online,-->
+<!--        IFNULL(ROUND(AVG(key_video_available * 100), 0), 0) AS key_video_available,-->
+<!--        IFNULL(ROUND(AVG(key_annotation_accuracy * 100), 0), 0) AS key_annotation_accuracy,-->
+<!--        IFNULL(ROUND(AVG(key_timing_accuracy * 100), 0), 0) AS key_timing_accuracy,-->
+<!--        IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online,-->
+<!--        IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security-->
+<!--        FROM-->
+<!--        t_check_index_video-->
+<!--        <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_video
+        <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(platform_online * 100), 0), 0) AS platform_online,
         IFNULL(ROUND(AVG(monitor_qualification * 100), 0), 0) AS monitor_qualification,
@@ -163,23 +234,7 @@
         IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online,
         IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security
         FROM
-        t_check_index_video
-        <where>
-            <if test="deptId != null">
-                AND dept_id = #{deptId}
-            </if>
-            <if test="dataScope == 1">
-                AND examine_tag = 1
-            </if>
-        </where>
-        ORDER BY
-        create_time DESC
-        <if test="deptId == null">
-            LIMIT 7
-        </if>
-        <if test="deptId != null">
-            LIMIT 1
-        </if>
+        LatestRecords;
     </select>
 
     <select id="selectAndDeptName" resultType="com.ycl.platform.domain.entity.CheckIndexVideo">
@@ -207,4 +262,16 @@
         WHERE
             rn = 1;
     </select>
+
+    <select id="selectLastOneByDept" resultType="com.ycl.platform.domain.dto.ImageResourceDTO">
+        WITH temp AS (
+            SELECT
+                image_resource_security AS imageResourceSecurity,
+                dept_id AS deptId,
+                ROW_NUMBER() OVER(PARTITION BY dept_id ORDER BY create_time DESC, image_resource_security DESC) AS num
+            FROM
+                t_check_index_video
+        )
+        SELECT deptId, imageResourceSecurity FROM temp WHERE num = 1;
+    </select>
 </mapper>

--
Gitblit v1.8.0