liyong
2026-04-24 8ed9be0eaff405580e87715bbd5b018b8b067eab
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -185,39 +185,45 @@
    </select>
    <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
        T1.supplier_id,
        T1.supplier_id ,
        T1.supplier_name,
        SUM(contract_amount) AS invoiceAmount,
        IFNULL( SUM(T2.current_payment_amount) , 0 ) AS paymentAmount,
        IFNULL((IFNULL(SUM(contract_amount),0)  - IFNULL(SUM(T2.current_payment_amount),0)),0) AS payableAmount
        FROM purchase_ledger T1
        LEFT JOIN payment_registration T2 ON T1.id = T2.purchase_ledger_id
        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,id
        ) 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_name
        GROUP BY T1.supplier_id, T1.supplier_name
    </select>
    <select id="supplierNameListPageDetails" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
        T1.supplier_id,
        T1.supplier_name,
        SUM(contract_amount) AS invoiceAmount,
        IFNULL( SUM(T2.current_payment_amount) , 0 ) AS paymentAmount,
        IFNULL((IFNULL(SUM(contract_amount),0)  - IFNULL(SUM(T2.current_payment_amount),0)),0) AS payableAmount,
        T1.purchase_contract_number,
        T2.payment_date
        FROM purchase_ledger T1
        INNER JOIN payment_registration T2 ON T1.id = T2.purchase_ledger_id
        <where>
            T1.supplier_id = #{req.supplierId}
            <if test="req.supplierName != null and req.supplierName != '' ">
                T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
            </if>
        </where>
        GROUP BY  T1.purchase_contract_number,T2.payment_date
         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
    <where>
        T1.supplier_id = #{req.supplierId}
        <if test="req.supplierName != null and req.supplierName != '' ">
            AND T1.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%')
        </if>
    </where>
    GROUP BY T1.id, T1.purchase_contract_number, T1.contract_amount, T2.payment_date
    </select>
</mapper>
</mapper>