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