<?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,uptime, data_value AS "dataValue",model,imei,dd.cell 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.beginCell!='' and request.beginCell!=null"> AND cell <![CDATA[ >= ]]> beginCell </if> <if test="request.endCell!='' and request.endCell!=null"> AND cell <![CDATA[ <= ]]> endCell </if> <if test="request.ids != null"> and id in <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> order by create_time desc )d 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 LEFT JOIN( SELECT max(uptime) AS uptime,data_value,devcode,cell FROM device_data GROUP BY devcode,data_value,cell )dd ON dd.devcode=d.devcode order by create_time desc </select> </mapper>