Newer
Older
sensorhub-plus / casic-iot-dao / src / main / resources / mapper / DeviceMapper.xml
<?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.DeviceMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.casic.missiles.model.Device">
        <id column="id" property="id" />
        <result column="group_id" property="groupId" />
        <result column="product_id" property="productId" />
        <result column="devcode" property="devcode" />
        <result column="device_type" property="deviceType" />
        <result column="unit" property="unit" />
        <result column="model" property="model" />
        <result column="name" property="name" />
        <result column="status" property="status" />
        <result column="imei" property="imei" />
        <result column="create_time" property="createTime" />
        <result column="create_user_name" property="createUserName" />
        <result column="valid" property="valid" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, devcode, device_type, unit, name, product_id, status, imei, create_time, create_user_id
    </sql>

    <select id="listPage" resultType="com.casic.missiles.dto.device.DeviceListVO">
        SELECT device_type AS "deviceType",create_time AS "createTime",d.devcode,
        model,imei,name AS "deviceName",status,d.id,create_user_id AS "createUserId",
        create_user_name AS "createUserName", group_id as groupId, product_id as productId,ds.cell as cell,ds.LOG_TIME as logtime,ds.MONITOR_VALUE as dataValue
        FROM (
            SELECT *
            FROM device
            WHERE VALID=1
            <if test="request.groupId!='' and request.groupId != null">
                AND group_id =#{request.groupId}
            </if>
            <if test="request.devcode!='' and request.devcode != null">
                AND devcode like CONCAT('%',#{request.devcode},'%')
            </if>
            <if test="request.imei!='' and request.imei != null">
                AND imei like CONCAT('%',#{request.imei},'%')
            </if>
            <if test="request.deviceType!='' and request.deviceType != null">
                AND device_type =#{request.deviceType}
            </if>
            <if test="request.status!='' and request.status != null">
                AND status =#{request.status}
            </if>
            <if test="request.productId!='' and request.productId != null">
                AND product_id =#{request.productId}
            </if>

            <if test="request.ids != null">
                and id in
                <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        )d
        left JOIN device_latest_state ds on d.id = ds.DEVICE_ID
            JOIN (
            SELECT deptid,id
            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
        <where>
            <if test="request.beginCell!='' and request.beginCell!=null">
                AND ds.cell <![CDATA[  >=  ]]> #{request.beginCell}
            </if>
            <if test="request.endCell!='' and request.endCell!=null">
                AND ds.cell <![CDATA[  <=  ]]> #{request.endCell}
            </if>
        </where>
        order by create_time desc
    </select>

    <select id="listCtnbByDevCode" resultType="com.casic.missiles.dto.device.DeviceCtnbDTO">
        SELECT
            id, group_id, product_id, devcode, device_type, model, name, imei, iccid, sm4_key, version, status, valid, ctnb_device_id, ctnb_product_id, ctnb_master_key
        FROM
            device_ctnb_view
        WHERE
            devcode = #{devCode}
    </select>

</mapper>