mitao
2024-12-27 9c717849bee3d6cc25f29ad69a93a507e3de7d13
medicalWaste-system/src/main/resources/mapper/system/MwDisposalRecordMapper.xml
@@ -34,10 +34,17 @@
        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.MwDisposalRecordVO">
        SELECT MDR.*
    <select id="getStaticsData" resultType="com.sinata.system.domain.vo.DisposalRecordStaticsVO">
        SELECT SUM(MDR.RECEIVE_QUANTITY) AS receivedQuantity,
        SUM(MDR.RECEIVE_WEIGHT) AS receivedWeight,
        SUM(MDR.RECEIVE_QUANTITY) AS unloadQuantity,
        SUM(MDR.RECEIVE_WEIGHT) AS unloadWeight,
        SUM(MCR.WEIGHT) AS totalHandledWeight,
        COUNT(DISTINCT MCR.BOX_NUMBER) AS totalHandledQuantity
        FROM MW_DISPOSAL_RECORD MDR
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
        LEFT JOIN MW_DISPOSAL_HANDLE_RECORD MDHR ON MDHR.DISPOSAL_RECORD_ID = MDR.ID
        LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID
        <where>
            MDR.DEL_FLAG = 0
            <if test="treeCode != null and treeCode !=''">
@@ -49,9 +56,29 @@
        </where>
    </select>
    <select id="pageList" resultType="com.sinata.system.domain.vo.MwDisposalRecordVO">
        SELECT MDR.*
        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,
        SUM(MCR.WEIGHT) AS totalHandledWeight,
        COUNT(DISTINCT MCR.BOX_NUMBER) AS totalHandledQuantity
        FROM MW_DISPOSAL_RECORD MDR
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDR.DEPARTMENT_ID
        LEFT JOIN MW_DISPOSAL_HANDLE_RECORD MDHR ON MDHR.DISPOSAL_RECORD_ID = MDR.ID
        LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID
        <where>
            MDR.DEL_FLAG = 0
            <if test="treeCode != null and treeCode !=''">
@@ -61,25 +88,23 @@
                AND MDR.RECEIVE_TIME BETWEEN #{query.receiveTimeStart} AND #{query.receiveTimeEnd}
            </if>
        </where>
        ORDER BY MDR.DISPOSAL_TIME DESC
        ORDER BY MDR.RECEIVE_TIME DESC
    </select>
    <select id="pageDetail" resultType="com.sinata.system.domain.vo.MwDisposalRecordItemVO">
        SELECT MCR.BOX_NUMBER,
        COUNT(*) AS bagNum,
        COUNT(MCR.ID) AS bagNum,
        IFNULL(SUM(MCR.WEIGHT), 0) AS weight,
        MDR.DISPOSAL_TIME
        FROM MW_DISPOSAL_RECORD MDR
        LEFT JOIN MW_DISPOSAL_RECORD_ITEM MDRI ON MDR.ID = MDRI.DISPOSAL_RECORD_ID
        LEFT JOIN MW_COLLECT_RECORD MCR ON MDR.ID = MDRI.COLLECT_RECORD_ID
        MDHR.DISPOSAL_TIME
        FROM MW_DISPOSAL_HANDLE_RECORD MDHR
        LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID
        <where>
            MCR.STATUS = 4
            <if test="disposalRecordId != null">
                AND MDR.ID = #{disposalRecordId}
                AND MDHR.DISPOSAL_RECORD_ID = #{disposalRecordId}
            </if>
        </where>
        GROUP BY MCR.BOX_ID
        GROUP BY MCR.BOX_NUMBER
    </select>
    <select id="disposalReportByType" resultType="com.sinata.system.domain.vo.MwDisposalRecordReportVO">
    <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
@@ -88,24 +113,8 @@
            <if test="query.departmentId != null">
                AND MDR.DEPARTMENT_ID = #{query.departmentId}
            </if>
            <!-- 判断 type 为 1 或 2 的状态条件 -->
            <choose>
                <when test="type == 1">
                    AND MCR.STATUS = 3
                </when>
                <when test="type == 2">
                    AND MCR.STATUS = 4
                </when>
            </choose>
            <if test="query.startTime != null and query.endTime != null">
                <choose>
                    <when test="type == 1">
                        AND MDR.RECEIVE_TIME BETWEEN #{query.startTime} AND #{query.endTime}
                    </when>
                    <when test="type == 2">
                        AND MDR.DISPOSAL_TIME BETWEEN #{query.startTime} AND #{query.endTime}
                    </when>
                </choose>
                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
@@ -119,18 +128,17 @@
        SELECT MCR.ID,
        MCR.WASTE_TYPE,
        MCR.WEIGHT,
        MDR.DISPOSAL_TIME AS collectTime
        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
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MCR.DEPARTMENT_ID
        MDHR.DISPOSAL_TIME AS collectTime
        FROM MW_DISPOSAL_HANDLE_RECORD MDHR
        LEFT JOIN MW_COLLECT_RECORD MCR ON MCR.DISPOSAL_HANDLE_RECORD_ID = MDHR.ID
        LEFT JOIN SYS_DEPARTMENT SD ON SD.ID = MDHR.DEPARTMENT_ID
        <where>
            MDR.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 MDR.DISPOSAL_TIME BETWEEN #{query.startTime} AND #{query.endTime}
                AND MDHR.DISPOSAL_TIME BETWEEN #{query.startTime} AND #{query.endTime}
            </if>
            <if test="query.wasteTypeList != null and query.wasteTypeList.size()>0">
                AND MCR.WASTE_TYPE IN