2026-06-04 feb86efc4e8a8d2da00e4832bcd81825726617bf
src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -31,6 +31,9 @@
            <if test="ew.lockedQuantity != null and ew.lockedQuantity !=''">
                locked_quantity = locked_quantity + #{ew.lockedQuantity},
            </if>
            <if test="ew.warehouse != null and ew.warehouse !=''">
                warehouse = #{ew.warehouse},
            </if>
            update_time = now()
        </set>
        where product_model_id = #{ew.productModelId}
@@ -65,6 +68,7 @@
    </update>
    <select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
        select si.id,
        si.warehouse,
        si.qualitity,
        COALESCE(si.locked_quantity, 0) as locked_quantity,
        si.product_model_id,
@@ -120,6 +124,7 @@
        unit,
        product_name,
        product_id,
        MAX(warehouse) as warehouse,
        'combined' as stockType
        from (
        select
@@ -142,6 +147,7 @@
        pm.unit,
        p.product_name,
        p.id as product_id,
        si.warehouse,
        (
        select IFNULL(SUM(sor.stock_out_num), 0)
        from stock_out_record sor
@@ -180,6 +186,7 @@
        pm.unit,
        p.product_name,
        p.id as product_id,
        su.warehouse,
        0 as qualifiedPendingOut,
        (
        select IFNULL(SUM(sor.stock_out_num), 0)
@@ -209,6 +216,12 @@
            <if test="ew.topParentProductId != null and ew.topParentProductId > 0">
                and combined.product_id in (select id from product_tree)
            </if>
            <if test="ew.model != null and ew.model !=''">
                and combined.model like concat('%',#{ew.model},'%')
            </if>
            <if test="ew.batchNo != null and ew.batchNo !=''">
                and combined.batch_no like concat('%',#{ew.batchNo},'%')
            </if>
        </where>
        group by
        product_model_id,
@@ -216,6 +229,7 @@
        unit,
        product_name,
        product_id
        order by create_time desc
    </select>
    <select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData">
@@ -252,6 +266,7 @@
            unit,
            product_name,
            product_id,
            MAX(warehouse) as warehouse,
            'combined' as stockType
        from (
            select
@@ -274,6 +289,7 @@
            pm.unit,
            p.product_name,
            p.id as product_id,
            si.warehouse,
            (
                select IFNULL(SUM(sor.stock_out_num), 0)
                from stock_out_record sor
@@ -309,6 +325,7 @@
            pm.unit,
            p.product_name,
            p.id as product_id,
            su.warehouse,
            0 as qualifiedPendingOut,
            (
                select IFNULL(SUM(sor.stock_out_num), 0)
@@ -335,7 +352,7 @@
                and combined.product_id in (select id from product_tree)
            </if>
        </where>
        group by batch_no, product_model_id, model, unit, product_name, product_id
        group by batch_no, product_model_id, model, unit, product_name, product_id, warehouse
    </select>
    <select id="stockInventoryPage" resultType="com.ruoyi.stock.dto.StockInRecordDto">
        select sir.*,si.qualitity as current_stock,
@@ -361,6 +378,7 @@
                and sir.create_time &lt;= #{ew.endMonth}
            </if>
        </where>
        order by sir.id desc
    </select>
    <select id="stockInAndOutRecord" resultType="com.ruoyi.stock.dto.StockInventoryDto">
@@ -506,8 +524,9 @@
          and (si.qualitity - ifnull(si.locked_quantity, 0)) > 0
        order by si.product_model_id, si.batch_no
    </select>
    <select id="getByModelId" resultType="com.ruoyi.stock.pojo.StockInventory">
        select si.id, si.batch_no, si.locked_quantity, (si.qualitity - IFNULL(sd.qualitity, 0)) as qualitity
    <select id="getByModelId" resultType="com.ruoyi.stock.dto.StockInventoryDto">
        select si.id, si.batch_no, si.locked_quantity, (si.qualitity - IFNULL(sd.qualitity, 0)) as qualitity,
               p.product_name, pm.model, pm.unit
        from stock_inventory si
                 left join (
                    select spd.stock_inventory_id, sum(spd.quantity) as qualitity
@@ -524,7 +543,10 @@
                    )
                    group by spd.stock_inventory_id
                 ) as sd on sd.stock_inventory_id = si.id
                 left join product_model pm on si.product_model_id = pm.id
                 left join product p on pm.product_id = p.id
        where si.product_model_id = #{productModelId}
        and si.qualitity > IFNULL(sd.qualitity, 0)
    </select>
    <select id="getBatchNoQty" resultType="com.ruoyi.stock.dto.StockInventoryDto">
@@ -550,6 +572,7 @@
        unit,
        product_name,
        product_id,
        MAX(warehouse) as warehouse,
        MAX(create_time) as create_time,
        MAX(update_time) as update_time,
@@ -581,6 +604,7 @@
        COALESCE(si.warn_num, 0) as warn_num,
        si.version,
        si.remark,
        si.warehouse,
        (
        select IFNULL(SUM(sor.stock_out_num), 0)
@@ -623,6 +647,7 @@
        0 as warn_num,
        su.version,
        su.remark,
        su.warehouse,
        0 as qualifiedPendingOut,
@@ -656,7 +681,8 @@
        model,
        unit,
        product_name,
        product_id
        product_id,
        warehouse
        order by
        batch_no
    </select>