From fa59bd5bf64f818111b26744a3b51b936ab6f389 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 01 七月 2025 09:50:00 +0800
Subject: [PATCH] 2025-07-01 bug修改

---
 src/main/resources/mapper/sales/ReceiptPaymentMapper.xml |  398 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 395 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index 8490cba..26ef5f8 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -3,7 +3,36 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.sales.mapper.ReceiptPaymentMapper">
-    <select id="invoiceLedgerPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
+    <select id="receiptPaymentListPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
+        SELECT
+            T4.customer_id,
+            IFNULL(T5.invoice_total,0) AS invoice_total,
+            T1.receipt_payment_amount,
+            T1.receipt_payment_date
+        FROM
+            receipt_payment T1
+        LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
+        LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
+        LEFT JOIN sales_ledger T4 ON T4.id = T3.sales_ledger_id
+        LEFT JOIN (
+            SELECT
+                T3.customer_id,
+                SUM( invoice_total ) AS invoice_total
+            FROM
+                invoice_ledger T1
+            LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
+            LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
+            GROUP BY T3.customer_id
+        ) T5 ON T5.customer_id = T4.customer_id
+        <where>
+            <if test="receiptPaymentDto.customerId != null">
+                AND T4.customer_id = #{receiptPaymentDto.customerId}
+            </if>
+        </where>
+        ORDER BY T1.create_time ASC
+    </select>
+
+    <select id="receiptPaymentInfo" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
         SELECT
             T1.id                 ,
             T1.sales_ledger_id        ,
@@ -20,9 +49,372 @@
             T1.create_user            ,
             T1.update_time            ,
             T1.update_user            ,
-            T1.tenant_id              ,
+            T1.tenant_id,
+            T1.invoice_ledger_id,
+            T3.customer_contract_no,
+            T2.customer_name
         FROM receipt_payment T1
