<?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.MwDisposalRecordMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.sinata.system.domain.MwDisposalRecord">
|
<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="DISPOSAL_UNIT_NAME" property="disposalUnitName" />
|
<result column="RECEIVE_QUANTITY" property="receiveQuantity" />
|
<result column="RECEIVE_TIME" property="receiveTime" />
|
<result column="RECEIVE_WEIGHT" property="receiveWeight" />
|
<result column="RECEIVER_ID" property="receiverId" />
|
<result column="UNLOAD_QUANTITY" property="unloadQuantity" />
|
<result column="UNLOAD_WEIGHT" property="unloadWeight" />
|
<result column="TOTAL_HANDLED_QUANTITY" property="totalHandledQuantity" />
|
<result column="DISPOSAL_FLAG" property="disposalFlag" />
|
<result column="TOTAL_HANDLED_WEIGHT" property="totalHandledWeight" />
|
<result column="DISPOSAL_TIME" property="disposalTime" />
|
<result column="DISPOSAL_USER_ID" property="disposalUserId" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
DEL_FLAG,
|
CREATE_BY,
|
CREATE_TIME,
|
UPDATE_BY,
|
UPDATE_TIME,
|
ID, DEPARTMENT_ID, DISPOSAL_UNIT_NAME, RECEIVE_QUANTITY, RECEIVE_TIME, RECEIVE_WEIGHT, RECEIVER_ID, UNLOAD_QUANTITY, UNLOAD_WEIGHT, TOTAL_HANDLED_QUANTITY, DISPOSAL_FLAG, TOTAL_HANDLED_WEIGHT, DISPOSAL_TIME, DISPOSAL_USER_ID
|
</sql>
|
<select id="getStaticsData" resultType="com.sinata.system.domain.vo.DisposalRecordStaticsVO">
|
SELECT COALESCE(SUM(MDR.RECEIVE_QUANTITY), 0) AS receiveQuantity,
|
COALESCE(SUM(MDR.RECEIVE_WEIGHT), 0) AS receiveWeight,
|
COALESCE(SUM(MDR.RECEIVE_QUANTITY), 0) AS unloadQuantity,
|
COALESCE(SUM(MDR.RECEIVE_WEIGHT), 0) AS unloadWeight
|
FROM MW_DISPOSAL_RECORD MDR
|
LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
|
<where>
|
MDR.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode !=''">
|
AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%')
|
</if>
|
<if test="query.receiveTimeStart!=null and query.receiveTimeEnd != null">
|
AND MDR.RECEIVE_TIME BETWEEN #{query.receiveTimeStart} AND #{query.receiveTimeEnd}
|
</if>
|
</where>
|
</select>
|
<select id="pageList" resultType="com.sinata.system.domain.vo.MwDisposalRecordVO">
|
SELECT MDR.ID,
|
MDR.DEPARTMENT_ID,
|
MDR.DISPOSAL_UNIT_NAME,
|
MDR.RECEIVE_QUANTITY,
|
MDR.RECEIVE_TIME,
|
MDR.RECEIVE_WEIGHT,
|
MDR.RECEIVER_ID,
|
MDR.UNLOAD_QUANTITY,
|
MDR.UNLOAD_WEIGHT,
|
MDR.DISPOSAL_FLAG,
|
MDR.DISPOSAL_TIME,
|
MDR.DISPOSAL_USER_ID,
|
MDR.DEL_FLAG,
|
MDR.CREATE_BY,
|
MDR.CREATE_TIME,
|
MDR.UPDATE_BY,
|
MDR.UPDATE_TIME
|
FROM MW_DISPOSAL_RECORD MDR
|
LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
|
<where>
|
MDR.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode !=''">
|
AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%')
|
</if>
|
<if test="query.receiveTimeStart!=null and query.receiveTimeEnd != null">
|
AND MDR.RECEIVE_TIME BETWEEN #{query.receiveTimeStart} AND #{query.receiveTimeEnd}
|
</if>
|
</where>
|
ORDER BY MDR.RECEIVE_TIME DESC
|
</select>
|
<select id="pageDetail" resultType="com.sinata.system.domain.vo.MwDisposalRecordItemVO">
|
SELECT MCR.BOX_NUMBER,
|
COUNT(MCR.ID) AS bagNum,
|
IFNULL(SUM(MCR.WEIGHT),0) AS weight,
|
MDHR.DISPOSAL_TIME
|
FROM MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI
|
LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDHRI.COLLECT_RECORD_ID
|
LEFT JOIN MW_DISPOSAL_HANDLE_RECORD MDHR ON MDHR.ID= MDHRI.DISPOSAL_HANDLE_RECORD_ID
|
<where>
|
<if test="disposalRecordId != null">
|
AND MDHRI.DISPOSAL_RECORD_ID = #{disposalRecordId}
|
</if>
|
</where>
|
GROUP BY MCR.BOX_NUMBER,MDHRI.DISPOSAL_RECORD_ID
|
</select>
|
<select id="disposalReceiveReport" resultType="com.sinata.system.domain.vo.MwDisposalRecordReportVO">
|
SELECT MCR.ID, MDR.RECEIVE_TIME, MDR.DISPOSAL_TIME, MCR.WASTE_TYPE, MCR.WEIGHT, MCR.STATUS
|
FROM MW_DISPOSAL_RECORD MDR
|
LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.DISPOSAL_RECORD_ID = MDR.ID
|
LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDRI.COLLECT_RECORD_ID
|
<where>
|
<if test="query.departmentId != null">
|
AND MDR.DEPARTMENT_ID = #{query.departmentId}
|
</if>
|
<if test="query.startTime != null and query.endTime != null">
|
AND MDR.RECEIVE_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="item" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
</where>
|
</select>
|
<select id="getRegulationReportList" resultType="com.sinata.system.domain.vo.MwCollectRecordVO">
|
SELECT MCR.ID,
|
MCR.WASTE_TYPE,
|
MCR.WEIGHT,
|
MDHR.DISPOSAL_TIME AS collectTime
|
FROM MW_DISPOSAL_HANDLE_RECORD MDHR
|
INNER JOIN MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI ON MDHRI.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID
|
INNER JOIN MW_COLLECT_RECORD MCR ON MDHRI.COLLECT_RECORD_ID = MCR.ID
|
INNER JOIN SYS_DEPARTMENT SD ON SD.ID = MDHR.DEPARTMENT_ID
|
<where>
|
MDHR.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 MDHR.DISPOSAL_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="wasteType" separator="," open="(" close=")">
|
#{wasteType}
|
</foreach>
|
</if>
|
</where>
|
</select>
|
<select id="queryDisposalListByDepartment"
|
resultType="com.sinata.system.domain.vo.MwDisposalRecordWarningVO">
|
SELECT SUM(MDR.RECEIVE_WEIGHT) AS totalWeight,
|
SDI.MAXIMUM_STORAGE_CAPACITY,
|
MDR.DEPARTMENT_ID,
|
MDR.DISPOSAL_UNIT_NAME
|
FROM MW_COLLECT_RECORD MCR
|
LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDRI.COLLECT_RECORD_ID = MCR.ID AND MCR.STATUS = 3
|
LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDRI.DISPOSAL_RECORD_ID
|
LEFT JOIN SYS_DEPARTMENT_INFO SDI ON SDI.DEPARTMENT_ID = MDR.DEPARTMENT_ID
|
<where>
|
MDR.DEL_FLAG = 0
|
</where>
|
GROUP BY MDR.DEPARTMENT_ID
|
</select>
|
<select id="getTagInfo" resultType="com.sinata.system.domain.vo.DepartmentTagInfoVO"
|
parameterType="java.lang.Long">
|
SELECT SD.ID ,SD.DEPARTMENT_NAME,
|
COALESCE(SUM(IF(MCR.STATUS = 3, MCR.WEIGHT,0)), 0) AS currentStorageWeight,
|
COALESCE(COUNT(IF(MCR.STATUS = 3, MCR.ID,NULL)), 0) AS currentStorageBagNum,
|
COALESCE(SUM(IF(TRUNC(MCR.DISPOSAL_TIME) = TRUNC(SYSDATE) AND MCR.STATUS = 4, MCR.WEIGHT, 0)), 0) AS
|
todayHandleWeight,
|
COALESCE(COUNT(IF(TRUNC(MCR.DISPOSAL_TIME) = TRUNC(SYSDATE) AND MCR.STATUS = 4, MCR.ID, NULL)), 0) AS
|
todayHandleBagNum
|
FROM SYS_DEPARTMENT SD LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.DEPARTMENT_ID = SD.ID
|
LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDR.ID = MDRI.DISPOSAL_RECORD_ID
|
LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDRI.COLLECT_RECORD_ID
|
<where>
|
SD.ID = #{id}
|
</where>
|
GROUP BY MDR.DEPARTMENT_ID
|
</select>
|
<select id="getDisposalData"
|
resultType="com.sinata.system.domain.vo.DisposalRecordStaticsVO">
|
SELECT
|
COALESCE(SUM(MCR.WEIGHT),0) AS totalHandledWeight,
|
COALESCE(COUNT(MCR.BOX_NUMBER),0) AS totalHandledQuantity
|
FROM MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI
|
LEFT JOIN MW_DISPOSAL_RECORD MDR ON MDR.ID = MDHRI.DISPOSAL_RECORD_ID
|
LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.ID = MDHRI.COLLECT_RECORD_ID
|
LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
|
<where>
|
MDR.DEL_FLAG = 0
|
<if test="treeCode != null and treeCode !=''">
|
AND SD.TREE_CODE LIKE CONCAT(#{treeCode}, '%')
|
</if>
|
<if test="query.receiveTimeStart!=null and query.receiveTimeEnd != null">
|
AND MDR.RECEIVE_TIME BETWEEN #{query.receiveTimeStart} AND #{query.receiveTimeEnd}
|
</if>
|
</where>
|
</select>
|
<select id="getDisposalDataById" resultType="com.sinata.system.domain.vo.MwDisposalRecordVO"
|
parameterType="java.lang.Long">
|
SELECT COALESCE(SUM(MCR.WEIGHT), 0) AS totalHandledWeight,
|
COALESCE(COUNT(DISTINCT MCR.BOX_NUMBER), 0) AS totalHandledQuantity
|
FROM MW_DISPOSAL_HANDLE_RECORD MDHR
|
LEFT JOIN MW_DISPOSAL_HANDLE_RECORD_ITEM MDHRI ON MDHR.ID = MDHRI.DISPOSAL_HANDLE_RECORD_ID
|
LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDHRI.COLLECT_RECORD_ID = MDRI.COLLECT_RECORD_ID
|
LEFT JOIN MW_COLLECT_RECORD MCR ON MDHRI.COLLECT_RECORD_ID = MCR.ID
|
WHERE MDRI.DISPOSAL_RECORD_ID = #{id}
|
</select>
|
|
</mapper>
|