ReceiptHeaderMapper.xml 2.49 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.receipt.receiptHeader.mapper.ReceiptHeaderMapper">

    <select id="createCode" resultType="java.lang.String">
        SELECT code FROM receipt_header WHERE type = #{receiptType,jdbcType=VARCHAR} ORDER BY id DESC LIMIT 1
    </select>

    <insert id="headerToHistory">
        INSERT INTO receipt_header_history (
                code, warehouseCode, companyId, type, sourceCode, sourcePlatform, companyCode, totalQty,
                totalLines, remark, uploadStatus, uploadremark, uploadTime, appointmentTime, firstStatus, lastStatus,
                created, createdBy, lastUpdated, lastUpdatedBy, ENABLE, userDef1, userDef2, userDef3, deleted)
        SELECT
                code, warehouseCode, companyId, type, sourceCode, sourcePlatform, companyCode, totalQty,
                totalLines, remark,  uploadStatus, uploadremark, uploadTime, appointmentTime, firstStatus,
                lastStatus, created, createdBy, lastUpdated, lastUpdatedBy, ENABLE, userDef1, userDef2, userDef3, 1
        FROM receipt_header WHERE code = #{code,jdbcType=VARCHAR}
    </insert>

    <insert id="detailToHistory">
        INSERT INTO receipt_detail_history (
                id,sourceLine,receiptCode,materialCode,batch,lot,project,manufactureDate,expirationDate,inventoryStatus,qty,
                price,uploadTime,created,createdBy,lastUpdated,lastUpdatedBy,enable,deleted,userDef1,userDef2,userDef3)
        SELECT
                id,sourceLine,receiptCode,materialCode,batch,lot,project,manufactureDate,expirationDate,inventoryStatus,qty,
                price,uploadTime,created,createdBy,lastUpdated,lastUpdatedBy,enable,1,userDef1,userDef2,userDef3
        FROM receipt_detail WHERE receiptCode = #{code,jdbcType=VARCHAR}
    </insert>

    <select id="getLastStatus" resultType="java.lang.Short">
        SELECT  MIN(`status`) AS lastStatus FROM receipt_detail WHERE receiptId = #{receiptId}
    </select>

    <update id="updateDetailStatus">
        <if test="status != null and status == 300 and  receiptId != null">
            UPDATE receipt_detail SET status=#{status} WHERE receiptId=#{receiptId} AND qty &lt;= qtyCompleted
        </if>
        <if test="status != null and status == 800 and  receiptId != null">
            UPDATE receipt_detail SET status=#{status} WHERE receiptId=#{receiptId} AND status &gt;= 300
        </if>
    </update>
    
</mapper>