|  |  | 
 |  |  | <?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"> | 
 |  |  |         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | 
 |  |  |         "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 
 |  |  | <mapper namespace="com.ruoyi.alarm.wall.mapper.ArdAlarmWallMapper"> | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     <resultMap type="ArdAlarmWall" id="ArdAlarmWallResult"> | 
 |  |  |         <result property="id"    column="id"    /> | 
 |  |  |         <result property="wallId"    column="wall_id"    /> | 
 |  |  |         <result property="wallName"    column="wall_name"    /> | 
 |  |  |         <result property="userId"    column="user_id"    /> | 
 |  |  |         <result property="alarmType"    column="alarm_type"    /> | 
 |  |  |         <result property="alarmTime"    column="alarm_time"    /> | 
 |  |  |         <result property="longitude"    column="longitude"    /> | 
 |  |  |         <result property="latitude"    column="latitude"    /> | 
 |  |  |         <result property="altitude"    column="altitude"    /> | 
 |  |  |         <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="id" column="id"/> | 
 |  |  |         <result property="wallId" column="wall_id"/> | 
 |  |  |         <result property="wallName" column="wall_name"/> | 
 |  |  |         <result property="userId" column="user_id"/> | 
 |  |  |         <result property="alarmType" column="alarm_type"/> | 
 |  |  |         <result property="alarmTime" column="alarm_time"/> | 
 |  |  |         <result property="longitude" column="longitude"/> | 
 |  |  |         <result property="latitude" column="latitude"/> | 
 |  |  |         <result property="altitude" column="altitude"/> | 
 |  |  |         <result property="createBy" column="create_by"/> | 
 |  |  |         <result property="createTime" column="create_time"/> | 
 |  |  |         <result property="updateBy" column="update_by"/> | 
 |  |  |         <result property="updateTime" column="update_time"/> | 
 |  |  |     </resultMap> | 
 |  |  |  | 
 |  |  |     <sql id="selectArdAlarmWallVo"> | 
 |  |  |         select id,wall_id,wall_name, user_id, alarm_type, alarm_time, longitude, latitude, altitude, create_by, create_time, update_by, update_time from ard_alarm_wall | 
 |  |  |         select id, | 
 |  |  |                wall_id, | 
 |  |  |                wall_name, | 
 |  |  |                user_id, | 
 |  |  |                alarm_type, | 
 |  |  |                alarm_time, | 
 |  |  |                longitude, | 
 |  |  |                latitude, | 
 |  |  |                altitude, | 
 |  |  |                create_by, | 
 |  |  |                create_time, | 
 |  |  |                update_by, | 
 |  |  |                update_time | 
 |  |  |         from ard_alarm_wall | 
 |  |  |     </sql> | 
 |  |  |  | 
 |  |  |     <select id="selectArdAlarmWallList" parameterType="ArdAlarmWall" resultMap="ArdAlarmWallResult"> | 
 |  |  |         <include refid="selectArdAlarmWallVo"/> | 
 |  |  |         <where> | 
 |  |  |             <if test="wallId != null  and wallId != ''"> and wall_id = #{wallId}</if> | 
 |  |  |             <if test="wallName != null  and wallName != ''"> and wall_name = #{wallName}</if> | 
 |  |  |             <if test="userId != null  and userId != ''"> and user_id = #{userId}</if> | 
 |  |  |             <if test="alarmType != null  and alarmType != ''"> and alarm_type = #{alarmType}</if> | 
 |  |  |             <if test="alarmTime != null "> and alarm_time = #{alarmTime}</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="wallId != null  and wallId != ''">and wall_id = #{wallId}</if> | 
 |  |  |             <if test="wallName != null  and wallName != ''">and wall_name like concat('%', #{wallName}, '%')</if> | 
 |  |  |             <if test="userId != null  and userId != ''">and user_id = #{userId}</if> | 
 |  |  |             <if test="alarmType != null  and alarmType != ''">and alarm_type = #{alarmType}</if> | 
 |  |  | <!--            <if test="alarmTime != null ">and alarm_time = #{alarmTime}</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="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> | 
 |  |  |         order by alarm_time desc | 
 |  |  |     </select> | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     <select id="selectArdAlarmWallById" parameterType="String" resultMap="ArdAlarmWallResult"> | 
 |  |  |         <include refid="selectArdAlarmWallVo"/> | 
 |  |  |         where id = #{id} | 
 |  |  |     </select> | 
 |  |  |          | 
 |  |  |  | 
 |  |  |     <insert id="insertArdAlarmWall" parameterType="ArdAlarmWall"> | 
 |  |  |         insert into ard_alarm_wall | 
 |  |  |         <trim prefix="(" suffix=")" suffixOverrides=","> | 
 |  |  | 
 |  |  |             <if test="createTime != null">create_time,</if> | 
 |  |  |             <if test="updateBy != null">update_by,</if> | 
 |  |  |             <if test="updateTime != null">update_time,</if> | 
 |  |  |          </trim> | 
 |  |  |         </trim> | 
 |  |  |         <trim prefix="values (" suffix=")" suffixOverrides=","> | 
 |  |  |             <if test="id != null">#{id},</if> | 
 |  |  |             <if test="wallId != null">#{wallId},</if> | 
 |  |  | 
 |  |  |             <if test="createTime != null">#{createTime},</if> | 
 |  |  |             <if test="updateBy != null">#{updateBy},</if> | 
 |  |  |             <if test="updateTime != null">#{updateTime},</if> | 
 |  |  |          </trim> | 
 |  |  |         </trim> | 
 |  |  |     </insert> | 
 |  |  |  | 
 |  |  |     <update id="updateArdAlarmWall" parameterType="ArdAlarmWall"> | 
 |  |  | 
 |  |  |     </update> | 
 |  |  |  | 
 |  |  |     <delete id="deleteArdAlarmWallById" parameterType="String"> | 
 |  |  |         delete from ard_alarm_wall where id = #{id} | 
 |  |  |         delete | 
 |  |  |         from ard_alarm_wall | 
 |  |  |         where id = #{id} | 
 |  |  |     </delete> | 
 |  |  |  | 
 |  |  |     <delete id="deleteArdAlarmWallByIds" parameterType="String"> | 
 |  |  |         delete from ard_alarm_wall where id in  | 
 |  |  |         delete from ard_alarm_wall where id in | 
 |  |  |         <foreach item="id" collection="array" open="(" separator="," close=")"> | 
 |  |  |             #{id} | 
 |  |  |         </foreach> | 
 |  |  |     </delete> | 
 |  |  | </mapper> | 
 |  |  |     <select id="selectCountByAlarmTime" resultType="Integer"> | 
 |  |  |         SELECT COUNT(DISTINCT aaw.wall_name) | 
 |  |  |         FROM ard_alarm_wall aaw | 
 |  |  |         WHERE aaw.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE | 
 |  |  |           and aaw.view_time is null | 
 |  |  |     </select> | 
 |  |  |     <select id="selectListAllByCommand" resultMap="ArdAlarmWallResult"> | 
 |  |  |         SELECT T.* | 
 |  |  |         FROM ( | 
 |  |  |                  SELECT aaa.ID, | 
 |  |  |                         aaa.user_id, | 
 |  |  |                         aaa.wall_NAME, | 
 |  |  |                         aaa.alarm_time, | 
 |  |  |                         aaa.longitude, | 
 |  |  |                         aaa.latitude, | 
 |  |  |                         aaa.altitude, | 
 |  |  |                         ROW_NUMBER() OVER ( PARTITION BY aaa.wall_NAME ORDER BY aaa.alarm_time DESC ) AS rn, COUNT(CASE WHEN aaa.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aaa.wall_NAME ) AS COUNT, | 
 |  |  |                       COUNT ( aaa.alarm_time ) OVER ( PARTITION BY aaa.wall_NAME ) AS total | 
 |  |  |                  FROM | 
 |  |  |                      ard_alarm_wall aaa | 
 |  |  |                  WHERE | 
 |  |  |                      aaa.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE ) | 
 |  |  |                  ORDER BY | 
 |  |  |                      aaa.create_time DESC | 
 |  |  |              ) T | 
 |  |  |         WHERE T.rn = 1 | 
 |  |  |     </select> | 
 |  |  |     <update id="updateViewTimeByUserId" parameterType="String"> | 
 |  |  |         update ard_alarm_wall | 
 |  |  |         set view_time=#{viewTime} | 
 |  |  |         where user_id = #{userId} | 
 |  |  |           and create_time <= #{createTime} | 
 |  |  |           and view_time is null | 
 |  |  |     </update> | 
 |  |  |     <select id="wallYear" resultType="com.ruoyi.statistical.vo.CountVo"> | 
 |  |  |         select to_char(alarm_time::DATE, 'MM') as date,count(id) | 
 |  |  |         from ard_alarm_wall | 
 |  |  |         where alarm_time >= #{start} and  alarm_time <= #{end}  group by date order by date | 
 |  |  |     </select> | 
 |  |  |     <select id="wallMonth" resultType="com.ruoyi.statistical.vo.CountVo"> | 
 |  |  |         select to_char(alarm_time::DATE, 'dd') as date,count(id) | 
 |  |  |         from ard_alarm_wall | 
 |  |  |         where alarm_time >= #{start} and  alarm_time <= #{end}  group by date order by date | 
 |  |  |     </select> | 
 |  |  | </mapper> |