liyong
3 天以前 6ed42390d7231b0d26700898ee2922732043effa
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -190,57 +190,94 @@
                AND T1.receipt_payment_date >= 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')
                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
            *
        FROM
            (
                SELECT
                    receipt_payment_amount AS receiptAmount,
                    receipt_payment_date AS happenTime,
            rp.receipt_payment_amount AS receiptAmount,
            rp.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
            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 =22
              AND rp.invoice_ledger_id = il.id
        )
        UNION ALL
                SELECT
                    0 AS receiptAmount,
                    invoice_date AS happenTime,
            il.invoice_date AS happenTime,
                    1 AS type,
                    invoice_total AS invoiceAmount
            il.invoice_total AS invoiceAmount
                FROM
                    invoice_ledger
            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
                    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
            sl.customer_id = 22
          AND il.invoice_date IS NOT NULL
        ORDER BY happenTime ASC;
    </select>
    <select id="receiptPaymentHistoryListNoPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">