From ee03b526152d335dd1e42bc01a1f717d1205204c Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 26 五月 2025 15:27:04 +0800 Subject: [PATCH] (部级录像可用率,重点录像可用率,录像可用率)计算可用率bug修复,hk接口bug修复, --- ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml | 159 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 114 insertions(+), 45 deletions(-) diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml index 1c42656..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" /> @@ -15,8 +17,8 @@ <result property="archivesRate" column="archives_rate" /> <result property="siteOnline" column="site_online" /> <result property="videoAvailable" column="video_available" /> - <result property="annotationAccuracy" column="annotation_accuracy" /> - <result property="timingAccuracy" column="timing_accuracy" /> + <result property="ministrySiteOnline" column="ministry_site_online" /> + <result property="ministryVideoAvailable" column="ministry_video_available" /> <result property="keySiteOnline" column="key_site_online" /> <result property="keyVideoAvailable" column="key_video_available" /> <result property="keyAnnotationAccuracy" column="key_annotation_accuracy" /> @@ -26,40 +28,45 @@ </resultMap> <sql id="selectCheckIndexVideoVo"> - select id, dept_id, create_time, examine_tag, platform_online, monitor_qualification, monitor_registration, archives_rate, site_online, video_available, annotation_accuracy, timing_accuracy, key_site_online, key_video_available, key_annotation_accuracy, key_timing_accuracy, key_command_image_online,image_resource_security from t_check_index_video + select id, dept_id, create_time, examine_tag, platform_online, monitor_qualification, monitor_registration, archives_rate, site_online, video_available, ministry_site_online, ministry_video_available, key_site_online, key_video_available, key_annotation_accuracy, key_timing_accuracy, key_command_image_online,image_resource_security from t_check_index_video </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="annotationAccuracy != null "> and annotation_accuracy = #{annotationAccuracy}</if> - <if test="timingAccuracy != null "> and timing_accuracy = #{timingAccuracy}</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} @@ -77,8 +84,8 @@ <if test="archivesRate != null">archives_rate,</if> <if test="siteOnline != null">site_online,</if> <if test="videoAvailable != null">video_available,</if> - <if test="annotationAccuracy != null">annotation_accuracy,</if> - <if test="timingAccuracy != null">timing_accuracy,</if> + <if test="ministrySiteOnline != null">ministry_site_online,</if> + <if test="ministryVideoAvailable != null">ministry_video_available,</if> <if test="keySiteOnline != null">key_site_online,</if> <if test="keyVideoAvailable != null">key_video_available,</if> <if test="keyAnnotationAccuracy != null">key_annotation_accuracy,</if> @@ -96,8 +103,8 @@ <if test="archivesRate != null">#{archivesRate},</if> <if test="siteOnline != null">#{siteOnline},</if> <if test="videoAvailable != null">#{videoAvailable},</if> - <if test="annotationAccuracy != null">#{annotationAccuracy},</if> - <if test="timingAccuracy != null">#{timingAccuracy},</if> + <if test="ministrySiteOnline != null">#{ministrySiteOnline},</if> + <if test="ministryVideoAvailable != null">#{ministryVideoAvailable},</if> <if test="keySiteOnline != null">#{keySiteOnline},</if> <if test="keyVideoAvailable != null">#{keyVideoAvailable},</if> <if test="keyAnnotationAccuracy != null">#{keyAnnotationAccuracy},</if> @@ -119,8 +126,8 @@ <if test="archivesRate != null">archives_rate = #{archivesRate},</if> <if test="siteOnline != null">site_online = #{siteOnline},</if> <if test="videoAvailable != null">video_available = #{videoAvailable},</if> - <if test="annotationAccuracy != null">annotation_accuracy = #{annotationAccuracy},</if> - <if test="timingAccuracy != null">timing_accuracy = #{timingAccuracy},</if> + <if test="ministrySiteOnline != null">ministry_site_online = #{ministrySiteOnline},</if> + <if test="ministryVideoAvailable != null">ministry_video_available = #{ministryVideoAvailable},</if> <if test="keySiteOnline != null">key_site_online = #{keySiteOnline},</if> <if test="keyVideoAvailable != null">key_video_available = #{keyVideoAvailable},</if> <if test="keyAnnotationAccuracy != null">key_annotation_accuracy = #{keyAnnotationAccuracy},</if> @@ -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, @@ -154,8 +225,8 @@ 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(annotation_accuracy * 100), 0), 0) AS annotation_accuracy, - IFNULL(ROUND(AVG(timing_accuracy * 100), 0), 0) AS timing_accuracy, + 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, @@ -163,28 +234,13 @@ 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"> WITH temp AS ( SELECT + r.id, r.dept_id, r.platform_online, r.monitor_qualification, @@ -196,6 +252,7 @@ sys_dept d ON r.dept_id = d.dept_id ) SELECT + id, dept_id, area as deptName, platform_online, @@ -205,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