ContainerMapper.xml 6.55 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.config.container.mapper.ContainerMapper">
    <resultMap id="BaseResultMap" type="com.huaheng.pc.config.container.domain.Container">
        <!--@mbg.generated-->
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="code" jdbcType="VARCHAR" property="code"/>
        <result column="warehouseCode" jdbcType="VARCHAR" property="warehouseCode"/>
        <result column="companyCode" jdbcType="VARCHAR" property="companyCode"/>
        <result column="containerType" jdbcType="VARCHAR" property="containerType"/>
        <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="status" jdbcType="VARCHAR" property="status"/>
        <result column="printNum" jdbcType="INTEGER" property="printNum"/>
        <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="userDef4" jdbcType="VARCHAR" property="userDef4"/>
        <result column="userDef5" jdbcType="VARCHAR" property="userDef5"/>
        <result column="userDef6" jdbcType="VARCHAR" property="userDef6"/>
        <result column="userDef7" jdbcType="VARCHAR" property="userDef7"/>
        <result column="userDef8" jdbcType="VARCHAR" property="userDef8"/>
        <result column="processStamp" jdbcType="VARCHAR" property="processStamp"/>
        <result column="vehicleCode" jdbcType="VARCHAR" property="vehicleCode"/>
        <result column="vehicleType" jdbcType="VARCHAR" property="vehicleType"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id, `name`, code, warehouseCode, companyCode, containerType, created, createdBy,
        lastUpdated, lastUpdatedBy, `status`, printNum, version, userDef1, userDef2,
        userDef3, userDef4, userDef5, userDef6, userDef7, userDef8, processStamp, vehicleCode, vehicleType
    </sql>

    <select id="getEmptyContainerInLocation" resultType="com.huaheng.pc.config.location.domain.Location">
        SELECT *
        FROM location t
        <where>
            AND t.warehouseCode = #{warehouseCode}
            AND t.status='empty'
            AND t.containerCode !=''
            AND t.containerCode is not NULL
            AND t.containerCode NOT in (SELECT h.containerCode from task_header h WHERE status &lt; 100 AND warehouseCode=#{warehouseCode})
            AND t.`code` NOT in (SELECT b.locationCode FROM inventory_detail b WHERE b.warehouseCode = #{warehouseCode} )
            <if test="zoneCode != null and zoneCode !=''">
                and t.zoneCode = #{zoneCode}
            </if>
            <if test="containerCode != null and containerCode !=''">
                and t.containerCode = #{containerCode}
            </if>
            <if test="locationCode != null and locationCode !=''">
                and t.`code` = #{locationCode}
            </if>
        </where>
    </select>

    <update id="updateLocationCodeAndStatus">
        UPDATE container
        set `status`=#{status},
            locationCode=#{locationCode}
        WHERE warehouseCode = #{warehouseCode}
          AND `code` = #{containerCode}
    </update>

    <update id="updateLocationCodeAndStatus1">
        UPDATE container
        set `status`=#{status},
            locationCode=#{locationCode},
            vehicleCode=#{vehicleCode},
            vehicleType=#{vehicleType}
        WHERE warehouseCode = #{warehouseCode}
          AND `code` = #{containerCode}
    </update>

    <update id="updateVehicleToNull">
        UPDATE container
        SET vehicleCode = NULL,
            vehicleType = NULL
        WHERE warehouseCode = #{warehouseCode}
          AND code = #{code}
    </update>

    <select id="findAllByCode" resultMap="BaseResultMap" parameterType="java.lang.String">
        SELECT *
        FROM container
        WHERE binary code = #{code,jdbcType=VARCHAR}
          AND warehouseCode = #{warehouseCode}
    </select>

    <insert id="addList" parameterType="com.huaheng.pc.config.container.domain.Container" keyProperty="id" useGeneratedKeys="true">
        INSERT INTO container(
        code,
        warehouseCode,
        companyCode,
        containerType,
        createdBy,
        status
        )values
        <foreach collection="containers" item="item" index="index" separator=",">
            (
            #{item.code},
            #{item.warehouseCode},
            #{item.companyCode},
            #{item.containerType},
            #{item.createdBy},
            #{item.status}
            )
        </foreach>
    </insert>

    <select id="selectListShelf" resultType="com.huaheng.pc.config.container.domain.Container">
        SELECT g.goodsShelfNo
        FROM (SELECT DISTINCT (goodsShelfNo) goodsShelfNo, COUNT(*) cunt
              FROM container
              WHERE `status` = 'empty' AND type = 'A'
              GROUP BY goodsShelfNo) g
                 INNER JOIN (SELECT DISTINCT (goodsShelfNo) goodsShelfNo, COUNT(*) cunt FROM container WHERE type = 'A' GROUP BY goodsShelfNo) s
                            ON g.goodsShelfNo = s.goodsShelfNo
                                AND g.cunt = s.cunt
    </select>

    <select id="emptyContainer" resultMap="BaseResultMap">
        select *
        from container
        where `status` = "empty"
          and (locationCode IS NOT NULL OR locationCode = "")
        ORDER BY id DESC
        limit 1
    </select>

    <select id="selectEmptyContainer" resultType="com.huaheng.pc.config.container.domain.Container">
        select *
        from container
        left join location ON container.locationCode = location.code
        where container.status = 'empty'
        and container.locationCode is not null
        and container.locationCode != ''
        and location.zoneCode != 'LK05'
        <if test="vehicleTypeCode != null and vehicleTypeCode != ''">
            and container.vehicleType = #{vehicleTypeCode}
        </if>
        <if test="vehicleTypeCode == null or vehicleTypeCode == ''">
            and (container.vehicleType is null or container.vehicleType = '')
        </if>

    </select>
</mapper>