InventoryDetailMapper.xml 12.2 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.inventory.inventoryDetail.mapper.InventoryDetailMapper">
    <resultMap id="BaseResultMap" type="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail">
        <!--@mbg.generated-->
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="inventoryHeaderId" jdbcType="INTEGER" property="inventoryHeaderId"/>
        <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode"/>
        <result column="companyCode" jdbcType="VARCHAR" property="companyCode"/>
        <result column="locationCode" jdbcType="VARCHAR" property="locationCode"/>
        <result column="containerCode" jdbcType="VARCHAR" property="containerCode"/>
        <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="DECIMAL" property="qty"/>
        <result column="taskQty" jdbcType="DECIMAL" property="taskQty"/>
        <result column="lockedQty" jdbcType="DECIMAL" property="lockedQty"/>
        <result column="inventorySts" jdbcType="VARCHAR" property="inventorySts"/>
        <result column="supplierCode" jdbcType="VARCHAR" property="supplierCode"/>
        <result column="referCode" jdbcType="VARCHAR" property="referCode"/>
        <result column="shipmentReferCode" jdbcType="VARCHAR" property="shipmentReferCode"/>
        <result column="referDetailId" jdbcType="VARCHAR" property="referDetailId"/>
        <result column="batch" jdbcType="VARCHAR" property="batch"/>
        <result column="lot" jdbcType="VARCHAR" property="lot"/>
        <result column="projectNo" jdbcType="VARCHAR" property="projectNo"/>
        <result column="qcCheck" jdbcType="VARCHAR" property="qcCheck"/>
        <result column="weight" jdbcType="VARCHAR" property="weight"/>
        <result column="manufactureDate" jdbcType="DATE" property="manufactureDate"/>
        <result column="expirationDate" jdbcType="DATE" property="expirationDate"/>
        <result column="agingDate" jdbcType="DATE" property="agingDate"/>
        <result column="attributeId" jdbcType="VARCHAR" property="attributeId"/>
        <result column="attribute1" jdbcType="VARCHAR" property="attribute1"/>
        <result column="attribute2" jdbcType="VARCHAR" property="attribute2"/>
        <result column="attribute3" jdbcType="VARCHAR" property="attribute3"/>
        <result column="lockCode" jdbcType="VARCHAR" property="lockCode"/>
        <result column="lastCycleCountDate" jdbcType="TIMESTAMP" property="lastCycleCountDate"/>
        <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="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="receiptCode" jdbcType="VARCHAR" property="receiptCode"/>
        <result column="receiptDetailId" jdbcType="INTEGER" property="receiptDetailId"/>
        <result column="locationNoX" jdbcType="INTEGER" property="locationNoX"/>
        <result column="locationNoY" jdbcType="INTEGER" property="locationNoY"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id, inventoryHeaderId, warehouseCode, companyCode, locationCode, containerCode, materialCode,
        materialName, materialSpec, materialUnit, qty, taskQty, lockedQty, inventorySts,
        supplierCode, referCode, referDetailId, batch, lot, projectNo, qcCheck, weight, manufactureDate,
        expirationDate, agingDate, attributeId, attribute1, attribute2, attribute3, lockCode,
        lastCycleCountDate, created, createdBy, lastUpdated, lastUpdatedBy, userDef1, userDef2,
        userDef3, processStamp, receiptCode, receiptDetailId,locationNoX,locationNoY,shipmentReferCode
    </sql>


    <select id="selectBysql" parameterType="String"
            resultType="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail">
        ${value}
    </select>


    <select id="getSumQty" resultType="java.math.BigDecimal">
        SELECT ifnull(sum(qty-taskQty),0) qty from inventory_detail where materialCode=#{materialCode} and
        warehouseCode=#{warehouseCode} and inventorySts=#{inventorySts}
        <if test="companyCode != null and companyCode != ''">
            and companyCode = #{companyCode}
        </if>
    </select>

    <select id="getWarehouseInventoryStatus" resultType="java.lang.String">
        SELECT ifnull(
                       CONVERT(
                                   (SELECT count(1)
                                    FROM inventory_detail
                                    WHERE TIMESTAMPDIFF(MONTH, created, CURDATE()) >= #{a}
                                      and TIMESTAMPDIFF(MONTH, created, CURDATE()) &lt; #{b}
                                      AND warehouseCode = #{warehouseCode}) /
                                   (SELECT count(1) FROM inventory_detail WHERE warehouseCode = #{warehouseCode}),
                                   DECIMAL (15, 2)
                           ),
                       0
                   ) scale
        FROM DUAL
    </select>

    <select id="getWarehouseInventoryStatuss" resultType="java.lang.String">
        SELECT ifnull(
                       CONVERT(
                                   (SELECT count(1)
                                    FROM inventory_detail
                                    WHERE TIMESTAMPDIFF(MONTH, created, CURDATE()) >= #{a}
                                      AND warehouseCode = #{warehouseCode}) /
                                   (SELECT count(1) FROM inventory_detail WHERE warehouseCode = #{warehouseCode}),
                                   DECIMAL (15, 2)
                           ),
                       0
                   ) scale
        FROM DUAL
    </select>

    <select id="getCompanyInventoryStatus" resultType="java.lang.String">
        SELECT ifnull(
                       CONVERT(
                                   (SELECT count(1)
                                    FROM inventory_detail
                                    WHERE TIMESTAMPDIFF(MONTH, created, CURDATE()) >= #{a}
                                      and TIMESTAMPDIFF(MONTH, created, CURDATE()) &lt; #{b}
                                      AND companyCode = #{companyCode}) /
                                   (SELECT count(1) FROM inventory_detail WHERE companyCode = #{companyCode}),
                                   DECIMAL (15, 2)
                           ),
                       0
                   ) scale
        FROM DUAL
    </select>

    <select id="getCompanyInventoryStatuss" resultType="java.lang.String">
        SELECT ifnull(
                       CONVERT(
                                   (SELECT count(1)
                                    FROM inventory_detail
                                    WHERE TIMESTAMPDIFF(MONTH, created, CURDATE()) >= #{a}
                                      AND companyCode = #{companyCode}) /
                                   (SELECT count(1) FROM inventory_detail WHERE companyCode = #{companyCode}),
                                   DECIMAL (15, 2)
                           ),
                       0
                   ) scale
        FROM DUAL
    </select>

    <select id="getWarehouseInventoryProp" resultType="java.util.LinkedHashMap">
        --     SELECT w.name,a.name,ifnull(a.total,0) total from warehouse w
--     left join
--     (SELECT m.name name,sum(i.qty) total,i.warehouseCode warehouseCode from inventory i
--     inner join material m on i.materialCode = m.`code` and i.warehouseId = m.warehouseId
--     GROUP BY m.name,i.warehouseCode) a on w.code=a.warehouseCode ORDER BY total desc
        SELECT m.name name, sum(i.qty) total
        from inventory_detail i
                 inner join material m on i.materialCode = m.`code` and i.warehouseCode = m.warehouseCode and
                                          i.warehouseCode = #{warehouseCode}
        GROUP BY m.code
        ORDER BY total desc limit 10
    </select>

    <select id="getCompanyInventoryProp" resultType="java.util.LinkedHashMap">
        --     SELECT c.name,a.name,ifnull(a.total,0) total from company c
--       left join
--       (SELECT m.name name,sum(i.qty) total,i.companyId companyId from inventory i
--       inner join material m on i.materialCode = m.`code` and i.companyId = m.companyId
--       GROUP BY m.name,i.companyId) a on c.id=a.companyId ORDER BY total desc
        SELECT m.name name, sum(i.qty) total
        from inventory_detail i
                 inner join material m on i.materialCode = m.`code` and i.companyCode = m.companyCode and
                                          i.companyCode = #{companyCode}
        GROUP BY m.code
        ORDER BY total desc limit 10
    </select>

    <select id="getRawByMaterialCode"
            resultType="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail">
        SELECT id,
               inventoryHeaderId,
               warehouseCode,
               companyCode,
               zoneCode,
               locationCode,
               containerCode,
               materialCode,
               materialName,
               materialSpec,
               materialUnit,
               qty,
               taskQty,
               inventorySts,
               supplierCode,
               referCode,
               referDetailId,
               batch,
               lot,
               projectNo,
               qcCheck,
               weight,
               manufactureDate,
               expirationDate,
               agingDate,
               attributeId,
               attribute1,
               attribute2,
               attribute3,
               lockCode,
               lastCycleCountDate,
               created,
               createdBy,
               lastUpdated,
               lastUpdatedBy,
               userDef1,
               userDef2,
               userDef3,
               processStamp,
               receiptCode,
               orderCode,
               receiptDetailId,
               shipmentReferCode
        FROM inventory_detail
        WHERE materialCode = #{materialCode}
          AND (orderCode IS NULL or orderCode = '')
          AND (shipmentReferCode is NULL or shipmentReferCode = '')
          and qty != taskQty
        order by created
    </select>
    <select id="getHeaderIdsOfMaterial" resultType="java.lang.Integer">
        select distinct inventoryHeaderId
        from inventory_detail i
        where i.materialCode = #{materialCode}
    </select>
    <select id="getInventoryExpireWarning"
            resultType="com.huaheng.pc.inventory.inventoryDetail.domain.InventoryExpireWarning">
        SELECT
        i.materialCode,
        i.materialName,
        i.qty,
        i.batch,
        i.materialSpec,
        i.materialUnit,
        i.locationCode,
        i.containerCode,
        i.created,
        TO_DAYS(NOW())-TO_DAYS(i.created) as age,
        i.locationNoX,
        i.locationNoY,
        CONCAT(i.locationNoX,', ',i.locationNoY) as xy,
        t.maxday,
        0
        FROM inventory_detail i,
        material m, material_warning t
        WHERE t.maxday>0 and
        i.materialCode = m.code and m.code=t.materialCode
        and TO_DAYS(NOW())-TO_DAYS(i.created) >= t.maxday
        <if test="materialCode != null and materialCode != ''">
            and i.materialCode = #{materialCode}
        </if>
    </select>

</mapper>