xiangpei
2024-08-05 2a57a16c9b54e23050a4fa534abb5ebbb6e846a8
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycl.platform.mapper.TMonitorMapper">
    <resultMap type="TMonitor" id="TMonitorResult">
    <resultMap type="com.ycl.platform.domain.entity.TMonitor" id="TMonitorResult">
        <result property="id"    column="id"    />
        <result property="serialNumber"    column="serial_number"    />
        <result property="name"    column="name"    />
@@ -36,21 +36,28 @@
        <result property="cameraDept"    column="camera_dept"    />
        <result property="hybm"    column="hybm"    />
        <result property="lxbm"    column="lxbm"    />
        <result property="reason"    column="reason"    />
        <result property="recovery"    column="recovery"    />
        <result property="recoveryTime"    column="recovery_time"    />
        <result property="deptId"    column="dept_id"    />
    </resultMap>
    <sql id="selectTMonitorVo">
        select id, serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude, camera_capture_area, on_state, civil_code, integrated_device, camera_brand, address, net_working, public_security, installed_time, management_unit, mu_contact_info, storage_days, monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format, camera_dept, hybm, lxbm from t_monitor
    </sql>
    <select id="selectTMonitorList" parameterType="TMonitor" resultMap="TMonitorResult">
        <include refid="selectTMonitorVo"/>
    <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, integrated_device, camera_brand, address, net_working, public_security, installed_time, management_unit, mu_contact_info, storage_days
        , monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format, camera_dept, hybm, lxbm, d.dept_name 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
        <where>
            <if test="serialNumber != null  and serialNumber != ''"> and serial_number = #{serialNumber}</if>
            <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="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>
            <if test="cameraFunType != null  and cameraFunType != ''"> and camera_fun_type = #{cameraFunType}</if>
            <if test="cameraFunType != null  and cameraFunType != ''"> and camera_fun_type like concat('%', #{cameraFunType}, '%')</if>
            <if test="longitude != null  and longitude != ''"> and longitude = #{longitude}</if>
            <if test="latitude != null  and latitude != ''"> and latitude = #{latitude}</if>
            <if test="cameraCaptureArea != null  and cameraCaptureArea != ''"> and camera_capture_area = #{cameraCaptureArea}</if>
@@ -58,7 +65,7 @@
            <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>
            <if test="address != null  and address != ''"> and address = #{address}</if>
            <if test="address != null  and address != ''"> and address like concat('%',#{address},'%') </if>
            <if test="netWorking != null "> and net_working = #{netWorking}</if>
            <if test="publicSecurity != null  and publicSecurity != ''"> and public_security = #{publicSecurity}</if>
            <if test="installedTime != null "> and installed_time = #{installedTime}</if>
@@ -75,7 +82,9 @@
            <if test="cameraDept != null  and cameraDept != ''"> and camera_dept = #{cameraDept}</if>
            <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>
        </where>
        ${params.dataScope}
    </select>
    <select id="selectTMonitorById" parameterType="Long" resultMap="TMonitorResult">
@@ -83,7 +92,7 @@
        where id = #{id}
    </select>
    <insert id="insertTMonitor" parameterType="TMonitor" useGeneratedKeys="true" keyProperty="id">
    <insert id="insertTMonitor" parameterType="com.ycl.platform.domain.entity.TMonitor" useGeneratedKeys="true" keyProperty="id">
        insert into t_monitor
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="serialNumber != null and serialNumber != ''">serial_number,</if>
@@ -151,7 +160,7 @@
         </trim>
    </insert>
    <update id="updateTMonitor" parameterType="TMonitor">
    <update id="updateTMonitor" parameterType="com.ycl.platform.domain.entity.TMonitor">
        update t_monitor
        <trim prefix="SET" suffixOverrides=",">
            <if test="serialNumber != null and serialNumber != ''">serial_number = #{serialNumber},</if>
@@ -198,4 +207,59 @@
            #{id}
        </foreach>
    </delete>
    <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
            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
        <where>
            camera_fun_type like concat('%', #{cameraFunType}, '%')
        </where>
        ${params.dataScope}
    </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
        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}
        ]]>
    </select>
    <select id="selectRecoveryMonitor" resultType="com.ycl.platform.domain.vo.TMonitorVO">
        <![CDATA[
        SELECT t.id, p.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude, camera_capture_area, on_state, civil_code, integrated_device, camera_brand, address, net_working, public_security, installed_time, management_unit, mu_contact_info, storage_days, monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format, camera_dept, hybm, lxbm
        FROM t_monitor t
        LEFT JOIN t_yw_point p ON t.serial_number = p.serial_number
        WHERE TIMESTAMPDIFF(DAY, p.recovery_time, NOW()) <= #{time}
        ]]>
    </select>
    <select id="home" resultType="java.util.Map">
        SELECT
            u.unit_name AS name,
            CONCAT(MONTH(w.create_time), '月') AS months,
            COUNT(w.id) AS num1,
            COUNT(m.id) - COUNT(w.id) AS num2
        FROM
            t_monitor m
                LEFT JOIN t_yw_point p ON m.serial_number = p.serial_number
                LEFT JOIN t_yw_unit u ON p.unit_id = u.id
                LEFT JOIN t_work_order w ON p.id = w.point_id
        WHERE u.id = #{unitId} AND MONTH(w.create_time) IS NOT NULL
          <if test="dateRange != null and dateRange.size > 0">
            AND DATE_FORMAT(w.create_time, '%Y-%m') BETWEEN #{dateRange[0]} AND #{dateRange[1]}
          </if>
        GROUP BY months
        ORDER BY months
    </select>
</mapper>