ShipmentDetailMapper.xml 8.11 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" />
      <result column="moCode" jdbcType="VARCHAR" property="moCode" />
      <result column="autoId" jdbcType="INTEGER" property="autoId" />
      <result column="backQty" jdbcType="DECIMAL" property="backQty" />
  </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,moCode,backQty,autoId
  </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,moCode,backQty,autoId
    )
    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},#{item.moCode},#{item.backQty},#{item.autoId}
    )
    </foreach>
  </insert>
</mapper>