gongchunyi
3 天以前 0997eacb098ca63a7e83d08a0d40140bef72b18b
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -185,46 +185,60 @@
    </select>
    <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
    T1.supplier_id ,
    T1.supplier_name,
    SUM(T1.contract_amount) AS invoiceAmount,
    IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount,
    IFNULL(SUM(T1.contract_amount) - IFNULL(SUM(T2.current_payment_amount), 0), 0) AS payableAmount
FROM (
    SELECT id,supplier_id, supplier_name, SUM(contract_amount) contract_amount
    FROM purchase_ledger
    GROUP BY supplier_id, supplier_name
) T1
LEFT JOIN (
    SELECT purchase_ledger_id, SUM(current_payment_amount) current_payment_amount
    FROM payment_registration
    GROUP BY purchase_ledger_id
) T2 ON T1.id  = T2.purchase_ledger_id
<where>
     <if test="req.supplierName != null and req.supplierName != '' ">
                T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
     </if>
</where>
GROUP BY T1.supplier_id, T1.supplier_name
            T1.supplier_id,
            T1.supplier_name,
            T1.invoiceAmount,
            IFNULL(T2.paymentAmount, 0) AS paymentAmount,
            IFNULL(T2.payableAmount, 0) AS payableAmount
        FROM (
            SELECT
                supplier_id,
                supplier_name,
                SUM(contract_amount) AS invoiceAmount
            FROM purchase_ledger
            <where>
                <if test="req.supplierName != null and req.supplierName != '' ">
                    AND supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
                </if>
            </where>
            GROUP BY supplier_id, supplier_name
        ) T1
        LEFT JOIN (
            SELECT
                pl.supplier_id,
                SUM(IFNULL(slp.stocked_quantity, 0) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS paymentAmount,
                SUM((IFNULL(slp.quantity, 0) - IFNULL(slp.stocked_quantity, 0)) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS payableAmount
            FROM purchase_ledger pl
            JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id AND slp.type = 2
            GROUP BY pl.supplier_id
        ) T2 ON T1.supplier_id = T2.supplier_id
    </select>
    <select id="supplierNameListPageDetails" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
        T1.purchase_contract_number,
        T1.contract_amount AS invoiceAmount,
        IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount,
        IFNULL((T1.contract_amount - IFNULL(SUM(T2.current_payment_amount), 0)), 0) AS payableAmount,
        T2.payment_date
        FROM purchase_ledger T1
        INNER JOIN payment_registration T2 ON T1.id = T2.purchase_ledger_id
            pl.id,
            pl.purchase_contract_number,
            pl.contract_amount AS invoiceAmount,
            pl.entry_date AS payment_date,
            IFNULL(T2.payableAmount, 0) AS paymentAmount,
            IFNULL(T2.paymentAmount, 0) AS payableAmount
        FROM purchase_ledger pl
        LEFT JOIN (
            SELECT
                sales_ledger_id,
                SUM(IFNULL(stocked_quantity, 0) * IFNULL(tax_inclusive_unit_price, 0)) AS paymentAmount,
                SUM((IFNULL(quantity, 0) - IFNULL(stocked_quantity, 0)) * IFNULL(tax_inclusive_unit_price, 0)) AS payableAmount
            FROM sales_ledger_product
            WHERE type = 2
            GROUP BY sales_ledger_id
        ) T2 ON pl.id = T2.sales_ledger_id
        <where>
            T1.supplier_id = #{req.supplierId}
            pl.supplier_id = #{req.supplierId}
            <if test="req.supplierName != null and req.supplierName != '' ">
                AND T1.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%')
                AND pl.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%')
            </if>
        </where>
        GROUP BY T1.id, T1.purchase_contract_number, T1.contract_amount, T2.payment_date
        ORDER BY pl.entry_date ASC, pl.id ASC
    </select>
</mapper>