chenhj
2026-04-25 2ec6b477938b95608873feefa819c687d69c4a88
src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -12,7 +12,7 @@
        <result column="version" property="version" />
    </resultMap>
    <update id="updateSubtractStockUnInventory">
        update stock_inventory
        update stock_uninventory
        <set>
            <if test="ew.qualitity != null">
                qualitity = qualitity - #{ew.qualitity},
@@ -25,13 +25,24 @@
            </if>
            update_time = now()
        </set>
        where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
        where
        product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
        <if test="ew.batchNo == null">
            and batch_no is null
        </if>
        <if test="ew.batchNo != null">
            and batch_no = #{ew.batchNo}
        </if>
    </update>
    <update id="updateAddStockUnInventory">
        update stock_inventory
        update stock_uninventory
        <set>
            <if test="ew.qualitity != null">
                qualitity = qualitity + #{ew.qualitity},
            </if>
            <if test="ew.lockedQuantity != null">
                locked_quantity = locked_quantity + #{ew.lockedQuantity},
            </if>
            <if test="ew.version != null">
                version = version + 1,
@@ -42,19 +53,55 @@
            update_time = now()
        </set>
        where product_model_id = #{ew.productModelId}
        <if test="ew.batchNo == null">
            and batch_no is null
        </if>
        <if test="ew.batchNo != null">
            and batch_no = #{ew.batchNo}
        </if>
    </update>
    <select id="pageStockUninventory" resultType="com.ruoyi.stock.dto.StockUninventoryDto">
        select su.*,
               pm.model,
               pm.unit,
               p.product_name
        select su.id,
        su.qualitity,
        COALESCE(su.locked_quantity, 0) as locked_quantity,
        su.product_model_id,
        su.create_time,
        su.update_time,
        su.version,
        su.update_time,
        (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity,
        pm.model,
        pm.unit,
        p.product_name
        from stock_uninventory su
                 left join product_model pm on su.product_model_id = pm.id
                 left join product p on pm.product_id = p.id
        left join product_model pm on su.product_model_id = pm.id
        left join product p on pm.product_id = p.id
        where 1 = 1
        <if test="ew.productName != null and ew.productName !=''">
            and p.product_name like concat('%',#{ew.productName},'%')
        </if>
    </select>
    <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockUnInventoryExportData">
        select su.*,
        pm.model,
        pm.unit,
        p.product_name
        from stock_uninventory su
        left join product_model pm on su.product_model_id = pm.id
        left join product p on pm.product_id = p.id
        where 1 = 1
        <if test="ew.productName != null and ew.productName !=''">
            and p.product_name like concat('%',#{ew.productName},'%')
        </if>
    </select>
    <select id="selectPendingOutQuantity" resultType="java.math.BigDecimal">
        SELECT IFNULL(SUM(sor.stock_out_num), 0)
        FROM stock_out_record sor
        WHERE sor.product_model_id = #{productModelId}
          AND (sor.batch_no = #{batchNo} OR (#{batchNo} IS NULL AND sor.batch_no IS NULL))
          AND sor.type = #{type}
          AND sor.approval_status = 0
    </select>
</mapper>