<?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.MwCollectRecordMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.sinata.system.domain.MwCollectRecord">
|
<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="HOSPITAL_NAME" property="hospitalName" />
|
<result column="STAGING_ROOM_ID" property="stagingRoomId" />
|
<result column="MEDICAL_WASTE_NUMBER" property="medicalWasteNumber" />
|
<result column="BOX_ID" property="boxId" />
|
<result column="BOX_NUMBER" property="boxNumber" />
|
<result column="WASTE_TYPE" property="wasteType" />
|
<result column="WASTE_TYPE_STR" property="wasteTypeStr" />
|
<result column="WEIGHT" property="weight" />
|
<result column="CHECKOUT_USER_ID" property="checkoutUserId" />
|
<result column="CHECKOUT_TIME" property="checkoutTime" />
|
<result column="STATUS" property="status" />
|
<result column="BOX_TIME" property="boxTime" />
|
<result column="COLLECT_TIME" property="collectTime"/>
|
<result column="COLLECT_USER_ID" property="collectUserId"/>
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
DEL_FLAG,
|
CREATE_BY,
|
CREATE_TIME,
|
UPDATE_BY,
|
UPDATE_TIME,
|
ID, DEPARTMENT_ID, HOSPITAL_NAME, STAGING_ROOM_ID, MEDICAL_WASTE_NUMBER, BOX_ID, BOX_NUMBER, WASTE_TYPE, WASTE_TYPE_STR, WEIGHT, CHECKOUT_USER_ID, CHECKOUT_USER_NAME, CHECKOUT_TIME, STATUS, BOX_TIME,COLLECT_TIME,COLLECT_USER_ID
|
</sql>
|
<select id="pageList" resultType="com.sinata.system.domain.vo.MwCollectRecordVO">
|
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
|
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
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
and sd.TREE_CODE like concat(#{treeCode},'%')
|
</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.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.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="detail" resultType="com.sinata.system.domain.vo.MwCollectRecordVO"
|
parameterType="java.lang.Long">
|
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
|
FROM MW_COLLECT_RECORD mcr
|
LEFT JOIN SYS_USER su
|
ON mcr.COLLECT_USER_ID = su.USER_ID
|
<where>
|
mcr.ID = #{id}
|
</where>
|
</select>
|
<select id="getProcess" resultType="com.sinata.system.domain.vo.MedicalWasteProcessVO"
|
parameterType="java.lang.Long">
|
SELECT
|
mcr.STATUS,
|
mcr.COLLECT_TIME,
|
mcr.BOX_NUMBER,
|
mcr.MEDICAL_WASTE_NUMBER,
|
mcr.HOSPITAL_NAME,
|
mcr.WASTE_TYPE_STR,
|
mcr.STAGING_ROOM_ID,
|
mcr.WEIGHT,
|
su.NICK_NAME AS COLLECT_USER_NAME,
|
mcr2.CHECKOUT_TIME,
|
su2.NICK_NAME AS DRIVER_NAME,
|
mcr2.HOSPITAL_SIGNATURE,
|
mtc.LICENSE_PLATE_NUMBER,
|
mdr.RECEIVE_TIME,
|
su3.NICK_NAME AS RECEIVER_NAME,
|
mdr.DISPOSAL_UNIT_NAME,
|
MDHR.DISPOSAL_TIME,
|
su4.NICK_NAME AS DISPOSAL_USER_NAME
|
FROM MW_COLLECT_RECORD mcr
|
LEFT JOIN SYS_USER su ON mcr.COLLECT_USER_ID = su.USER_ID
|
LEFT JOIN MW_CHECKOUT_RECORD_ITEM mcri ON mcr.ID = mcri.COLLECT_RECORD_ID
|
LEFT JOIN MW_CHECKOUT_RECORD mcr2 ON mcri.CHECKOUT_RECORD_ID = mcr2.ID
|
LEFT JOIN SYS_USER su2 ON su2.USER_ID = mcr2.DRIVER_ID
|
LEFT JOIN MW_DISPOSAL_RECORD_ITEM mdri ON mcr.ID = mdri.COLLECT_RECORD_ID
|
LEFT JOIN MW_DISPOSAL_RECORD mdr ON mdri.DISPOSAL_RECORD_ID = mdr.ID
|
LEFT JOIN MW_DISPOSAL_HANDLE_RECORD_ITEM mdhri ON mdhri.COLLECT_RECORD_ID= mcr.ID
|
LEFT JOIN MW_DISPOSAL_HANDLE_RECORD mdhr ON mdhr.ID= mdhri.DISPOSAL_HANDLE_RECORD_ID
|
LEFT JOIN SYS_USER su3 ON su3.USER_ID = mdr.RECEIVER_ID
|
LEFT JOIN SYS_USER su4 ON su4.USER_ID = mdhr.DISPOSAL_USER_ID
|
LEFT JOIN MW_TRANSIT_CAR mtc ON mtc.ID = mcr2.CAR_ID
|
<where>
|
mcr.ID = #{id}
|
</where>
|
</select>
|
<select id="getExportList" resultType="com.sinata.system.domain.vo.MwCollectRecordVO"
|
parameterType="com.sinata.system.domain.query.MwCollectRecordQuery">
|
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
|
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
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
and sd.TREE_CODE like concat(#{treeCode},'%')
|
</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.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.collectTimeStart != null and query.collectTimeEnd != null">
|
and mcr.COLLECT_TIME between #{query.collectTimeStart} and #{query.collectTimeEnd}
|
</if>
|
<if test="query.collectRecordIds != null and query.collectRecordIds.size() > 0">
|
and mcr.ID in
|
<foreach collection="query.collectRecordIds" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
</where>
|
ORDER BY mcr.CREATE_TIME DESC
|
</select>
|
<select id="getGroup" resultType="com.sinata.system.domain.dto.CollectDto">
|
SELECT BOX_NUMBER as boxNumber,WASTE_TYPE_STR as wasteTypeStr,WASTE_TYPE as wasteType,COUNT(1) as num ,sum(WEIGHT) as weight,MAX(COLLECT_TIME) as lastTime from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
STATUS = 1 AND DEPARTMENT_ID = #{departmentId}
|
<if test="boxNumber != null and boxNumber != ''">
|
and BOX_NUMBER like concat('%',#{boxNumber},'%')
|
</if>
|
|
</where>
|
GROUP BY BOX_ID
|
</select>
|
|
<select id="getGroup1" resultType="com.sinata.system.domain.dto.CollectDto">
|
SELECT BOX_NUMBER as boxNumber,WASTE_TYPE_STR as wasteTypeStr,WASTE_TYPE as wasteType,COUNT(1) as num ,sum(WEIGHT) as weight,MAX(COLLECT_TIME) as lastTime from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
STATUS = 1 AND DEPARTMENT_ID = #{departmentId}
|
</where>
|
GROUP BY BOX_ID
|
</select>
|
|
<select id="getGroup2" resultType="com.sinata.system.domain.dto.CollectDto">
|
SELECT BOX_NUMBER as boxNumber,WASTE_TYPE_STR as wasteTypeStr,WASTE_TYPE as wasteType,COUNT(1) as num ,sum(WEIGHT) as weight,MAX(COLLECT_TIME) as lastTime from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
STATUS = 2 AND DEPARTMENT_ID = #{departmentId}
|
<if test="boxNumber != null and boxNumber != ''">
|
and BOX_NUMBER like concat('%',#{boxNumber},'%')
|
</if>
|
</where>
|
GROUP BY BOX_ID
|
</select>
|
|
<select id="getGroup3" resultType="com.sinata.system.domain.dto.CollectDto">
|
SELECT BOX_NUMBER as boxNumber,WASTE_TYPE_STR as wasteTypeStr,WASTE_TYPE as wasteType,COUNT(1) as num ,sum(WEIGHT) as weight,MAX(COLLECT_TIME) as lastTime from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
STATUS = 2 AND DEPARTMENT_ID = #{departmentId} and CAR_ID = #{carId}
|
<if test="boxNumber != null and boxNumber != ''">
|
and BOX_NUMBER like concat('%',#{boxNumber},'%')
|
</if>
|
</where>
|
GROUP BY BOX_ID
|
</select>
|
|
|
<select id="getGroupWithStatus" resultType="com.sinata.system.domain.dto.CollectDto">
|
SELECT BOX_NUMBER as boxNumber,
|
WASTE_TYPE as wasteType,COUNT(1) as num ,
|
sum(WEIGHT) as weight,
|
BOX_TIME as lastTime ,
|
WASTE_TYPE_STR as wasteTypeStr,
|
RECEIVE_TIME as receiveTime
|
from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
STATUS = #{status} AND RECEIVE_DEPARTMENT_ID = #{departmentId}
|
<if test="boxNumber != null and boxNumber != ''">
|
and BOX_NUMBER like concat('%',#{boxNumber},'%')
|
</if>
|
</where>
|
GROUP BY BOX_ID
|
</select>
|
|
<select id="collectTotal" resultType="com.sinata.system.domain.dto.CollectTotalUpDto">
|
SELECT WASTE_TYPE as wasteType,WASTE_TYPE_STR as wasteTypeStr,COUNT(DISTINCT BOX_NUMBER ) as boxNum ,COUNT(1)as num,sum(WEIGHT) as weight from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
DEPARTMENT_ID = #{departmentId} AND TRUNC(COLLECT_TIME) = TO_DATE(#{date},'YYYY-MM-DD')
|
</where>
|
GROUP BY WASTE_TYPE
|
</select>
|
<select id="collectTotal3" resultType="com.sinata.system.domain.dto.CollectTotalUpDto">
|
SELECT WASTE_TYPE as wasteType,WASTE_TYPE_STR as wasteTypeStr,COUNT(DISTINCT BOX_NUMBER ) as boxNum ,COUNT(1)as num,sum(WEIGHT) as weight from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
STATUS = 1 AND DEPARTMENT_ID = #{departmentId}
|
</where>
|
GROUP BY WASTE_TYPE
|
</select>
|
|
|
<select id="collectTotal1" resultType="com.sinata.system.domain.dto.CollectTotalUpDto">
|
SELECT WASTE_TYPE as wasteType,WASTE_TYPE_STR as wasteTypeStr,COUNT(DISTINCT BOX_NUMBER ) as boxNum ,COUNT(1)as num,sum(WEIGHT) as weight from MEDICAL_WASTE.MW_COLLECT_RECORD
|
<where>
|
CHECKOUT_USER_ID = #{checkOutUserId}
|
<if test="date !=null">
|
AND TRUNC(CHECKOUT_TIME) = TO_DATE(#{date},'YYYY-MM-DD')
|
</if>
|
<if test="id != null ">
|
and DEPARTMENT_ID = #{id}
|
</if>
|
</where>
|
GROUP BY WASTE_TYPE
|
</select>
|
|
<select id="carGroup" resultType="com.sinata.system.domain.dto.CollectCarTotalUpDto">
|
SELECT
|
t3.DEPARTMENT_ID as hospitalId,
|
MAX(t3.HOSPITAL_NAME) as hospitalName,
|
COUNT(DISTINCT t3.BOX_NUMBER) as boxNum,
|
COUNT(t3.ID) as num,
|
SUM(DISTINCT t3.BOX_ID) as boxCount, -- 新增箱数统计
|
SUM(t3.WEIGHT) as weight
|
FROM MEDICAL_WASTE.MW_COLLECT_RECORD t3
|
<where>
|
t3.STATUS = 2 -- 增加状态过滤
|
AND t3.CAR_ID = #{carId}
|
<if test="name != null and name != ''">
|
AND t3.HOSPITAL_NAME LIKE CONCAT('%',#{name},'%')
|
</if>
|
</where>
|
GROUP BY t3.DEPARTMENT_ID
|
</select>
|
<select id="getRegulationReportList" resultType="com.sinata.system.domain.vo.MwCollectRecordVO">
|
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
|
FROM MW_COLLECT_RECORD MCR
|
LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MCR.DEPARTMENT_ID
|
<where>
|
MCR.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
and SD.TREE_CODE LIKE CONCAT(#{treeCode},'%')
|
</if>
|
<if test="query.startTime != null and query.endTime != null">
|
and MCR.COLLECT_TIME between #{query.startTime} and #{query.endTime}
|
</if>
|
<if test="query.wasteTypeCodeList != null and query.wasteTypeCodeList.size() > 0">
|
and MCR.WASTE_TYPE in
|
<foreach collection="query.wasteTypeCodeList" item="code" open="(" separator="," close=")">
|
#{code}
|
</foreach>
|
</if>
|
</where>
|
</select>
|
<select id="queryListTimeType" resultType="com.sinata.system.domain.vo.MwCollectRecordWarningVO"
|
parameterType="java.lang.Integer">
|
SELECT mcr.ID,
|
mcr.DEPARTMENT_ID,
|
mcr.HOSPITAL_NAME,
|
mcr.STAGING_ROOM_ID,
|
mcr.MEDICAL_WASTE_NUMBER,
|
SUM(mcr.WEIGHT) AS totalWeight,
|
mcr.COLLECT_TIME,
|
sdi.DAILY_MIN_WASTE_QUANTITY,
|
sdi.DAILY_MAX_WASTE_QUANTITY,
|
sdi.MONTHLY_MIN_WASTE_QUANTITY,
|
sdi.MONTHLY_MAX_WASTE_QUANTITY
|
FROM MW_COLLECT_RECORD mcr
|
LEFT JOIN SYS_DEPARTMENT sd ON mcr.DEPARTMENT_ID = sd.ID
|
LEFT JOIN SYS_DEPARTMENT_INFO sdi ON sdi.DEPARTMENT_ID = sd.ID
|
<where>
|
mcr.DEL_FLAG = 0
|
<if test="timeType != null and timeType == 1">
|
AND mcr.COLLECT_TIME BETWEEN TRUNC(TRUNC(SYSDATE - 1,'dd'), 'dd')
|
AND TRUNC(TRUNC(SYSDATE - 1,'dd'), 'dd') + INTERVAL '1' DAY - INTERVAL '1' SECOND
|
</if>
|
<if test="timeType != null and timeType == 2">
|
AND mcr.COLLECT_TIME BETWEEN TRUNC(ADD_MONTHS(SYSDATE, -1), 'mm')
|
AND TRUNC(ADD_MONTHS(SYSDATE, 0), 'mm') - INTERVAL '1' SECOND
|
</if>
|
</where>
|
GROUP BY sd.ID
|
ORDER BY mcr.CREATE_TIME DESC
|
</select>
|
<select id="queryListGroupByDepartment" resultType="com.sinata.system.domain.vo.MwCollectRecordWarningVO">
|
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,
|
SUM(MCR.WEIGHT) totalWeight,
|
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,
|
MCR.DISPOSAL_HANDLE_RECORD_ID,
|
MCR.RECEIVE_TIME,
|
MCR.RECEIVE_USER_ID,
|
MCR.DRIVER_ID,
|
MCR.CAR_ID,
|
MCR.DISPOSAL_TIME,
|
MCR.DISPOSAL_USER_ID,
|
MCR.RECEIVE_DEPARTMENT_ID,
|
SDI.MAXIMUM_STORAGE_CAPACITY
|
FROM MW_COLLECT_RECORD MCR
|
LEFT JOIN SYS_DEPARTMENT_INFO SDI ON SDI.DEPARTMENT_ID = MCR.DEPARTMENT_ID
|
<where>
|
MCR.DEL_FLAG = 0
|
</where>
|
GROUP BY MCR.DEPARTMENT_ID
|
</select>
|
<select id="queryMedicalWasteStatics" resultType="com.sinata.system.domain.MedicalWasteStaticsVO"
|
parameterType="java.lang.Long">
|
SELECT
|
-- 今日收集
|
COALESCE(SUM(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.WEIGHT, 0)), 0) AS
|
todayCollectWeight,
|
COALESCE(COUNT(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.ID, NULL)), 0) AS
|
todayCollectBagNum,
|
|
-- 今日出库
|
COALESCE(SUM(IF(TRUNC(MCR.CHECKOUT_TIME) = TRUNC(SYSDATE), MCR.WEIGHT, 0)), 0) AS
|
todayCheckoutWeight,
|
COALESCE(COUNT(IF(TRUNC(MCR.CHECKOUT_TIME) = TRUNC(SYSDATE), MCR.ID, NULL)), 0) AS
|
todayCheckoutBagNum,
|
|
-- 待转运(状态为 1 暂存中)
|
COALESCE(SUM(IF(MCR.STATUS = 1, MCR.WEIGHT, 0)), 0) AS toBeTransportedWeight,
|
COALESCE(COUNT(IF(MCR.STATUS = 1, MCR.ID, NULL)), 0) AS toBeTransportedBagNum,
|
|
-- 运输中(状态为 2 运输中)
|
COALESCE(SUM(IF(MCR.STATUS = 2, MCR.WEIGHT, 0)), 0) AS inTransitWeight,
|
COALESCE(COUNT(IF(MCR.STATUS = 2, MCR.ID, NULL)), 0) AS inTransitBagNum,
|
|
-- 已入场(状态为 3 已接收)
|
COALESCE(SUM(IF(MCR.STATUS = 3, MCR.WEIGHT, 0)), 0) AS enteredAlreadyWeight,
|
COALESCE(COUNT(IF(MCR.STATUS = 3, MCR.ID, NULL)), 0) AS enteredAlreadyBagNum,
|
|
-- 待处置(状态为 4 待处置)
|
COALESCE(SUM(IF(MCR.STATUS = 4, MCR.WEIGHT, 0)), 0) AS toBeDisposedOfWeight,
|
COALESCE(COUNT(IF(MCR.STATUS = 4, MCR.ID, NULL)), 0) AS toBeDisposedOfBagNum,
|
|
-- 已处置(状态为 5 已处置)
|
COALESCE(SUM(IF(MCR.STATUS = 5, MCR.WEIGHT, 0)), 0) AS disposedWeight,
|
COALESCE(COUNT(IF(MCR.STATUS = 5, MCR.ID, NULL)), 0) AS disposedBagNum
|
FROM
|
MW_COLLECT_RECORD MCR LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MCR.DEPARTMENT_ID
|
<where>
|
MCR.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode != ''">
|
AND SD.TREE_CODE LIKE CONCAT(#{treeCode},'%')
|
</if>
|
</where>
|
</select>
|
<select id="getTagInfo" resultType="com.sinata.system.domain.vo.DepartmentTagInfoVO"
|
parameterType="java.lang.Long">
|
SELECT SD.ID,
|
SD.DEPARTMENT_NAME,
|
COALESCE(SUM(MCR.WEIGHT), 0) AS currentStorageWeight,
|
COUNT(MCR.ID) AS currentStorageBagNum,
|
COALESCE(SUM(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.WEIGHT, 0)), 0) AS todayHandleWeight,
|
COALESCE(COUNT(IF(TRUNC(MCR.COLLECT_TIME) = TRUNC(SYSDATE), MCR.ID, NULL)), 0) AS todayHandleBagNum
|
FROM SYS_DEPARTMENT SD
|
LEFT JOIN MW_COLLECT_RECORD MCR
|
ON SD.ID = MCR.DEPARTMENT_ID AND MCR.DEL_FLAG = 0
|
<where>
|
SD.ID = #{id}
|
</where>
|
GROUP BY SD.ID
|
</select>
|
|
</mapper>
|