gongchunyi
6 小时以前 7dae2509ddb7d918f0ef0450a09ed721f6c7540f
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -187,36 +187,59 @@
        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
        FROM purchase_ledger T1
        LEFT JOIN payment_registration T2 ON T1.id = T2.sales_ledger_id
        T1.invoiceAmount,
        IFNULL(T2.paymentAmount, 0) AS paymentAmount,
        (T1.invoiceAmount - IFNULL(T2.paymentAmount, 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 != '' ">
                T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
                AND supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
            </if>
        </where>
        GROUP BY T1.supplier_name
        GROUP BY supplier_id, supplier_name
        ) T1
        LEFT JOIN (
        SELECT
        supplier_id,
        SUM(current_payment_amount) AS paymentAmount
        FROM payment_registration
        GROUP BY supplier_id
        ) T2 ON T1.supplier_id = T2.supplier_id
    </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,
        T2.id,
        T1.purchase_contract_number,
        T1.contract_amount AS invoiceAmount,
        IFNULL(T2.current_payment_amount, 0) AS paymentAmount,
        IFNULL((
        T1.contract_amount - IFNULL((
        SELECT SUM(T3.current_payment_amount)
        FROM payment_registration T3
        WHERE T3.purchase_ledger_id = T1.id
        AND (
        T3.payment_date &lt; T2.payment_date
        OR (T3.payment_date = T2.payment_date AND T3.id &lt;= T2.id)
        )
        ), 0)
        ), 0) AS payableAmount,
        T2.payment_date
        FROM purchase_ledger T1
        LEFT JOIN payment_registration T2 ON T1.id = T2.sales_ledger_id
        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},'%')
                AND T1.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%')
            </if>
        </where>
        GROUP BY  T1.purchase_contract_number,T2.payment_date
        ORDER BY T2.payment_date ASC, T2.id ASC
    </select>
</mapper>
</mapper>