ShipmentDetailMapper.xml 7.39 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.shipment.shipmentDetail.mapper.ShipmentDetailMapper">
  <resultMap id="BaseResultMap" type="com.huaheng.shipment.api.domain.ShipmentDetail">
    <!--@mbg.generated-->
    <!--@Table shipment_detail-->
    <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="DECIMAL" property="shipQty" />
    <result column="requestQty" jdbcType="DECIMAL" property="requestQty" />
    <result column="allocationRule" jdbcType="VARCHAR" property="allocationRule" />
    <result column="replenishmentRule" jdbcType="VARCHAR" property="replenishmentRule" />
    <result column="pickingRule" jdbcType="VARCHAR" property="pickingRule" />
    <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="stationCode" jdbcType="VARCHAR" property="stationCode" />
    <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, pickingRule, pickLocs, attribute1, attribute2, attribute3, attribute4, 
    batch, lot, projectNo, manufactureDate, expirationDate, agingDate, inventorySts, 
    dockLoc, packingClass, stationCode, `status`, 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>
    <delete id="deleteDetailByCode">
      delete from shipment_detail where shipmentCode=#{code}
    </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.task.api.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.task.api.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.task.api.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>

</mapper>