ShipmentDetailMapper.xml 10.8 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="shipQty" jdbcType="INTEGER" property="shipQty"/>
        <result column="requestQty" jdbcType="INTEGER" property="requestQty"/>
        <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, shipQty, requestQty, 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(shipQty) 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 shipQty > requestQty
    </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, shipQty, 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.shipQty}, #{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>

    <select id="getTvOutList" resultType="com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetailTv"
            parameterType="java.lang.String">
        SELECT o.materialCode  materialcode,
               o.materialName  materialname,
               o.containerCode Traynumber,
               o.qty           qty,
               k.CODE          Invoicenumber,
               k.noticeNo      NoticeNo,
               '分拣'          type
        FROM shipment_header k,
             (SELECT d.shipmentId,
                     p.*
              FROM shipment_detail d,
                   (SELECT r.containerCode,
                           l.materialCode,
                           l.materialName,
                           l.qty,
                           l.billDetailId
                    FROM task_header r,
                         task_detail l
                    WHERE r.id = l.taskId
                      AND r.taskType = '400'
                      AND r.`status` = '50'
                      AND FIND_IN_SET(r.port, #{par})) p
              WHERE d.id = p.billDetailId) o
        WHERE k.id = o.shipmentId
        UNION
        SELECT o.materialCode  materialcode,
               o.materialName  materialname,
               o.containerCode Traynumber,
               o.qty           qty,
               k.CODE          Invoicenumber,
               k.noticeNo      NoticeNo,
               '整出'          type
        FROM shipment_header k,
             (SELECT d.shipmentId,
                     p.*
              FROM shipment_detail d,
                   (SELECT r.containerCode,
                           l.materialCode,
                           l.materialName,
                           l.qty,
                           l.billDetailId,
                           r.lastUpdated
                    FROM task_header r,
                         task_detail l
                    WHERE r.id = l.taskId
                      AND r.taskType = '300'
                      AND r.`status` = '100'
                      AND r.`port` = #{par}
                      and date_add(r.lastUpdated, interval 2 MINUTE) > now()) p
              WHERE d.id = p.billDetailId) o
        WHERE k.id = o.shipmentId
    </select>
</mapper>