<?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,logtime, data_value AS "dataValue",model,imei,d.cell,name AS "deviceName",status,d.id,create_user_id AS "createUserId", create_user_name AS "createUserName" 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[ >= ]]> #{request.beginCell} </if> <if test="request.endCell!='' and request.endCell!=null"> AND cell <![CDATA[ <= ]]> #{request.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 ddd.logtime AS logtime,data_value,ddd.devcode,cell FROM device_data ddd JOIN ( SELECT Max(logtime) AS logtime,devcode FROM device_data GROUP BY devcode )dd ON dd.logtime=ddd.logtime AND dd.devcode=ddd.devcode )dd ON dd.devcode=d.devcode order by create_time desc </select> </mapper>