From 90276a76b56cc1e744f7fa68ce921a28a8a9c92f Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 08 一月 2025 11:52:10 +0800 Subject: [PATCH] 运行监控报表导出时间少一天问题 --- ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml | 243 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 173 insertions(+), 70 deletions(-) diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml index a1c6e1e..8a086c3 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.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.CheckIndexVideoMapper"> - + <resultMap type="com.ycl.platform.domain.entity.CheckIndexVideo" id="CheckIndexVideoResult"> <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,68 +17,61 @@ <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" /> <result property="keyTimingAccuracy" column="key_timing_accuracy" /> - <result property="keyCommandImageInspection" column="key_command_image_inspection" /> - <result property="keyCommandImageDirectoryTree" column="key_command_image_directory_tree" /> - <result property="onlineInspectionPlatform" column="online_inspection_platform" /> - <result property="videoTransmissionAssetsAccuracy" column="video_transmission_assets_accuracy" /> - <result property="videoTransmissionAssetsWeakPasswordScore" column="video_transmission_assets_weak_password_score" /> - <result property="videoTransmissionDangerousAssetsScore" column="video_transmission_dangerous_assets_score" /> - <result property="videoTransmissionBoundaryIntegrityDetection" column="video_transmission_boundary_integrity_detection" /> - <result property="operatingRate" column="operating_rate" /> + <result property="keyCommandImageOnline" column="key_command_image_online" /> + <result property="imageResourceSecurity" column="image_resource_security" /> </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_inspection, key_command_image_directory_tree, online_inspection_platform, video_transmission_assets_accuracy, video_transmission_assets_weak_password_score, video_transmission_dangerous_assets_score, video_transmission_boundary_integrity_detection, operating_rate 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 - <where> + 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="keyCommandImageInspection != null "> and key_command_image_inspection = #{keyCommandImageInspection}</if> - <if test="keyCommandImageDirectoryTree != null "> and key_command_image_directory_tree = #{keyCommandImageDirectoryTree}</if> - <if test="onlineInspectionPlatform != null "> and online_inspection_platform = #{onlineInspectionPlatform}</if> - <if test="videoTransmissionAssetsAccuracy != null "> and video_transmission_assets_accuracy = #{videoTransmissionAssetsAccuracy}</if> - <if test="videoTransmissionAssetsWeakPasswordScore != null "> and video_transmission_assets_weak_password_score = #{videoTransmissionAssetsWeakPasswordScore}</if> - <if test="videoTransmissionDangerousAssetsScore != null "> and video_transmission_dangerous_assets_score = #{videoTransmissionDangerousAssetsScore}</if> - <if test="videoTransmissionBoundaryIntegrityDetection != null "> and video_transmission_boundary_integrity_detection = #{videoTransmissionBoundaryIntegrityDetection}</if> - <if test="operatingRate != null "> and operating_rate = #{operatingRate}</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} </select> - + <insert id="insertCheckIndexVideo" useGeneratedKeys="true" keyProperty="id"> insert into t_check_index_video <trim prefix="(" suffix=")" suffixOverrides=","> @@ -89,21 +84,15 @@ <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> <if test="keyTimingAccuracy != null">key_timing_accuracy,</if> - <if test="keyCommandImageInspection != null">key_command_image_inspection,</if> - <if test="keyCommandImageDirectoryTree != null">key_command_image_directory_tree,</if> - <if test="onlineInspectionPlatform != null">online_inspection_platform,</if> - <if test="videoTransmissionAssetsAccuracy != null">video_transmission_assets_accuracy,</if> - <if test="videoTransmissionAssetsWeakPasswordScore != null">video_transmission_assets_weak_password_score,</if> - <if test="videoTransmissionDangerousAssetsScore != null">video_transmission_dangerous_assets_score,</if> - <if test="videoTransmissionBoundaryIntegrityDetection != null">video_transmission_boundary_integrity_detection,</if> - <if test="operatingRate != null">operating_rate,</if> - </trim> + <if test="keyCommandImageOnline != null">key_command_image_online,</if> + <if test="imageResourceSecurity != null">image_resource_security,</if> + </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="deptId != null">#{deptId},</if> <if test="createTime != null">#{createTime},</if> @@ -114,20 +103,14 @@ <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> <if test="keyTimingAccuracy != null">#{keyTimingAccuracy},</if> - <if test="keyCommandImageInspection != null">#{keyCommandImageInspection},</if> - <if test="keyCommandImageDirectoryTree != null">#{keyCommandImageDirectoryTree},</if> - <if test="onlineInspectionPlatform != null">#{onlineInspectionPlatform},</if> - <if test="videoTransmissionAssetsAccuracy != null">#{videoTransmissionAssetsAccuracy},</if> - <if test="videoTransmissionAssetsWeakPasswordScore != null">#{videoTransmissionAssetsWeakPasswordScore},</if> - <if test="videoTransmissionDangerousAssetsScore != null">#{videoTransmissionDangerousAssetsScore},</if> - <if test="videoTransmissionBoundaryIntegrityDetection != null">#{videoTransmissionBoundaryIntegrityDetection},</if> - <if test="operatingRate != null">#{operatingRate},</if> + <if test="keyCommandImageOnline != null">#{keyCommandImageOnline},</if> + <if test="imageResourceSecurity != null">#{imageResourceSecurity},</if> </trim> </insert> @@ -143,20 +126,14 @@ <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> <if test="keyTimingAccuracy != null">key_timing_accuracy = #{keyTimingAccuracy},</if> - <if test="keyCommandImageInspection != null">key_command_image_inspection = #{keyCommandImageInspection},</if> - <if test="keyCommandImageDirectoryTree != null">key_command_image_directory_tree = #{keyCommandImageDirectoryTree},</if> - <if test="onlineInspectionPlatform != null">online_inspection_platform = #{onlineInspectionPlatform},</if> - <if test="videoTransmissionAssetsAccuracy != null">video_transmission_assets_accuracy = #{videoTransmissionAssetsAccuracy},</if> - <if test="videoTransmissionAssetsWeakPasswordScore != null">video_transmission_assets_weak_password_score = #{videoTransmissionAssetsWeakPasswordScore},</if> - <if test="videoTransmissionDangerousAssetsScore != null">video_transmission_dangerous_assets_score = #{videoTransmissionDangerousAssetsScore},</if> - <if test="videoTransmissionBoundaryIntegrityDetection != null">video_transmission_boundary_integrity_detection = #{videoTransmissionBoundaryIntegrityDetection},</if> - <if test="operatingRate != null">operating_rate = #{operatingRate},</if> + <if test="keyCommandImageOnline != null">key_command_image_online = #{keyCommandImageOnline},</if> + <if test="imageResourceSecurity != null">image_resource_security = #{imageResourceSecurity},</if> </trim> where id = #{id} </update> @@ -166,9 +143,135 @@ </delete> <delete id="deleteCheckIndexVideoByIds" > - delete from t_check_index_video where id in + delete from t_check_index_video 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.CheckIndexVideo"> + select * from t_check_index_video where DATE(create_time) = #{today} + </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, + 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 + 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, + d.area, + ROW_NUMBER() OVER(PARTITION BY r.dept_id ORDER BY r.create_time DESC) AS rn + FROM + t_check_index_video r + JOIN + sys_dept d ON r.dept_id = d.dept_id + ) + SELECT + id, + dept_id, + area as deptName, + platform_online, + monitor_qualification + FROM + temp + 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