<?xml version="1.0" encoding="UTF-8" ?> 
 | 
<!DOCTYPE mapper 
 | 
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 | 
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
 | 
<mapper namespace="com.ruoyi.alarm.superbrain.mapper.ArdAlarmSuperBrainMapper"> 
 | 
  
 | 
    <resultMap type="ArdAlarmSuperBrain" id="ArdAlarmSuperBrainResult"> 
 | 
        <result property="id" column="id"/> 
 | 
        <result property="alarmName" column="alarm_name"/> 
 | 
        <result property="alarmType" column="alarm_type"/> 
 | 
        <result property="alarmTime" column="alarm_time"/> 
 | 
        <result property="deviceId" column="device_id"/> 
 | 
        <result property="deviceName" column="device_name"/> 
 | 
        <result property="chanNo" column="chan_no"/> 
 | 
        <result property="longitude" column="longitude"/> 
 | 
        <result property="latitude" column="latitude"/> 
 | 
        <result property="altitude" column="altitude"/> 
 | 
        <result property="picUrl" column="pic_url"/> 
 | 
        <result property="faceUrl" column="face_url"/> 
 | 
        <result property="createBy" column="create_by"/> 
 | 
        <result property="createTime" column="create_time"/> 
 | 
        <result property="updateBy" column="update_by"/> 
 | 
        <result property="updateTime" column="update_time"/> 
 | 
        <result property="viewTime" column="view_time"/> 
 | 
    </resultMap> 
 | 
  
 | 
    <sql id="selectArdAlarmSuperBrainVo"> 
 | 
        select id, 
 | 
               alarm_name, 
 | 
               alarm_type, 
 | 
               alarm_time, 
 | 
               device_id, 
 | 
               device_name, 
 | 
               chan_no, 
 | 
               longitude, 
 | 
               latitude, 
 | 
               altitude, 
 | 
               pic_url, 
 | 
               face_url, 
 | 
               create_by, 
 | 
               create_time, 
 | 
               update_by, 
 | 
               update_time, 
 | 
               view_time 
 | 
        from ard_alarm_super_brain 
 | 
    </sql> 
 | 
  
 | 
    <select id="selectArdAlarmSuperBrainList" parameterType="ArdAlarmSuperBrain" resultMap="ArdAlarmSuperBrainResult"> 
 | 
        <include refid="selectArdAlarmSuperBrainVo"/> 
 | 
        <where> 
 | 
            <if test="alarmName != null  and alarmName != ''">and alarm_name like '%'||#{alarmName}||'%'</if> 
 | 
            <if test="alarmType != null  and alarmType != ''">and alarm_type = #{alarmType}</if> 
 | 
            <if test="alarmTime != null ">and alarm_time = #{alarmTime}</if> 
 | 
            <if test="deviceId != null  and deviceId != ''">and device_id = #{deviceId}</if> 
 | 
            <if test="deviceName != null  and deviceName != ''">and device_name like '%'||#{deviceName}||'%'</if> 
 | 
            <if test="chanNo != null ">and chan_no = #{chanNo}</if> 
 | 
            <if test="longitude != null ">and longitude = #{longitude}</if> 
 | 
            <if test="latitude != null ">and latitude = #{latitude}</if> 
 | 
            <if test="altitude != null ">and altitude = #{altitude}</if> 
 | 
            <if test="picUrl != null  and picUrl != ''">and pic_url = #{picUrl}</if> 
 | 
            <if test="faceUrl != null  and faceUrl != ''">and face_url = #{faceUrl}</if> 
 | 
            <if test="viewTime != null ">and view_time = #{viewTime}</if> 
 | 
  
 | 
            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> 
 | 
                AND alarm_time >= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss') 
 | 
            </if> 
 | 
            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> 
 | 
                AND alarm_time <= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss') 
 | 
            </if> 
 | 
  
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectArdAlarmSuperBrainById" parameterType="String" resultMap="ArdAlarmSuperBrainResult"> 
 | 
        <include refid="selectArdAlarmSuperBrainVo"/> 
 | 
        where id = #{id} 
 | 
    </select> 
 | 
  
 | 
    <insert id="insertArdAlarmSuperBrain" parameterType="ArdAlarmSuperBrain"> 
 | 
        insert into ard_alarm_super_brain 
 | 
        <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
            <if test="id != null">id,</if> 
 | 
            <if test="alarmName != null">alarm_name,</if> 
 | 
            <if test="alarmType != null">alarm_type,</if> 
 | 
            <if test="alarmTime != null">alarm_time,</if> 
 | 
            <if test="deviceId != null">device_id,</if> 
 | 
            <if test="deviceName != null">device_name,</if> 
 | 
            <if test="chanNo != null">chan_no,</if> 
 | 
            <if test="longitude != null">longitude,</if> 
 | 
            <if test="latitude != null">latitude,</if> 
 | 
            <if test="altitude != null">altitude,</if> 
 | 
            <if test="picUrl != null">pic_url,</if> 
 | 
            <if test="faceUrl != null">face_url,</if> 
 | 
            <if test="createBy != null">create_by,</if> 
 | 
            <if test="createTime != null">create_time,</if> 
 | 
            <if test="updateBy != null">update_by,</if> 
 | 
            <if test="updateTime != null">update_time,</if> 
 | 
            <if test="viewTime != null">view_time,</if> 
 | 
        </trim> 
 | 
        <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
            <if test="id != null">#{id},</if> 
 | 
            <if test="alarmName != null">#{alarmName},</if> 
 | 
            <if test="alarmType != null">#{alarmType},</if> 
 | 
            <if test="alarmTime != null">#{alarmTime},</if> 
 | 
            <if test="deviceId != null">#{deviceId},</if> 
 | 
            <if test="deviceName != null">#{deviceName},</if> 
 | 
            <if test="chanNo != null">#{chanNo},</if> 
 | 
            <if test="longitude != null">#{longitude},</if> 
 | 
            <if test="latitude != null">#{latitude},</if> 
 | 
            <if test="altitude != null">#{altitude},</if> 
 | 
            <if test="picUrl != null">#{picUrl},</if> 
 | 
            <if test="faceUrl != null">#{faceUrl},</if> 
 | 
            <if test="createBy != null">#{createBy},</if> 
 | 
            <if test="createTime != null">#{createTime},</if> 
 | 
            <if test="updateBy != null">#{updateBy},</if> 
 | 
            <if test="updateTime != null">#{updateTime},</if> 
 | 
            <if test="viewTime != null">#{viewTime},</if> 
 | 
        </trim> 
 | 
    </insert> 
 | 
  
 | 
    <update id="updateArdAlarmSuperBrain" parameterType="ArdAlarmSuperBrain"> 
 | 
        update ard_alarm_super_brain 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            <if test="alarmName != null">alarm_name = #{alarmName},</if> 
 | 
            <if test="alarmType != null">alarm_type = #{alarmType},</if> 
 | 
            <if test="alarmTime != null">alarm_time = #{alarmTime},</if> 
 | 
            <if test="deviceId != null">device_id = #{deviceId},</if> 
 | 
            <if test="deviceName != null">device_name = #{deviceName},</if> 
 | 
            <if test="chanNo != null">chan_no = #{chanNo},</if> 
 | 
            <if test="longitude != null">longitude = #{longitude},</if> 
 | 
            <if test="latitude != null">latitude = #{latitude},</if> 
 | 
            <if test="altitude != null">altitude = #{altitude},</if> 
 | 
            <if test="picUrl != null">pic_url = #{picUrl},</if> 
 | 
            <if test="faceUrl != null">face_url = #{faceUrl},</if> 
 | 
            <if test="createBy != null">create_by = #{createBy},</if> 
 | 
            <if test="createTime != null">create_time = #{createTime},</if> 
 | 
            <if test="updateBy != null">update_by = #{updateBy},</if> 
 | 
            <if test="updateTime != null">update_time = #{updateTime},</if> 
 | 
            <if test="viewTime != null">view_time = #{viewTime},</if> 
 | 
        </trim> 
 | 
        where id = #{id} 
 | 
    </update> 
 | 
  
 | 
    <delete id="deleteArdAlarmSuperBrainById" parameterType="String"> 
 | 
        delete 
 | 
        from ard_alarm_super_brain 
 | 
        where id = #{id} 
 | 
    </delete> 
 | 
  
 | 
    <delete id="deleteArdAlarmSuperBrainByIds" parameterType="String"> 
 | 
        delete from ard_alarm_super_brain where id in 
 | 
        <foreach item="id" collection="array" open="(" separator="," close=")"> 
 | 
            #{id} 
 | 
        </foreach> 
 | 
    </delete> 
 | 
    <select id="selectCountByAlarmTime" resultType="Integer"> 
 | 
        SELECT COUNT(DISTINCT aasb.id) 
 | 
        FROM ard_alarm_super_brain aasb 
 | 
        WHERE aasb.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE 
 | 
          and aasb.view_time is null 
 | 
    </select> 
 | 
    <select id="selectListAllByCommand" resultMap="ArdAlarmSuperBrainResult"> 
 | 
        SELECT T.* 
 | 
        FROM ( 
 | 
                 SELECT aasb.ID, 
 | 
                        aasb.alarm_name, 
 | 
                        aasb.alarm_type, 
 | 
                        aasb.alarm_time, 
 | 
                        aasb.longitude, 
 | 
                        aasb.latitude, 
 | 
                        aasb.altitude, 
 | 
                        ROW_NUMBER() OVER ( PARTITION BY aasb.alarm_type ORDER BY aasb.alarm_time DESC ) AS rn, COUNT(CASE WHEN aasb.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aasb.alarm_type ) AS COUNT, 
 | 
        COUNT ( aasb.alarm_time ) OVER ( PARTITION BY aasb.alarm_type ) AS total 
 | 
                 FROM 
 | 
                     ard_alarm_super_brain aasb 
 | 
                 WHERE 
 | 
                     aasb.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE ) 
 | 
                 ORDER BY 
 | 
                     aasb.alarm_time DESC 
 | 
             ) T 
 | 
        WHERE T.rn = 1 
 | 
    </select> 
 | 
    <update id="updateViewTimeByAlarmType" parameterType="String"> 
 | 
        update ard_alarm_super_brain 
 | 
        set view_time=#{viewTime} 
 | 
        where alarm_type = #{alarmType} 
 | 
          and alarm_time <= #{alarmTime} 
 | 
          and view_time is null 
 | 
    </update> 
 | 
</mapper> 
 |