gongchunyi
6 小时以前 0997eacb098ca63a7e83d08a0d40140bef72b18b
fix: 供应商与客户往来修改
已修改4个文件
144 ■■■■ 文件已修改
src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java
@@ -34,10 +34,10 @@
    // 待付款金额
    private BigDecimal unPaymentAmount;
    // 付款金额
    // 已入库/未入库金额
    private BigDecimal paymentAmount;
    // 应付金额
    // 未入库/入库金额
    private BigDecimal payableAmount;
    // 税率
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -185,61 +185,60 @@
    </select>
    <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
        T1.supplier_id,
        T1.supplier_name,
        T1.invoiceAmount,
        IFNULL(T2.paymentAmount, 0) AS paymentAmount,
        (T1.invoiceAmount - IFNULL(T2.paymentAmount, 0)) AS payableAmount
            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
            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
        supplier_id,
        SUM(current_payment_amount) AS paymentAmount
        FROM payment_registration
        GROUP BY supplier_id
            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
        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
        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>
        ORDER BY T2.payment_date ASC, T2.id ASC
        ORDER BY pl.entry_date ASC, pl.id ASC
    </select>
</mapper>
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -115,7 +115,7 @@
        T1.customer_name,
        T1.invoice_total,
        IFNULL(T2.receipt_payment_amount, 0) AS receipt_payment_amount,
        IFNULL(T1.invoice_total - IFNULL(T2.receipt_payment_amount, 0), 0) AS unReceipt_payment_amount
        IFNULL(T2.unReceipt_payment_amount, 0) AS unReceipt_payment_amount
        FROM (
        SELECT
        customer_id,
@@ -125,12 +125,13 @@
        GROUP BY customer_id, customer_name
        ) T1
        LEFT JOIN (
        SELECT
        T3.customer_id,
        SUM(T2.receipt_payment_amount) AS receipt_payment_amount
        FROM receipt_payment T2
        LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
        GROUP BY T3.customer_id
            SELECT
                sl.customer_id,
                SUM(IFNULL(slp.shipped_quantity, 0) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS receipt_payment_amount,
                SUM((IFNULL(slp.stocked_quantity, 0) - IFNULL(slp.shipped_quantity, 0)) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS unReceipt_payment_amount
            FROM sales_ledger sl
            JOIN sales_ledger_product slp ON sl.id = slp.sales_ledger_id AND slp.type = 1
            GROUP BY sl.customer_id
        ) T2 ON T1.customer_id = T2.customer_id
        <where>
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' ">
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -435,31 +435,29 @@
    <select id="invoiceLedgerSalesAccount" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
        T2.id,
        T1.sales_contract_no,
        T1.contract_amount AS invoice_total,
        IFNULL(T2.receipt_payment_amount, 0) AS receipt_payment_amount,
        IFNULL((
        T1.contract_amount - IFNULL((
        SELECT SUM(T3.receipt_payment_amount)
        FROM receipt_payment T3
        WHERE T3.sales_ledger_id = T1.id
        AND (
        T3.receipt_payment_date &lt; T2.receipt_payment_date
        OR (T3.receipt_payment_date = T2.receipt_payment_date AND T3.id &lt;= T2.id)
        )
        ), 0)
        ), 0) AS unReceipt_payment_amount,
        T2.receipt_payment_date
        FROM sales_ledger T1
        INNER JOIN receipt_payment T2 ON T1.id = T2.sales_ledger_id
            sl.id,
            sl.sales_contract_no,
            sl.contract_amount AS invoice_total,
            sl.entry_date AS receipt_payment_date,
            IFNULL(T2.receipt_payment_amount, 0) AS receipt_payment_amount,
            IFNULL(T2.unReceipt_payment_amount, 0) AS unReceipt_payment_amount
        FROM sales_ledger sl
        LEFT JOIN (
            SELECT
                sales_ledger_id,
                SUM(IFNULL(shipped_quantity, 0) * IFNULL(tax_inclusive_unit_price, 0)) AS receipt_payment_amount,
                SUM((IFNULL(stocked_quantity, 0) - IFNULL(shipped_quantity, 0)) * IFNULL(tax_inclusive_unit_price, 0)) AS unReceipt_payment_amount
            FROM sales_ledger_product
            WHERE type = 1
            GROUP BY sales_ledger_id
        ) T2 ON sl.id = T2.sales_ledger_id
        <where>
            T1.customer_id = #{invoiceLedgerDto.customerId}
            sl.customer_id = #{invoiceLedgerDto.customerId}
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' ">
                AND T1.customer_name LIKE CONCAT ('%', #{invoiceLedgerDto.searchText}, '%')
                AND sl.customer_name LIKE CONCAT ('%', #{invoiceLedgerDto.searchText}, '%')
            </if>
        </where>
        ORDER BY T2.receipt_payment_date ASC, T2.id ASC
        ORDER BY sl.entry_date ASC, sl.id ASC
    </select>
</mapper>