<?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> 
 |