fuliqi
2024-09-13 44858471387cb6808fb086813d5987daf9e5d77a
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -98,15 +98,20 @@
    <select id="selectTMonitorList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
        select m.id, m.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude,
        camera_capture_area, on_state, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag,
        camera_capture_area, p.online as onState, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag,
        IF(COUNT(w.id) OVER() > 0, '是', '否') AS error, u.unit_name from t_monitor m
        left join t_yw_point p on m.serial_number = p.serial_number and p.deleted = 0
        left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
        left join t_work_order w on m.serial_number = w.serial_number and w.deleted = 0
        left join t_yw_unit u on p.unit_id = u.id and u.deleted = 0
        <where>
            <if test="serialNumber != null  and serialNumber != ''">and m.serial_number = #{serialNumber}</if>
            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
            <if test="name != null  and name != ''">
            and (name like concat('%', #{name}, '%')
            or m.serial_number like concat('%', #{name}, '%')
            or u.unit_name like concat('%', #{name}, '%')) </if>
            <if test="provinceTag != null ">and p.province_tag = #{provinceTag}</if>
            <if test="siteType != null ">and site_type = #{siteType}</if>
            <if test="macAddr != null  and macAddr != ''">and mac_addr = #{macAddr}</if>
            <if test="ip != null  and ip != ''">and ip = #{ip}</if>
@@ -118,7 +123,7 @@
            <if test="cameraCaptureArea != null  and cameraCaptureArea != ''">and camera_capture_area =
                #{cameraCaptureArea}
            </if>
            <if test="onState != null ">and on_state = #{onState}</if>
            <if test="onState != null ">and p.online = #{onState}</if>
            <if test="civilCode != null  and civilCode != ''">and civil_code = #{civilCode}</if>
            <if test="integratedDevice != null ">and integrated_device = #{integratedDevice}</if>
            <if test="cameraBrand != null ">and camera_brand = #{cameraBrand}</if>
@@ -140,8 +145,8 @@
            <if test="hybm != null  and hybm != ''">and hybm = #{hybm}</if>
            <if test="lxbm != null ">and lxbm = #{lxbm}</if>
            <if test="recovery != null ">and p.recovery = #{recovery}</if>
            ${params.dataScope}
        </where>
        ${params.dataScope}
    </select>
    <select id="selectMonitorVOList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
@@ -307,26 +312,35 @@
    <select id="getVideoCount" resultType="java.util.Map">
        SELECT count(*) AS totalPosts,
        IFNULL(SUM(IF(on_state = 1, 1, 0)), 0) AS totalMembers,
        IFNULL(SUM(IF(on_state = 2, 1, 0)), 0) AS postsPercentage,
        IFNULL(ROUND(SUM(IF(on_state = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage
        FROM t_monitor m
        IFNULL(SUM(IF(p.online = 1, 1, 0)), 0) AS totalMembers,
        IFNULL(SUM(IF(p.online = 0, 1, 0)), 0) AS postsPercentage,
        IFNULL(ROUND(SUM(IF(p.online, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage FROM t_monitor m
        left join t_yw_point p on m.serial_number = p.serial_number
        left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
        <where>
            camera_fun_type like concat('%', #{cameraFunType}, '%')
            <if test="provinceTag!=null">
                and p.province_tag = #{provinceTag}
            </if>
            ${params.dataScope}
        </where>
    </select>
    <select id="recoveryException" resultType="java.util.Map">
        <![CDATA[
        SELECT count(*)                                                          AS totalPosts,
               IFNULL(SUM(IF(on_state = 1, 1, 0)), 0)                            AS totalMembers,
               IFNULL(SUM(IF(on_state = 2, 1, 0)), 0)                            AS postsPercentage,
               IFNULL(ROUND(SUM(IF(on_state = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage
               IFNULL(SUM(IF(p.online = 1, 1, 0)), 0)                            AS totalMembers,
               IFNULL(SUM(IF(p.online = 0, 1, 0)), 0)                            AS postsPercentage,
               IFNULL(ROUND(SUM(IF(p.online = 1, 1, 0)) / count(*) * 100, 2), 0) as viewsPercentage
        FROM t_monitor t
                 LEFT JOIN t_yw_point p ON t.serial_number = p.serial_number
        WHERE p.recovery = 1
           OR TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <= #{time}
        ]]>
        LEFT JOIN t_yw_point p ON t.serial_number = p.serial_number
        left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
        <where>
            (p.recovery = 1 OR TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <![CDATA[<=]]> #{time})
             <if test="provinceTag!=null">
                and p.province_tag = #{provinceTag}
             </if>
        ${params.dataScope}
        </where>
    </select>
    <select id="selectRecoveryMonitor" resultType="com.ycl.platform.domain.vo.TMonitorVO">