<?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.DeviceGroupMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.DeviceGroup"> <id column="id" property="id" /> <result column="group_name" property="groupName" /> <result column="group_no" property="groupNo" /> <result column="descn" property="descn" /> <result column="deptid" property="deptid" /> <result column="create_time" property="createTime" /> <result column="create_user_id" property="createUserId" /> <result column="owner" property="owner" /> <result column="valid" property="valid" /> </resultMap> <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> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, name, owner, subcribe_ids, descn, dept, create_time, create_user_id </sql> <select id="listPage" resultType="com.casic.missiles.dto.group.DeviceGroupListVO"> SELECT dg.id,group_no AS "groupNo",belong_project AS "belongProject",deptid, count(d.id) AS "deviceCount",count(s.id) AS "subscribeCount",descn,count(d.id) AS "deviceCount" FROM ( SELECT * FROM DEVICE_GROUP WHERE valid=1 <if test="request.groupNo!='' AND request.groupNo != null"> AND group_no =#{request.groupNo} </if> <if test="request.groupName!='' AND request.groupName != null"> AND group_name =#{request.groupName} </if> <if test="request.ids != null"> and id in <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> <if test="request.beginTime!='' and request.beginTime!=null"> AND createTime <![CDATA[ >= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.beginTime}"/> </include> </if> <if test="request.endTime!='' and request.endTime!=null"> AND createTime <![CDATA[ <= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.endTime}"/> </include> </if> )dg JOIN ( SELECT id,group_id as "groupId" FROM DEVICE d WHERE VALID=1 )d N d.groupId=dg.id JOIN ( SELECT id,group_id as "groupId" FROM subscribe d )s ON s.groupId=dg.id group by dg.id </select> <select id="selectMaxNo" resultType="java.lang.Long"> SELECT IFNULL(max(RIGHT(group_no, 12)), 0) from device_group </select> </mapper>