src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -29,6 +29,8 @@
        pl.approve_user_ids,
        sm.is_white,
        pl.approval_status,
        pl.stock_status,
        IFNULL(ps.product_stock_status, 0) AS product_stock_status,
        pl.payment_method,
        pl.remarks
        FROM purchase_ledger pl
@@ -40,6 +42,19 @@
        GROUP BY purchase_ledger_id
        ) tr_sum ON pl.id = tr_sum.purchase_ledger_id
        LEFT JOIN supplier_manage sm ON pl.supplier_id = sm.id
        LEFT JOIN (
        SELECT
        sales_ledger_id,
        CASE
        WHEN COUNT(1) = 0 THEN 0
        WHEN SUM(CASE WHEN IFNULL(product_stock_status, 0) = 2 THEN 1 ELSE 0 END) = COUNT(1) THEN 2
        WHEN SUM(CASE WHEN IFNULL(product_stock_status, 0) > 0 THEN 1 ELSE 0 END) > 0 THEN 1
        ELSE 0
        END AS product_stock_status
        FROM sales_ledger_product
        WHERE type = 2
        GROUP BY sales_ledger_id
        ) ps ON pl.id = ps.sales_ledger_id
        <where>
            <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
                AND pl.purchase_contract_number LIKE CONCAT('%', #{c.purchaseContractNumber}, '%')
@@ -62,6 +77,12 @@
            <if test="c.entryDateEnd != null and c.entryDateEnd != ''">
                AND pl.entry_date &lt;= #{c.entryDateEnd}
            </if>
            <if test="c.supplierId != null">
                AND pl.supplier_id = #{c.supplierId}
            </if>
            <if test="c.approvalStatus != null">
                AND pl.approval_status = #{c.approvalStatus}
            </if>
        </where>
        ORDER BY pl.entry_date DESC
    </select>