| <?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.matrix.system.hive.dao.SysBedInfoDao"> | 
|       | 
|     <resultMap type="SysBedInfo" id="SysBedInfoMap"> | 
|             <id property="id" column="ID" /> | 
|             <result property="bedNo" column="BED_NO" /> | 
|             <result property="bedName" column="BED_NAME" /> | 
|             <result property="roomName" column="ROOM_NAME" /> | 
|             <result property="floor" column="FLOOR" /> | 
|             <result property="shopId" column="SHOP_ID" /> | 
|             <result property="shopName" column="SHOP_NAME" /> | 
|     </resultMap> | 
|     <!--  插入方法   --> | 
|     <insert id="insert" parameterType="SysBedInfo" | 
|         useGeneratedKeys="true" keyProperty="id"> | 
|         INSERT INTO sys_bed_info ( | 
|             ID, | 
|             BED_NO, | 
|             BED_NAME, | 
|             ROOM_NAME, | 
|             FLOOR, | 
|             SHOP_ID | 
|         ) | 
|     VALUES ( | 
|             #{id}, | 
|             #{bedNo}, | 
|             #{bedName}, | 
|             #{roomName}, | 
|             #{floor}, | 
|             #{shopId} | 
|     ) | 
|     </insert> | 
|      | 
|      | 
|     <!--  根据id更新 部分更新   --> | 
|     <update id="update" > | 
|         UPDATE sys_bed_info | 
|         <set> | 
|                 <if test="bedNo != null and bedNo !='' "> | 
|                     BED_NO = #{bedNo}, | 
|                 </if>         | 
|                 <if test="bedName != null and bedName !='' "> | 
|                     BED_NAME = #{bedName}, | 
|                 </if>         | 
|                 <if test="roomName != null and roomName !='' "> | 
|                     ROOM_NAME = #{roomName}, | 
|                 </if>         | 
|                 <if test="floor != null and floor !='' "> | 
|                     FLOOR = #{floor}, | 
|                 </if>         | 
|                 <if test="shopId != null and shopId !='' "> | 
|                     SHOP_ID = #{shopId}, | 
|                 </if>         | 
|         </set> | 
|         WHERE ID=#{id}  | 
|     </update> | 
|      | 
|      | 
|      | 
|     <!-- 批量删除 --> | 
|     <delete id="deleteByIds" parameterType="java.util.List"> | 
|         delete from sys_bed_info where  ID in | 
|         <foreach collection="list" index="index" item="item" open="(" | 
|             separator="," close=")"> | 
|             #{item} | 
|         </foreach> | 
|     </delete> | 
|          | 
|     <!-- 根据id删除--> | 
|     <delete id="deleteById" > | 
|         DELETE FROM sys_bed_info | 
|         where  ID=#{id}  | 
|     </delete> | 
|      | 
|      | 
|      | 
|     <!-- 分页查询 --> | 
|     <select id="selectInPage" resultMap="SysBedInfoMap"> | 
|         select  | 
|             ID, | 
|             BED_NO, | 
|             BED_NAME, | 
|             ROOM_NAME, | 
|             FLOOR, | 
|             SHOP_ID,<!-- 所属门店id --> | 
|             (select SHOP_NAME from sys_shop_info t where SHOP_ID = t.id) SHOP_NAME<!-- 所属门店名称 --> | 
|         from sys_bed_info | 
|         where 1=1 | 
|         <if test="record!=null"> | 
|             <if test="record.id != null and record.id !='' "> | 
|                 and ID  = #{record.id} | 
|             </if> | 
|             <if test="record.bedNo != null and record.bedNo !='' "> | 
|                 and BED_NO  like CONCAT('%',#{record.bedNo},'%')  | 
|             </if> | 
|             <if test="record.bedName != null and record.bedName !='' "> | 
|                 and BED_NAME  like CONCAT('%',#{record.bedName},'%') | 
|             </if> | 
|             <if test="record.roomName != null and record.roomName !='' "> | 
|                 and ROOM_NAME  like CONCAT('%',#{record.roomName},'%') | 
|             </if> | 
|             <if test="record.shopId != null and record.shopId !='' "> | 
|                 and SHOP_ID  = #{record.shopId} | 
|             </if> | 
|         </if> | 
|         <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> | 
|             <if test="pageVo.sort !=null  and pageVo.order !=null"> | 
|                 order by | 
|                 ${pageVo.sort} ${pageVo.order} | 
|             </if> | 
|             <if test="pageVo.offset >=0  and pageVo.limit >0"> | 
|                 limit | 
|                 #{pageVo.offset},#{pageVo.limit} | 
|             </if> | 
|         </if> | 
|     </select> | 
|      | 
|     <!-- 查询总条数 --> | 
|     <select id="selectTotalRecord"    resultType="java.lang.Integer"> | 
|     select count(*) | 
|     from sys_bed_info | 
|         where 1=1 | 
|         <if test="record!=null"> | 
|             <if test="record.id != null and record.id !='' "> | 
|                 and ID  = #{record.id} | 
|             </if> | 
|             <if test="record.bedNo != null and record.bedNo !='' "> | 
|                 and BED_NO   = #{record.bedNo} | 
|             </if> | 
|             <if test="record.bedName != null and record.bedName !='' "> | 
|                 and BED_NAME  like CONCAT('%',#{record.bedName},'%') | 
|             </if> | 
|             <if test="record.roomName != null and record.roomName !='' "> | 
|                 and ROOM_NAME    like CONCAT('%',#{record.roomName},'%') | 
|             </if> | 
|             <if test="record.shopId != null and record.shopId !='' "> | 
|                 and SHOP_ID  = #{record.shopId} | 
|             </if> | 
|         </if> | 
|     </select> | 
|   | 
|     <!-- 根据id查询--> | 
|     <select id="selectById" resultMap="SysBedInfoMap"> | 
|         select  | 
|             ID, | 
|             BED_NO, | 
|             BED_NAME, | 
|             ROOM_NAME, | 
|             FLOOR, | 
|             SHOP_ID,<!-- 所属门店id --> | 
|             (select SHOP_NAME from sys_shop_info t where SHOP_ID = t.id) SHOP_NAME<!-- 所属门店名称 --> | 
|         from sys_bed_info | 
|         where  id=#{id}  | 
|     </select>     | 
|      | 
|      | 
|     <!-- 根据对象查询--> | 
|     <select id="selectByModel" resultMap="SysBedInfoMap"> | 
|         select  | 
|             ID, | 
|             BED_NO, | 
|             BED_NAME, | 
|             ROOM_NAME, | 
|             FLOOR, | 
|             SHOP_ID,<!-- 所属门店id --> | 
|             (select SHOP_NAME from sys_shop_info t where SHOP_ID = t.ID) SHOP_NAME<!-- 所属门店名称 --> | 
|         from sys_bed_info | 
|         where 1=1 | 
|         <if test="record!=null"> | 
|             <if test="record.id != null and record.id !='' "> | 
|                 and ID  = #{record.id} | 
|             </if> | 
|             <if test="record.bedNo != null and record.bedNo !='' "> | 
|                 and BED_NO   = #{record.bedNo} | 
|             </if> | 
|             <if test="record.bedName != null and record.bedName !='' "> | 
|                 and BED_NAME  like CONCAT('%',#{record.bedName},'%') | 
|             </if> | 
|             <if test="record.roomName != null and record.roomName !='' "> | 
|                 and ROOM_NAME like CONCAT('%',#{record.roomName},'%') | 
|             </if> | 
|             <if test="record.shopId != null and record.shopId !='' "> | 
|                 and SHOP_ID  = #{record.shopId} | 
|             </if> | 
|         </if> | 
|     </select> | 
|     <!-- 查询空闲的床位 --> | 
|     <select id="findFreeBed"  resultMap="SysBedInfoMap"> | 
|     SELECT | 
|     DISTINCT | 
|     b.ID,b.BED_NAME | 
|     FROM | 
|         sys_bed_info b | 
|     LEFT JOIN sys_bed_state a ON a.BED_ID = b.ID | 
|     WHERE | 
|         b.SHOP_ID = #{projService.shopId} | 
|     AND b.ID NOT IN ( | 
|         SELECT | 
|             BED_ID | 
|         FROM | 
|             sys_bed_state | 
|         WHERE | 
|         SERVICE_ID <![CDATA[<>]]> #{projService.id} | 
|         AND | 
|         BED_STATE = '使用中' | 
|        AND | 
|         ( | 
|          #{projService.startTime} BETWEEN START_TIME AND END_TIME  | 
|           OR | 
|          #{projService.endTime} BETWEEN START_TIME     AND END_TIME | 
|           OR  | 
|           START_TIME BETWEEN #{projService.startTime} AND #{projService.endTime} | 
|           OR | 
|           END_TIME  BETWEEN #{projService.startTime} AND #{projService.endTime} | 
|         ) | 
|     ) | 
|     </select> | 
|      | 
|     <!-- 查询空闲的床位数量 --> | 
|     <select id="findFreeBedCount"  resultType="java.lang.Integer"> | 
|     SELECT | 
|     COUNT(DISTINCT b.id) | 
|     FROM | 
|         sys_bed_info b | 
|     LEFT JOIN sys_bed_state a ON a.BED_ID = b.ID | 
|     WHERE | 
|         b.SHOP_ID = #{projService.shopId} | 
|     AND b.ID NOT IN ( | 
|         SELECT | 
|             BED_ID | 
|         FROM | 
|             sys_bed_state | 
|         WHERE | 
|         BED_STATE = '使用中' | 
|         AND | 
|         ( | 
|             #{projService.startTime} BETWEEN START_TIME AND END_TIME  | 
|           OR | 
|             #{projService.endTime} BETWEEN START_TIME     AND END_TIME | 
|             OR  | 
|           START_TIME BETWEEN #{projService.startTime} AND #{projService.endTime} | 
|           OR | 
|           END_TIME  BETWEEN #{projService.startTime} AND #{projService.endTime} | 
|         ) | 
|     ) | 
|          | 
|     </select> | 
|      | 
| </mapper> |