ShipmentDetailMapper.xml 8.68 KB
<?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.huaheng.pc.shipment.shipmentDetail.mapper.ShipmentDetailMapper">
    <resultMap id="BaseResultMap" type="com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail">
        <!--@mbg.generated-->
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="shipmentId" jdbcType="INTEGER" property="shipmentId"/>
        <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode"/>
        <result column="companyCode" jdbcType="VARCHAR" property="companyCode"/>
        <result column="shipmentCode" jdbcType="VARCHAR" property="shipmentCode"/>
        <result column="referCode" jdbcType="VARCHAR" property="referCode"/>
        <result column="referId" jdbcType="INTEGER" property="referId"/>
        <result column="referLineNum" jdbcType="VARCHAR" property="referLineNum"/>
        <result column="materialCode" jdbcType="VARCHAR" property="materialCode"/>
        <result column="materialName" jdbcType="VARCHAR" property="materialName"/>
        <result column="materialSpec" jdbcType="VARCHAR" property="materialSpec"/>
        <result column="materialUnit" jdbcType="VARCHAR" property="materialUnit"/>
        <result column="qty" jdbcType="INTEGER" property="qty"/>
        <result column="taskQty" jdbcType="INTEGER" property="taskQty"/>
        <result column="allocationRule" jdbcType="VARCHAR" property="allocationRule"/>
        <result column="replenishmentRule" jdbcType="VARCHAR" property="replenishmentRule"/>
        <result column="pickLocs" jdbcType="VARCHAR" property="pickLocs"/>
        <result column="attribute1" jdbcType="VARCHAR" property="attribute1"/>
        <result column="attribute2" jdbcType="VARCHAR" property="attribute2"/>
        <result column="attribute3" jdbcType="VARCHAR" property="attribute3"/>
        <result column="attribute4" jdbcType="VARCHAR" property="attribute4"/>
        <result column="batch" jdbcType="VARCHAR" property="batch"/>
        <result column="lot" jdbcType="VARCHAR" property="lot"/>
        <result column="projectNo" jdbcType="VARCHAR" property="projectNo"/>
        <result column="manufactureDate" jdbcType="DATE" property="manufactureDate"/>
        <result column="expirationDate" jdbcType="DATE" property="expirationDate"/>
        <result column="agingDate" jdbcType="DATE" property="agingDate"/>
        <result column="inventorySts" jdbcType="VARCHAR" property="inventorySts"/>
        <result column="dockLoc" jdbcType="VARCHAR" property="dockLoc"/>
        <result column="packingClass" jdbcType="VARCHAR" property="packingClass"/>
        <result column="status" jdbcType="INTEGER" property="status"/>
        <result column="waveId" jdbcType="INTEGER" property="waveId"/>
        <result column="created" jdbcType="TIMESTAMP" property="created"/>
        <result column="createdBy" jdbcType="VARCHAR" property="createdBy"/>
        <result column="lastUpdated" jdbcType="TIMESTAMP" property="lastUpdated"/>
        <result column="lastUpdatedBy" jdbcType="VARCHAR" property="lastUpdatedBy"/>
        <result column="version" jdbcType="INTEGER" property="version"/>
        <result column="userDef1" jdbcType="VARCHAR" property="userDef1"/>
        <result column="userDef2" jdbcType="VARCHAR" property="userDef2"/>
        <result column="userDef3" jdbcType="VARCHAR" property="userDef3"/>
        <result column="processStamp" jdbcType="VARCHAR" property="processStamp"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id, shipmentId, warehouseCode, companyCode, shipmentCode, referCode, referId, referLineNum,
        materialCode, materialName, materialSpec, materialUnit, qty, taskQty, allocationRule,
        replenishmentRule, pickLocs, attribute1, attribute2, attribute3, attribute4, batch,
        lot, projectNo, manufactureDate, expirationDate, agingDate, inventorySts, dockLoc,
        packingClass, `enable`, waveId, created, createdBy, lastUpdated, lastUpdatedBy, version,
        userDef1, userDef2, userDef3,processStamp
    </sql>


    <select id="SelectFirstStatus" resultType="java.util.Map">
        SELECT h.id, h.firstStatus, h.lastStatus
        FROM shipment_header h
                 INNER JOIN shipment_detail d ON h.id = d.shipmentId AND d.id IN (#{ids})
        GROUP BY h.id, h.firstStatus
    </select>

    <delete id="batchDelete">
        DELETE FROM shipment_detail WHERE id IN
        <foreach item="idItem" collection="array" open="(" separator="," close=")">
            #{idItem}
        </foreach>
    </delete>

    <select id="StatisticalByReceiptId" resultType="java.util.Map">
        SELECT count(*) as 'totalLines',sum(qty) as 'totalQty'
        FROM shipment_detail
        WHERE shipmentId = #{headerId}
    </select>

    <select id="countUnCompleted" resultType="java.lang.Integer">
        SELECT COUNT(*)
        FROM shipment_detail
        WHERE shipmentId = #{shipmentId}
          AND qty > taskQty
    </select>

    <select id="selectStatus" resultType="java.util.Map">
        SELECT max(status) maxStatus, min(status) minStatus
        FROM shipment_detail
        WHERE shipmentId = #{id}
    </select>

    <select id="getShipmentQtyLast7Days" resultType="com.huaheng.pc.task.taskDetail.domain.TaskDetail">
        SELECT a.click_date         AS lastUpdated,
               ifnull(b.taskQty, 0) AS qty
        FROM (
                 SELECT curdate() AS click_date
                 UNION ALL
                 SELECT date_sub(curdate(), INTERVAL 1 DAY ) AS click_date
                 UNION ALL
                 SELECT date_sub(curdate(), INTERVAL 2 DAY ) AS click_date
                 UNION ALL
                 SELECT date_sub(curdate(), INTERVAL 3 DAY ) AS click_date
                 UNION ALL
                 SELECT date_sub(curdate(), INTERVAL 4 DAY ) AS click_date
                 UNION ALL
                 SELECT date_sub(curdate(), INTERVAL 5 DAY ) AS click_date
                 UNION ALL
                 SELECT date_sub(curdate(), INTERVAL 6 DAY ) AS click_date
             ) a
                 LEFT JOIN (
            SELECT
                DATE ( r.lastUpdated) AS date,
		SUM( r.qty ) AS taskQty
        FROM
            task_detail r
        WHERE
            r.taskType = 200
          and
            r.lastUpdated >= DATE_SUB( CURDATE( )
            , INTERVAL 7 DAY )
          AND r.status
            > 90
        GROUP BY
            DATE (r.lastUpdated )
            ) b
        ON a.click_date = b.date
        ORDER BY
            a.click_date;
    </select>


    <select id="getWarehouseShipment" resultType="com.huaheng.pc.task.taskDetail.domain.TaskDetail">
        SELECT ifnull(sum(r.qty), 0) as qty, w.name as warehouseName
        from warehouse w
                 left JOIN task_detail r on r.warehouseCode = w.code and r.status > 90 and r.taskType = 200
            and date (r.lastUpdated)=CURDATE()
        group by w.code
    </select>


    <select id="getCompanyShipment" resultType="com.huaheng.pc.task.taskDetail.domain.TaskDetail">
        SELECT ifnull(sum(r.qty), 0) as qty, c.name as companyName
        from company c
                 left JOIN task_detail r on r.companyCode = c.code and r.status > 90 and r.taskType = 200
            and date (r.lastUpdated)=CURDATE()
        group by c.code
    </select>

    <insert id="insertDetails">
        insert into shipment_detail(
        shipmentId, warehouseCode, companyCode, shipmentCode, referCode, referId, referLineNum,
        materialCode, materialName, materialSpec, materialUnit, qty, allocationRule,
        replenishmentRule, pickLocs, attribute1, attribute2, attribute3, attribute4, batch,
        lot, projectNo, manufactureDate, expirationDate, agingDate, inventorySts, dockLoc,
        packingClass, waveId, created, createdBy, lastUpdatedBy
        )
        values
        <foreach collection="shipmentDetails" item="item" index="index" separator=",">
            (
            #{item.shipmentId}, #{item.warehouseCode}, #{item.companyCode}, #{item.shipmentCode}, #{item.referCode},
            #{item.referId}, #{item.referLineNum},#{item.materialCode}, #{item.materialName}, #{item.materialSpec},
            #{item.materialUnit}, #{item.qty}, #{item.allocationRule},#{item.replenishmentRule},
            #{item.pickLocs}, #{item.attribute1}, #{item.attribute2}, #{item.attribute3}, #{item.attribute4},
            #{item.batch},
            #{item.lot}, #{item.projectNo}, #{item.manufactureDate}, #{item.expirationDate}, #{item.agingDate},
            #{item.inventorySts}, #{item.dockLoc},#{item.packingClass}, #{item.waveId}, #{item.created},
            #{item.createdBy},
            #{item.lastUpdatedBy}
            )
        </foreach>
    </insert>
</mapper>