‘liusuyi’
2023-06-13 321ad5573868f8a421509633b3ded03a6602efbc
ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -129,4 +129,36 @@
            #{id}
        </foreach>
    </delete>
    <select id="selectListAllByCommand" resultMap="ArdAlarmTubeResult">
        SELECT T.*
        FROM (
                 SELECT aat.ID,
                        aat.tube_id,
                        aat.tube_name,
                        aat.alarm_time,
                        aat.longitude,
                        aat.latitude,
                        aat.altitude,
                        ROW_NUMBER() OVER ( PARTITION BY aat.tube_id ORDER BY aat.alarm_time DESC ) AS rn,
                         COUNT(CASE WHEN aat.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aat.tube_id ) AS COUNT,
                  COUNT ( aat.alarm_time ) OVER ( PARTITION BY tube_id ) AS total
                 FROM
                     ard_alarm_tube aat
                 WHERE
                     aat.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
             ) T
        WHERE T.rn = 1
    </select>
    <select id="selectCountByStartTime" resultType="Integer">
        SELECT COUNT(DISTINCT aat.tube_id)
        FROM ard_alarm_tube aat
        WHERE aat.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE
    </select>
    <update id="updateViewTimeByTubeId" parameterType="String">
        update ard_alarm_tube
        set view_time=#{viewTime}
        where tube_id = #{tubeId}
          and alarm_time&lt;=#{alarmTime}
          and view_time is null
    </update>
</mapper>