fuliqi
2024-12-04 95f69d1183a56f5768e6d56d043b0c6e5a878bb5
ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
@@ -26,16 +26,16 @@
    </sql>
    <select id="selectCheckIndexFaceList"  resultMap="CheckIndexFaceResult">
        select tcif.*,sd.dept_name,tcs.score,count(m.serial_number) as num
        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
        left join t_yw_point p on p.dept_id = tcif.dept_id
        left join t_monitor m on p.serial_number = m.serial_number
        <where>
            tcs.examine_category = 3 and m.camera_fun_type like concat('%',3,'%')
            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="examineTagQuery != null "> and p.province_tag = #{examineTagQuery}</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>
@@ -45,7 +45,6 @@
                </foreach>
            </if>
        </where>
        group by tcif.id
        order by tcif.examine_tag desc,sd.area_code,tcif.create_time
    </select>
@@ -54,7 +53,6 @@
        from t_check_index_face tcif left join sys_dept sd on tcif.dept_id = sd.dept_id
        <where>
            <if test="examineTag != null "> and tcif.examine_tag = #{examineTag}</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="deptIds != null ">and tcif.dept_id in
                <foreach collection="deptIds" separator="," open="(" close=")" item="deptId">
@@ -133,17 +131,43 @@
    </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
<!--        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}
@@ -158,13 +182,24 @@
                AND examine_tag = 2
            </if>
        </where>
        ORDER BY
        create_time DESC
        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>