<?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.SysBedStateDao">
|
|
<resultMap type="SysBedState" id="SysBedStateMap">
|
<id property="id" column="ID" />
|
<result property="bedId" column="BED_ID" />
|
<result property="startTime" column="START_TIME" />
|
<result property="endTime" column="END_TIME" />
|
<result property="bedState" column="BED_STATE" />
|
<result property="serviceId" column="SERVICE_ID" />
|
|
</resultMap>
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="SysBedState"
|
useGeneratedKeys="true" keyProperty="id">
|
INSERT INTO sys_bed_state (
|
ID,
|
BED_ID,
|
START_TIME,
|
END_TIME,
|
BED_STATE,
|
SERVICE_ID
|
)
|
VALUES (
|
#{id},
|
#{bedId},
|
#{startTime},
|
#{endTime},
|
#{bedState},
|
#{serviceId}
|
)
|
</insert>
|
|
|
<!-- 根据id更新 部分更新 -->
|
<update id="update" >
|
UPDATE sys_bed_state
|
<set>
|
<if test="bedId != null and bedId !='' ">
|
BED_ID = #{bedId},
|
</if>
|
<if test="startTime != null ">
|
START_TIME = #{startTime},
|
</if>
|
<if test="endTime != null ">
|
END_TIME = #{endTime},
|
</if>
|
<if test="bedState != null and bedState !='' ">
|
BED_STATE = #{bedState},
|
</if>
|
<if test="serviceId != null and serviceId !='' ">
|
SERVICE_ID = #{serviceId}
|
</if>
|
</set>
|
WHERE ID=#{id}
|
</update>
|
|
|
<!-- 根据床位id与 服务单id查询 被占用的床-->
|
<select id="selectBySerIdAndBedId" resultMap="SysBedStateMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<choose>
|
|
<when test="serId==null || bedId==null">
|
where 1=2
|
</when>
|
<otherwise>
|
where ( a.BED_STATE='使用中' or a.BED_STATE='使用结束')
|
and a.SERVICE_ID =#{serId}
|
and a.BED_ID=#{bedId}
|
</otherwise>
|
</choose>
|
</select>
|
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from sys_bed_state where ID in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除 -->
|
<delete id="deleteById" >
|
DELETE FROM sys_bed_state
|
where ID=#{id}
|
</delete>
|
|
<delete id="deleteByServiceId" >
|
DELETE FROM sys_bed_state where SERVICE_ID=#{serviceId}
|
</delete>
|
|
<!-- 查询指定时间里床位使用情况 -->
|
<select id="selectByTimeAndBed" resultMap="SysBedStateMap">
|
select
|
a.ID,
|
a.BED_ID,
|
a.START_TIME,
|
a.END_TIME,
|
a.BED_STATE,
|
a.SERVICE_ID
|
FROM
|
sys_bed_state a
|
LEFT JOIN sys_bed_info b ON b.ID = a.BED_ID
|
where a.BED_ID = #{bedId}
|
AND a.START_TIME BETWEEN #{minTime} and #{maxTime}
|
order by a.START_TIME
|
</select>
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="SysBedStateMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<include refid="where"></include>
|
<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="checkBedClash" resultType="java.lang.Integer">
|
SELECT
|
count(*)
|
FROM
|
sys_bed_state
|
WHERE 1=1 and BED_STATE='使用中'
|
<if test="record!=null">
|
<if test="record.startTime != null ">
|
AND
|
bed_ID=#{record.bedId}
|
AND
|
(
|
#{record.startTime} BETWEEN START_TIME and END_TIME
|
OR
|
#{record.endTime} BETWEEN START_TIME and END_TIME
|
OR
|
START_TIME BETWEEN #{record.startTime} and #{record.endTime}
|
OR
|
END_TIME BETWEEN #{record.startTime} and #{record.endTime}
|
)
|
AND
|
SERVICE_ID != #{record.serviceId}
|
</if>
|
</if>
|
</select>
|
<!-- 查询总条数 -->
|
<select id="selectTotalRecord" resultType="java.lang.Integer">
|
select count(*)
|
<include refid="from"></include>
|
<include refid="where"></include>
|
</select>
|
|
<!-- 根据id查询 -->
|
<select id="selectById" resultMap="SysBedStateMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
where a.ID=#{id}
|
</select>
|
|
|
<!-- 根据对象查询 -->
|
<select id="selectByModel" resultMap="SysBedStateMap">
|
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<include refid="where"></include>
|
</select>
|
<sql id="select">
|
SELECT
|
a.ID,
|
a.BED_ID,
|
a.START_TIME,
|
a.END_TIME,
|
a.BED_STATE,
|
a.SERVICE_ID
|
</sql>
|
<sql id="from">
|
FROM
|
sys_bed_state a
|
LEFT JOIN sys_bed_info b ON b.ID = a.BED_ID
|
</sql>
|
<sql id="where">
|
where 1=1
|
<if test="record!=null">
|
<if test="record.id != null and record.id !='' ">
|
and a.ID = #{record.id }
|
</if>
|
<if test="record.bedId != null and record.bedId !='' ">
|
and a.BED_ID = #{record.bedId}
|
</if>
|
<if test="record.startTime != null ">
|
and a.START_TIME = #{record.startTime}
|
</if>
|
<if test="record.endTime != null ">
|
and a.END_TIME = #{record.endTime}
|
</if>
|
<if test="record.bedState != null and record.bedState !='' ">
|
and a.BED_STATE = #{record.bedState}
|
</if>
|
<if test="record.serviceId != null and record.serviceId !='' ">
|
and a.SERVICE_ID = #{record.serviceId}
|
</if>
|
<!-- <if test="record.bedInfo != null and record.bedInfo.shopId !=null ">-->
|
<!-- and b.SHOP_ID = #{record.bedInfo.shopId}-->
|
<!-- </if> -->
|
</if>
|
</sql>
|
</mapper>
|