Newer
Older
sensorhub-plus / casic-iot-dao / src / main / resources / mapper / AlarmDataMapper.xml
chaizhuang on 11 May 2024 4 KB bug调试
<?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.casic.missiles.mapper.AlarmDataMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.casic.missiles.model.AlarmData">
        <id column="id" property="id"/>
        <result column="alarm_type" property="alarmType"/>
        <result column="alarm_category" property="alarmCategory"/>
        <result column="alarm_content" property="alarmContent"/>
        <result column="devcode" property="devcode"/>
        <result column="alarm_time" property="alarmTime"/>
        <result column="alarm_value" property="alarmValue"/>
        <result column="status" property="status"/>
        <result column="create_name" property="createName"/>
        <result column="create_time" property="createTime"/>
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, alarm_type, alarm_content, devcode, alarm_time, alarm_value, status, CreatorName, create_time
    </sql>

    <sql id="char_toDate" databaseId="mysql">
        ${paramStr}
    </sql>

    <sql id="char_toDate" databaseId="pgsql">
       TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone
    </sql>

    <sql id="char_toDate" databaseId="oracle">
        TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi')
    </sql>

    <select id="listPage" resultType="com.casic.missiles.dto.alarm.AlarmDataListVO">
        SELECT  dd.id,
                dd.devcode,
                dd.alarm_type AS "alarmType",
                dd.alarm_category AS "alarmCategory",
                dd.alarm_content AS "alarmContent",
                deptid,
                dd.create_time AS "createTime",
                dd.alarm_time AS "alarmTime",
                dd.alarm_value AS "alarmValue",
                dd.status,
                d.group_id AS "groupId",
                dg.group_name AS "groupName"
        FROM (
            SELECT *
            FROM alarm_data
            WHERE 1=1
            <if test="request.devcode!='' and request.devcode != null">
                AND devcode like CONCAT('%',#{request.devcode},'%')
            </if>
            <if test="request.alarmCategory!='' and request.alarmCategory != null">
                AND alarm_category =#{request.alarmCategory}
            </if>
            <if test="request.beginTime!='' and request.beginTime!=null">
                AND alarm_time <![CDATA[  >=  ]]>
                <include refid="char_toDate">
                    <property name="paramStr" value="#{request.beginTime}"/>
                </include>
            </if>
            <if test="request.endTime!='' and request.endTime!=null">
                AND alarm_time <![CDATA[  <=  ]]>
                <include refid="char_toDate">
                    <property name="paramStr" value="#{request.endTime}"/>
                </include>
            </if>
            <if test="request.ids != null">
                and id in
                <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        )dd
        JOIN (
            SELECT id, group_id,status,devcode
            FROM device
            WHERE valid=1
            <if test="request.devcode!='' and request.devcode != null">
                AND devcode like CONCAT('%',#{request.devcode},'%')
            </if>
            <if test="request.deviceType!='' and request.deviceType != null">
                AND device_type =#{request.deviceType}
            </if>
            <if test="request.groupId!='' and request.groupId != null">
                AND group_id=#{request.groupId}
            </if>
        )d ON d.devcode=dd.devcode
        JOIN (
            SELECT deptid,id,group_name
            FROM device_group
            WHERE valid=1
            <if test="request.groupId!='' and request.groupId != null">
                AND id=#{request.groupId}
            </if>
        ) dg ON dg.id=d.group_id
        order by logtime desc

    </select>

</mapper>