liyong
2025-06-19 d2885d323c9a75e62e49b7cb5ba48165e0e489bf
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -64,6 +64,7 @@
            T1.id                ,
            T1.invoice_no        ,
            T1.invoice_total    ,
            T3.project_name,
            T1.invoice_person    ,
            T1.invoice_date      ,
            T1.create_time       ,
@@ -172,7 +173,8 @@
        T1.receipt_payment_amount,
        T1.receipt_payment_type,
        T1.registrant,
        T1.create_time
        T1.create_time,
        T4.project_name
        FROM
        receipt_payment T1
        LEFT JOIN
@@ -184,55 +186,98 @@
            <if test="params.searchText != null and params.searchText != '' ">
                T5.customer_name LIKE CONCAT('%',#{params.searchText},'%')
            </if>
            <if test="params.receiptPaymentDateStart != null and params.receiptPaymentDateStart != '' ">
                AND T1.receipt_payment_date &gt;= date_format(#{params.receiptPaymentDateStart},'%Y-%m-%d')
            </if>
            <if test="params.receiptPaymentDateEnd != null and params.receiptPaymentDateEnd != '' ">
                AND T1.receipt_payment_date &lt;= date_format(#{params.receiptPaymentDateEnd}, '%Y-%m-%d')
            </if>
        </where>
        ORDER BY T1.receipt_payment_date DESC
    </select>
<!--    SELECT-->
<!--    *-->
<!--    FROM-->
<!--    (-->
<!--    SELECT-->
<!--    receipt_payment_amount AS receiptAmount,-->
<!--    receipt_payment_date AS happenTime,-->
<!--    0 AS type,-->
<!--    0 AS invoiceAmount-->
<!--    FROM-->
<!--    receipt_payment-->
<!--    WHERE-->
<!--    invoice_ledger_id IN (-->
<!--    SELECT-->
<!--    id-->
<!--    FROM-->
<!--    invoice_ledger-->
<!--    WHERE-->
<!--    invoice_registration_product_id IN (-->
<!--    SELECT-->
<!--    id-->
<!--    FROM-->
<!--    invoice_registration_product-->
<!--    WHERE-->
<!--    sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id =  #{customerId} ))) UNION-->
<!--    SELECT-->
<!--    0 AS receiptAmount,-->
<!--    invoice_date AS happenTime,-->
<!--    1 AS type,-->
<!--    invoice_total AS invoiceAmount-->
<!--    FROM-->
<!--    invoice_ledger-->
<!--    WHERE-->
<!--    invoice_registration_product_id IN (-->
<!--    SELECT-->
<!--    id-->
<!--    FROM-->
<!--    invoice_registration_product-->
<!--    WHERE-->
<!--    sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))-->
<!--    AND invoice_date IS NOT NULL-->
<!--    ) T1-->
<!--    ORDER BY-->
<!--    T1.happenTime ASC-->
    <select id="customerInteractions" resultType="com.ruoyi.sales.dto.CustomerInteractionDto">
        SELECT
            *
            rp.receipt_payment_amount AS receiptAmount,
            rp.receipt_payment_date   AS happenTime,
            0                          AS type,
            0                          AS invoiceAmount
        FROM
            (
                SELECT
                    receipt_payment_amount AS receiptAmount,
                    receipt_payment_date AS happenTime,
                    0 AS type,
                    0 AS invoiceAmount
                FROM
                    receipt_payment
                WHERE
                    invoice_ledger_id IN (
                        SELECT
                            id
                        FROM
                            invoice_ledger
                        WHERE
                            invoice_registration_product_id IN (
                                SELECT
                                    id
                                FROM
                                    invoice_registration_product
                                WHERE
                                    sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id =  #{customerId} ))) UNION
                SELECT
                    0 AS receiptAmount,
                    invoice_date AS happenTime,
                    1 AS type,
                    invoice_total AS invoiceAmount
                FROM
                    invoice_ledger
                WHERE
                    invoice_registration_product_id IN (
                        SELECT
                            id
                        FROM
                            invoice_registration_product
                        WHERE
                            sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))
                  AND invoice_date IS NOT NULL
            ) T1
        ORDER BY
            T1.happenTime ASC
            receipt_payment rp
        WHERE EXISTS (
            SELECT 1
            FROM invoice_ledger il
                     JOIN invoice_registration_product irp ON il.invoice_registration_product_id = irp.id
                     JOIN sales_ledger sl ON irp.sales_ledger_id = sl.id
            WHERE sl.customer_id = #{customerId}
              AND rp.invoice_ledger_id = il.id
        )
        UNION ALL
        SELECT
            0 AS receiptAmount,
            il.invoice_date AS happenTime,
            1 AS type,
            il.invoice_total AS invoiceAmount
        FROM
            invoice_ledger il
                JOIN invoice_registration_product irp ON il.invoice_registration_product_id = irp.id
                JOIN sales_ledger sl ON irp.sales_ledger_id = sl.id
        WHERE
            sl.customer_id =  #{customerId}
          AND il.invoice_date IS NOT NULL
        ORDER BY happenTime ASC;
    </select>
    <select id="receiptPaymentHistoryListNoPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">