-        LEFT JOIN customer T2 ON T1.customer_id = T2.id
+                 LEFT JOIN customer T2 ON T1.customer_id = T2.id
+                 LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
+        WHERE T1.id = #{id}
+    </select>
+
+    <select id="bindInvoiceNoRegPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
+        SELECT
+        T1.id ,
+        T1.invoice_no ,
+        T1.invoice_total ,
+        T3.project_name,
+        T1.invoice_person ,
+        T1.invoice_date ,
+        T1.create_time ,
+        T1.create_user ,
+        T1.update_time ,
+        T1.update_user ,
+        T1.tenant_id ,
+        T2.tax_rate,
+        T3.sales_contract_no,
+        T3.customer_contract_no,
+        T3.customer_name,
+        T4.invoiceFileName,
+        T5.product_category,
+        IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
+        (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
+        FROM invoice_ledger T1
+        LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
+        LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
+        LEFT JOIN (
+        SELECT
+        invoice_ledger_id,
+        GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
+        FROM invoice_ledger_file GROUP BY invoice_ledger_id
+        ) T4 ON T4.invoice_ledger_id = T1.id
+        LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id
+        LEFT JOIN (
+        SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP
+        BY invoice_ledger_id
+        ) T6 ON T1.id = T6.invoice_ledger_id
+        <where>
+            <if test="c.customerName != null and c.customerName !=''">
+                AND T3.customer_name LIKE CONCAT('%',#{c.customerName},'%')
+            </if>
+            <if test="c.customerContractNo != null and c.customerContractNo !=''">
+                AND T3.customer_contract_no LIKE CONCAT('%',#{c.customerContractNo},'%')
+            </if>
+            <if test="c.projectName != null and c.projectName !=''">
+                AND T3.project_name LIKE CONCAT('%',#{c.projectName},'%')
+            </if>
+        </where>
+        ORDER BY T2.create_time DESC
+    </select>
+
+    <select id="invoiceInfo" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
+        SELECT
+            T1.id,
+            T1.invoice_no,
+            T1.invoice_total ,
+            T2.tax_rate,
+            T3.customer_name,
+            T3.sales_contract_no
+        FROM
+            invoice_ledger T1
+                LEFT JOIN
+            invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
+                LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
+        WHERE T1.id = #{id}
+    </select>
+
+    <select id="getReceiptAmount" resultType="java.math.BigDecimal">
+        SELECT
+            SUM( receipt_payment_amount ) AS total_amount
+        FROM
+            (
+                SELECT
+                    T1.receipt_payment_amount
+                FROM
+                    receipt_payment T1
+                        LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
+                        LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
+                        LEFT JOIN sales_ledger T4 ON T4.id = T3.sales_ledger_id
+                        LEFT JOIN (
+                        SELECT
+                            T3.customer_id,
+                            SUM( invoice_total ) AS invoice_total
+                        FROM
+                            invoice_ledger T1
+                                LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
+                                LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
+                        GROUP BY
+                            T3.customer_id
+                    ) T5 ON T5.customer_id = T4.customer_id
+                WHERE
+                    T4.customer_id = #{customerId}
+
+                ORDER BY
+                    T1.create_time ASC
+                    LIMIT #{total} ) AS limited_rows
+    </select>
+
+    <select id="receiptPaymentHistoryList" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
+        SELECT
+            T1.receipt_payment_date,
+            T5.customer_name,
+            T1.receipt_payment_amount,
+            T1.receipt_payment_type,
+            T1.registrant,
+            T1.create_time
+        FROM
+            receipt_payment T1
+                LEFT JOIN
+            invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
+                LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
+                LEFT JOIN sales_ledger T4 ON T3.sales_ledger_id = T4.id
+                LEFT JOIN customer T5 ON T5.id = T4.customer_id
+        <where>
+            <if test="params.searchText != null and params.searchText != '' ">
+                T5.customer_name LIKE CONCAT('%',#{params.searchText},'%')
+            </if>
+        </where>
+        ORDER BY T1.receipt_payment_date DESC
+    </select>
+
+    <select id="receiptPaymentHistoryListPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
+        SELECT
+        T1.receipt_payment_date,
+        T5.customer_name,
+        T1.receipt_payment_amount,
+        T1.receipt_payment_type,
+        T1.registrant,
+        T1.create_time,
+        T4.project_name,
+        T4.sales_contract_no,
+        T4.customer_contract_no
+        FROM
+        receipt_payment T1
+        LEFT JOIN
+        invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
+        LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
+        LEFT JOIN sales_ledger T4 ON T3.sales_ledger_id = T4.id
+        LEFT JOIN customer T5 ON T5.id = T4.customer_id
+        <where>
+            <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>
+            <if test="params.projectName != null and params.projectName != '' ">
+                AND T4.project_name LIKE CONCAT('%',#{params.projectName},'%')
+            </if>
+            <if test="params.customerContractNo != null and params.customerContractNo != '' ">
+                AND T4.customer_contract_no LIKE CONCAT('%',#{params.customerContractNo},'%')
+            </if>
+            <if test="params.salesContractNo != null and params.salesContractNo != '' ">
+                AND T4.sales_contract_no LIKE CONCAT('%',#{params.salesContractNo},'%')
+            </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
+            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">
+        SELECT
+        T1.id,
+        T1.receipt_payment_date,
+        T5.customer_name,
+        T1.receipt_payment_amount,
+        T1.receipt_payment_type,
+        T1.registrant,
+        T1.create_time
+        FROM
+        receipt_payment T1
+        LEFT JOIN
+        invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
+        LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
+        LEFT JOIN sales_ledger T4 ON T3.sales_ledger_id = T4.id
+        LEFT JOIN customer T5 ON T5.id = T4.customer_id
+        WHERE T1.invoice_ledger_id = #{params.invoiceLedgerId}
+        ORDER BY T1.receipt_payment_date DESC
+    </select>
+
+    <select id="receiptPaymentListByProdRegId" resultType="com.ruoyi.sales.pojo.ReceiptPayment">
+        SELECT
+            T1.*
+        FROM
+            receipt_payment T1
+                LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
+        WHERE
+            T2.invoice_registration_product_id = #{invoiceRegistrationProductId}
+    </select>
+    <select id="bindInvoiceNoRegListAll" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
+        SELECT
+            T1.id ,
+            T1.invoice_no ,
+            T1.invoice_total ,
+            T3.project_name,
+            T1.invoice_person ,
+            T1.invoice_date ,
+            T1.create_time ,
+            T1.create_user ,
+            T1.update_time ,
+            T1.update_user ,
+            T1.tenant_id ,
+            T2.tax_rate,
+            T3.sales_contract_no,
+            T3.customer_contract_no,
+            T3.customer_name,
+            T4.invoiceFileName,
+            T5.product_category,
+            IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
+            (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
+        FROM invoice_ledger T1
+                 LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
+                 LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
+                 LEFT JOIN (
+            SELECT
+                invoice_ledger_id,
+                GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
+            FROM invoice_ledger_file GROUP BY invoice_ledger_id
+        ) T4 ON T4.invoice_ledger_id = T1.id
+                 LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id
+                 LEFT JOIN (
+            SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP
+                BY invoice_ledger_id
+        ) T6 ON T1.id = T6.invoice_ledger_id
+    </select>
+    <select id="bindInvoiceNoRegListByIds" resultType="com.ruoyi.sales.dto.ReceiptPaymentExeclDto">
+        SELECT
+        T1.id ,
+        T1.invoice_no ,
+        T1.invoice_total ,
+        T3.project_name,
+        T1.invoice_person ,
+        T1.invoice_date ,
+        T1.create_time ,
+        T1.create_user ,
+        T1.update_time ,
+        T1.update_user ,
+        T1.tenant_id ,
+        T2.tax_rate,
+        T3.sales_contract_no,
+        T3.customer_contract_no,
+        T3.customer_name,
+        T4.invoiceFileName,
+        T5.product_category,
+        IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
+        (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
+        FROM invoice_ledger T1
+        LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
+        LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
+        LEFT JOIN (
+        SELECT
+        invoice_ledger_id,
+        GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
+        FROM invoice_ledger_file GROUP BY invoice_ledger_id
+        ) T4 ON T4.invoice_ledger_id = T1.id
+        LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id
+        LEFT JOIN (
+        SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP
+        BY invoice_ledger_id
+        ) T6 ON T1.id = T6.invoice_ledger_id
+        <where>
+        <if test="ids.size() > 0">
+            T1.id IN
+            <foreach item="item" collection="ids" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="tenantId != null " >
+            AND T1.tenant_id = #{tenantId}
+        </if>
+        </where>
+
     </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3