<?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.sinata.system.mapper.MwStagingRoomMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.sinata.system.domain.MwStagingRoom">
|
<id column="ID" property="id" />
|
<result column="DEL_FLAG" property="delFlag" />
|
<result column="CREATE_BY" property="createBy" />
|
<result column="CREATE_TIME" property="createTime" />
|
<result column="UPDATE_BY" property="updateBy" />
|
<result column="UPDATE_TIME" property="updateTime" />
|
<result column="DEPARTMENT_ID" property="departmentId" />
|
<result column="ROOM_NAME" property="roomName" />
|
<result column="MAX_CAPACITY" property="maxCapacity" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
DEL_FLAG,
|
CREATE_BY,
|
CREATE_TIME,
|
UPDATE_BY,
|
UPDATE_TIME,
|
ID, DEPARTMENT_ID, ROOM_NAME, MAX_CAPACITY
|
</sql>
|
<select id="pageList" resultType="com.sinata.system.domain.vo.MwStagingRoomVO">
|
SELECT msr.ID,
|
msr.DEPARTMENT_ID,
|
msr.ROOM_NAME,
|
msr.MAX_CAPACITY,
|
msr.CREATE_TIME,
|
msr.RELATION,
|
COUNT(mr.ID) AS usedNum,
|
(msr.MAX_CAPACITY - COUNT(mr.ID)) AS unUsedNum,
|
sd.DEPARTMENT_NAME AS hospitalName
|
FROM MW_STAGING_ROOM msr
|
LEFT JOIN (SELECT MAX(ID) AS ID, BOX_ID, STAGING_ROOM_ID
|
FROM MW_COLLECT_RECORD WHERE STATUS = 1 GROUP BY BOX_ID, STAGING_ROOM_ID ) mr ON msr.ID = mr.STAGING_ROOM_ID
|
LEFT JOIN SYS_DEPARTMENT sd ON msr.DEPARTMENT_ID = sd.ID
|
<where>
|
msr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
AND sd.TREE_CODE LIKE CONCAT(#{treeCode}, '%')
|
</if>
|
</where>
|
GROUP BY msr.ID
|
ORDER BY msr.CREATE_TIME DESC
|
</select>
|
<select id="storageRecordPage" resultType="com.sinata.system.domain.vo.MwStorageRecordVO">
|
SELECT mcr.ID,
|
mcr.DEPARTMENT_ID,
|
mcr.HOSPITAL_NAME,
|
mcr.STAGING_ROOM_ID,
|
mcr.MEDICAL_WASTE_NUMBER,
|
mcr.BOX_ID,
|
mcr.BOX_NUMBER,
|
mcr.WASTE_TYPE,
|
mcr.WASTE_TYPE_STR,
|
mcr.WEIGHT,
|
mcr.CHECKOUT_USER_ID,
|
mcr.CHECKOUT_TIME,
|
mcr.STATUS,
|
mcr.BOX_TIME,
|
mcr.DEL_FLAG,
|
mcr.CREATE_BY,
|
mcr.CREATE_TIME,
|
mcr.UPDATE_BY,
|
mcr.UPDATE_TIME,
|
mcr.COLLECT_USER_ID,
|
mcr.COLLECT_TIME,
|
msr.ROOM_NAME,
|
su.NICK_NAME AS COLLECT_USER_NAME
|
FROM MW_COLLECT_RECORD mcr
|
LEFT JOIN SYS_USER su
|
ON mcr.COLLECT_USER_ID = su.USER_ID
|
LEFT JOIN SYS_DEPARTMENT sd ON mcr.DEPARTMENT_ID = sd.ID
|
LEFT JOIN MW_STAGING_ROOM msr ON msr.ID = mcr.STAGING_ROOM_ID
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
and sd.TREE_CODE like concat(#{treeCode},'%')
|
</if>
|
<if test="query.stagingRoomId != null and query.stagingRoomId != ''">
|
and mcr.STAGING_ROOM_ID = #{query.stagingRoomId}
|
</if>
|
<if test="query.medicalWasteNumber != null and query.medicalWasteNumber != ''">
|
and mcr.MEDICAL_WASTE_NUMBER like concat('%',#{query.medicalWasteNumber},'%')
|
</if>
|
<if test="query.boxNumber != null and query.boxNumber != ''">
|
and mcr.BOX_NUMBER like concat('%',#{query.boxNumber},'%')
|
</if>
|
<if test="query.wasteType != null">
|
and mcr.WASTE_TYPE = #{query.wasteType}
|
</if>
|
<if test="query.status != null">
|
and mcr.STATUS = #{query.status}
|
</if>
|
<if test="query.collectTimeStart != null and query.collectTimeEnd != null">
|
and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd}
|
</if>
|
</where>
|
ORDER BY mcr.CREATE_TIME DESC
|
</select>
|
<select id="storageRecordList" resultType="com.sinata.system.domain.vo.MwStorageRecordVO">
|
SELECT mcr.ID,
|
mcr.DEPARTMENT_ID,
|
mcr.HOSPITAL_NAME,
|
mcr.STAGING_ROOM_ID,
|
mcr.MEDICAL_WASTE_NUMBER,
|
mcr.BOX_ID,
|
mcr.BOX_NUMBER,
|
mcr.WASTE_TYPE,
|
mcr.WASTE_TYPE_STR,
|
mcr.WEIGHT,
|
mcr.CHECKOUT_USER_ID,
|
mcr.CHECKOUT_TIME,
|
mcr.STATUS,
|
mcr.BOX_TIME,
|
mcr.DEL_FLAG,
|
mcr.CREATE_BY,
|
mcr.CREATE_TIME,
|
mcr.UPDATE_BY,
|
mcr.UPDATE_TIME,
|
mcr.COLLECT_USER_ID,
|
mcr.COLLECT_TIME,
|
su.NICK_NAME AS COLLECT_USER_NAME,
|
msr.ROOM_NAME
|
FROM MW_COLLECT_RECORD mcr
|
LEFT JOIN SYS_USER su
|
ON mcr.COLLECT_USER_ID = su.USER_ID
|
LEFT JOIN SYS_DEPARTMENT sd ON su.DEPARTMENT_ID = sd.ID
|
LEFT JOIN MW_STAGING_ROOM msr ON msr.DEPARTMENT_ID = sd.ID
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
and sd.TREE_CODE like concat(#{treeCode},'%')
|
</if>
|
<if test="query.stagingRoomId != null and query.stagingRoomId != ''">
|
and mcr.STAGING_ROOM_ID = #{query.stagingRoomId}
|
</if>
|
<if test="query.medicalWasteNumber != null and query.medicalWasteNumber != ''">
|
and mcr.MEDICAL_WASTE_NUMBER like concat('%',#{query.medicalWasteNumber},'%')
|
</if>
|
<if test="query.boxNumber != null and query.boxNumber != ''">
|
and mcr.BOX_NUMBER like concat('%',#{query.boxNumber},'%')
|
</if>
|
<if test="query.wasteType != null">
|
and mcr.WASTE_TYPE = #{query.wasteType}
|
</if>
|
<if test="query.collectTimeStart != null and query.collectTimeEnd != null">
|
and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd}
|
</if>
|
</where>
|
ORDER BY mcr.CREATE_TIME DESC
|
</select>
|
<select id="checkoutRecordPage" resultType="com.sinata.system.domain.vo.MwCheckoutRecordVO">
|
SELECT mcr.ID,
|
mcr.CHECKOUT_TIME,
|
mcr.HOSPITAL_NAME,
|
msr.ROOM_NAME,
|
mcr.BOX_NUM,
|
mcr.BAG_NUM,
|
mcr.TOTAL_WEIGHT,
|
mcr.HOSPITAL_SIGNATURE,
|
su.NICK_NAME AS driverName,
|
mtc.LICENSE_PLATE_NUMBER
|
FROM MW_CHECKOUT_RECORD mcr
|
LEFT JOIN MW_STAGING_ROOM msr
|
ON mcr.STAGING_ROOM_ID = msr.ID
|
LEFT JOIN SYS_USER su
|
ON mcr.DRIVER_ID = su.USER_ID
|
LEFT JOIN MW_TRANSIT_CAR mtc
|
ON mcr.CAR_ID = mtc.ID
|
LEFT JOIN SYS_DEPARTMENT sd
|
ON mcr.DEPARTMENT_ID = sd.ID
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
AND sd.TREE_CODE LIKE CONCAT(#{treeCode},'%')
|
</if>
|
<if test="query.stagingRoomId !=null and query.stagingRoomId != ''">
|
AND mcr.STAGING_ROOM_ID = #{query.stagingRoomId}
|
</if>
|
<if test="query.checkoutTimeStart != null and query.checkoutTimeEnd!=null">
|
AND mcr.CHECKOUT_TIME BETWEEN #{query.checkoutTimeStart} AND #{query.checkoutTimeEnd}
|
</if>
|
</where>
|
ORDER BY mcr.CHECKOUT_TIME DESC
|
</select>
|
<select id="checkoutRecordList" resultType="com.sinata.system.domain.vo.MwCheckoutRecordVO">
|
SELECT mcr.ID,
|
mcr.CHECKOUT_TIME,
|
mcr.HOSPITAL_NAME,
|
msr.ROOM_NAME,
|
mcr.BOX_NUM,
|
mcr.BAG_NUM,
|
mcr.TOTAL_WEIGHT,
|
mcr.HOSPITAL_SIGNATURE,
|
su.NICK_NAME AS driverName,
|
mtc.LICENSE_PLATE_NUMBER
|
FROM MW_CHECKOUT_RECORD mcr
|
LEFT JOIN MW_STAGING_ROOM msr
|
ON mcr.STAGING_ROOM_ID = msr.ID
|
LEFT JOIN SYS_USER su
|
ON mcr.DRIVER_ID = su.USER_ID
|
LEFT JOIN MW_TRANSIT_CAR mtc
|
ON mcr.CAR_ID = mtc.ID
|
LEFT JOIN SYS_DEPARTMENT sd
|
ON mcr.DEPARTMENT_ID = sd.ID
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
AND sd.TREE_CODE LIKE CONCAT(#{treeCode},'%')
|
</if>
|
<if test="query.stagingRoomId !=null and query.stagingRoomId != ''">
|
AND mcr.STAGING_ROOM_ID = #{query.stagingRoomId}
|
</if>
|
<if test="query.checkoutTimeStart != null and query.checkoutTimeEnd!=null">
|
AND mcr.CHECKOUT_TIME BETWEEN #{query.checkoutTimeStart} AND #{query.checkoutTimeEnd}
|
</if>
|
</where>
|
ORDER BY mcr.CHECKOUT_TIME DESC
|
</select>
|
<select id="queryStagingRoomList" resultType="com.sinata.system.domain.vo.MwStagingRoomVO">
|
SELECT msr.ID,
|
msr.DEPARTMENT_ID,
|
msr.ROOM_NAME,
|
msr.MAX_CAPACITY,
|
msr.CREATE_TIME,
|
msr.RELATION,
|
COUNT(mr.ID) AS usedNum,
|
(msr.MAX_CAPACITY - COUNT(mr.ID)) AS unUsedNum,
|
(COUNT(mr.ID) * 1.0 / msr.MAX_CAPACITY * 100) AS useRate,
|
sd.DEPARTMENT_NAME AS hospitalName
|
FROM MW_STAGING_ROOM msr
|
LEFT JOIN (SELECT ID, BOX_ID, STAGING_ROOM_ID FROM MW_COLLECT_RECORD WHERE STATUS = 1 GROUP BY BOX_ID) mr
|
ON msr.ID = mr.STAGING_ROOM_ID
|
LEFT JOIN SYS_DEPARTMENT sd ON msr.DEPARTMENT_ID = sd.ID
|
<where>
|
msr.DEL_FLAG = 0
|
</where>
|
ORDER BY msr.CREATE_TIME DESC
|
</select>
|
<select id="temporarilyStoredMedicalWaste" resultType="com.sinata.system.domain.vo.MwStorageRecordVO"
|
parameterType="com.sinata.system.domain.query.StorageRecordQuery">
|
SELECT
|
mcr.BOX_ID AS id,
|
mcr.DEPARTMENT_ID,
|
mcr.HOSPITAL_NAME,
|
mcr.STAGING_ROOM_ID,
|
mcr.MEDICAL_WASTE_NUMBER,
|
mcr.BOX_NUMBER,
|
mcr.WASTE_TYPE,
|
mcr.WASTE_TYPE_STR,
|
SUM(mcr.WEIGHT) AS weight,
|
mcr.CHECKOUT_USER_ID,
|
mcr.CHECKOUT_TIME,
|
mcr.STATUS,
|
mcr.BOX_TIME,
|
mcr.DEL_FLAG,
|
mcr.CREATE_BY,
|
mcr.CREATE_TIME,
|
mcr.UPDATE_BY,
|
mcr.UPDATE_TIME,
|
mcr.COLLECT_USER_ID,
|
mcr.COLLECT_TIME,
|
msr.ROOM_NAME,
|
su.NICK_NAME AS COLLECT_USER_NAME,
|
(SELECT COUNT(*) FROM MW_COLLECT_RECORD WHERE BOX_ID = mcr.BOX_ID) bagNum
|
FROM MW_COLLECT_RECORD mcr
|
LEFT JOIN SYS_USER su
|
ON mcr.COLLECT_USER_ID = su.USER_ID
|
LEFT JOIN SYS_DEPARTMENT sd ON su.DEPARTMENT_ID = sd.ID
|
LEFT JOIN MW_STAGING_ROOM msr ON msr.ID = mcr.STAGING_ROOM_ID
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="query.departmentId != null ">
|
and mcr.DEPARTMENT_ID = #{query.departmentId}
|
</if>
|
<if test="query.stagingRoomId != null and query.stagingRoomId != ''">
|
and mcr.STAGING_ROOM_ID = #{query.stagingRoomId}
|
</if>
|
<if test="query.wasteType != null">
|
and mcr.WASTE_TYPE = #{query.wasteType}
|
</if>
|
<if test="query.status != null">
|
and mcr.STATUS = #{query.status}
|
</if>
|
<if test="query.collectTimeStart != null and query.collectTimeEnd != null">
|
and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd}
|
</if>
|
</where>
|
GROUP BY mcr.BOX_ID
|
ORDER BY mcr.CREATE_TIME DESC
|
</select>
|
<select id="queryMedicalWasteList" resultType="com.sinata.system.domain.vo.MwStorageRecordVO"
|
parameterType="java.lang.Long">
|
SELECT mcr.BOX_ID AS id,
|
mcr.DEPARTMENT_ID,
|
mcr.HOSPITAL_NAME,
|
mcr.STAGING_ROOM_ID,
|
mcr.MEDICAL_WASTE_NUMBER,
|
mcr.BOX_NUMBER,
|
mcr.WASTE_TYPE,
|
mcr.WASTE_TYPE_STR,
|
SUM(mcr.WEIGHT) AS weight,
|
mcr.CHECKOUT_USER_ID,
|
mcr.CHECKOUT_TIME,
|
mcr.STATUS,
|
mcr.BOX_TIME,
|
mcr.DEL_FLAG,
|
mcr.CREATE_BY,
|
mcr.CREATE_TIME,
|
mcr.UPDATE_BY,
|
mcr.UPDATE_TIME,
|
mcr.COLLECT_USER_ID,
|
mcr.COLLECT_TIME,
|
msr.ROOM_NAME,
|
su.NICK_NAME AS collectUserName,
|
(SELECT COUNT(*) FROM MW_COLLECT_RECORD WHERE BOX_ID = mcr.BOX_ID) bagNum
|
FROM MW_MICRO_EQUIPMENT_RECORD_ITEM mmeri
|
LEFT JOIN MW_COLLECT_RECORD mcr ON mcr.ID = mmeri.COLLECT_RECORD_ID
|
LEFT JOIN SYS_USER su ON mcr.COLLECT_USER_ID = su.USER_ID
|
LEFT JOIN MW_STAGING_ROOM msr ON msr.ID = mcr.STAGING_ROOM_ID
|
<where>
|
mcr.DEL_FLAG = 0 AND mmeri.EQUIPMENT_RECORD_ID =#{id}
|
</where>
|
GROUP BY mcr.BOX_ID
|
ORDER BY mcr.CREATE_TIME DESC
|
</select>
|
|
</mapper>
|