From 6ed42390d7231b0d26700898ee2922732043effa Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 19 六月 2025 16:20:34 +0800
Subject: [PATCH] 2025-06-19  增值税对比 + 问题修改

---
 src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java                   |    1 
 src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml              |    2 
 src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java    |    1 
 src/main/java/com/ruoyi/purchase/dto/VatDto.java                                  |    9 +
 src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java             |    3 
 src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java     |   10 +
 src/main/resources/mapper/purchase/ProductRecordMapper.xml                        |    4 
 src/main/resources/mapper/sales/ReceiptPaymentMapper.xml                          |  123 +++++++++++++-------
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java                        |    6 +
 src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java          |    2 
 src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java |    2 
 src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java       |    8 
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java            |    7 
 src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java         |    2 
 src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java                |    4 
 src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml                      |  117 ++++++++++++++++++-
 src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml                  |    2 
 17 files changed, 230 insertions(+), 73 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
index 08733c7..5f62c97 100644
--- a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
@@ -5,8 +5,8 @@
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.purchase.dto.InvoicePurchaseDto;
 import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
+import com.ruoyi.purchase.dto.VatDto;
 import com.ruoyi.purchase.pojo.InvoicePurchase;
 import com.ruoyi.purchase.service.IInvoicePurchaseService;
 import io.swagger.annotations.Api;
@@ -15,6 +15,8 @@
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 @RestController
 @Api(tags = "閲囪喘鎶ヨ〃")
@@ -34,8 +36,8 @@
 
     @Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿", businessType = BusinessType.OTHER)
     @GetMapping("/listVat")
-    public AjaxResult listVat(Page page, InvoicePurchase invoicePurchase) {
-        IPage<InvoicePurchase> result = invoicePurchaseService.listVat(page, invoicePurchase);
+    public AjaxResult listVat(Page page,String month) {
+        IPage<VatDto> result = invoicePurchaseService.listVat(page, month);
         return AjaxResult.success(result);
     }
 }
diff --git a/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java b/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java
index 62978e3..ddd681b 100644
--- a/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java
@@ -70,6 +70,5 @@
     @TableField(exist = false)
     private String createdAtStart;
     @TableField(exist = false)
-
     private String createdAtEnd;
 }
diff --git a/src/main/java/com/ruoyi/purchase/dto/VatDto.java b/src/main/java/com/ruoyi/purchase/dto/VatDto.java
index 4ad3dc1..8eb273a 100644
--- a/src/main/java/com/ruoyi/purchase/dto/VatDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/VatDto.java
@@ -2,18 +2,21 @@
 
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 
 @Data
 public class VatDto {
 
     //鏈堜唤
-    private LocalDate month ;
+    private String month ;
 
     //杩涢」绋�
-    private String jTaxAmount;
+    private BigDecimal jTaxAmount;
 
     //閿�椤圭◣
-    private String xTaxAmount;
+    private BigDecimal xTaxAmount;
+
+    private BigDecimal taxAmount;
 
 }
diff --git a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
index c80c41a..b1dc03c 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
@@ -22,5 +22,7 @@
 
     IPage<InvoicePurchaseReportDto> selectPurchaseReport(IPage page, @Param("c") InvoicePurchaseReportDto invoicePurchaseReportDto);
 
-    List<VatDto> listVat(Page page, InvoicePurchase invoicePurchase);
+    IPage<VatDto> listVat(Page page,@Param("month") String month);
+
+    List<VatDto>  listVat1();
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
index 7e7a074..cc17fc2 100644
--- a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.purchase.dto.InvoicePurchaseDto;
 import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
+import com.ruoyi.purchase.dto.VatDto;
 import com.ruoyi.purchase.pojo.InvoicePurchase;
 
 import java.io.IOException;
@@ -30,5 +31,5 @@
 
     IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto);
 
-    IPage<InvoicePurchase> listVat(Page page, InvoicePurchase invoicePurchase);
+    IPage<VatDto> listVat(Page page,String month);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
index 6d4728d..cc8bb73 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
@@ -12,6 +12,7 @@
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.purchase.dto.InvoicePurchaseDto;
 import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
+import com.ruoyi.purchase.dto.VatDto;
 import com.ruoyi.purchase.mapper.InvoicePurchaseMapper;
 import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
 import com.ruoyi.purchase.pojo.InvoicePurchase;
@@ -169,8 +170,11 @@
     }
 
     @Override
-    public IPage<InvoicePurchase> listVat(Page page, InvoicePurchase invoicePurchase) {
-        invoicePurchaseMapper.listVat(page, invoicePurchase);
-        return null;
+    public IPage<VatDto> listVat(Page page, String month) {
+        IPage<VatDto> vatDtos = invoicePurchaseMapper.listVat(page,month);
+        vatDtos.getRecords().forEach(vatDto -> {
+            vatDto.setTaxAmount(vatDto.getJTaxAmount().subtract(vatDto.getXTaxAmount()));
+        });
+        return vatDtos;
     }
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
index 9cab585..cbc5b53 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -397,7 +397,7 @@
                 paymentHistoryRecordVo.setHappenTime(localDate);
                 paymentHistoryRecordVo.setCurrentPaymentAmount(currentPaymentAmount);
                 paymentHistoryRecordVo.setInvoiceAmount(invoiceAmount);
-                amountTotal = amountTotal.add(currentDateTotal);
+                amountTotal = paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount());
                 paymentHistoryRecordVo.setPayableAmount(amountTotal);
                 result.add(paymentHistoryRecordVo);
             }
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 7b478d1..3f78018 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -161,4 +161,10 @@
     @ApiModelProperty(value = "涓存椂鏈潵绁ㄩ噾棰�")
     @TableField(exist = false)
     private BigDecimal tempFutureTicketsAmount;
+
+    @ApiModelProperty("鐧昏浜�")
+    private String register;
+
+    @ApiModelProperty("鐧昏鏃ユ湡")
+    private String registerDate;
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
index f8bbc22..c7ecbe9 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -304,7 +304,7 @@
     public IPage<InvoiceRegistrationProductDto> registrationProductPage(Page page, InvoiceRegistrationProductDto registrationProductDto) {
         IPage<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoIPage = invoiceRegistrationProductMapper.invoiceRegistrationProductPage(page, registrationProductDto);
         if (registrationProductDto.getStatus()) {
-            invoiceRegistrationProductDtoIPage.getRecords().removeIf(invoiceRegistrationProduct -> StringUtils.isEmpty(invoiceRegistrationProduct.getInvoiceNo()));
+            invoiceRegistrationProductDtoIPage.getRecords().removeIf(invoiceRegistrationProduct -> !StringUtils.isEmpty(invoiceRegistrationProduct.getInvoiceNo()));
         }
         return invoiceRegistrationProductDtoIPage;
     }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
index a42850d..bb576cc 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -75,6 +75,7 @@
                 invoiceRegistrationProduct.setInvoiceAmount(productDatum.getCurrentInvoiceAmount());
                 invoiceRegistrationProduct.setInvoiceNum(productDatum.getCurrentInvoiceNum());
                 invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue());
+
                 invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
                 salesLedgerProductMapper.updateById(productDatum);
                 // 鏂板涓�鏉″紑绁ㄥ彴璐︽暟鎹�
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
index e6f459a..f65d7ce 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -239,7 +239,7 @@
             customerInteractionDto.setHappenTime(localDate);
             customerInteractionDto.setInvoiceAmount(invoiceAmount);
             customerInteractionDto.setReceiptAmount(currentReceiptAmount);
-            amountTotal = amountTotal.add(currentDateTotal);
+            amountTotal = customerInteractionDto.getInvoiceAmount().subtract(customerInteractionDto.getReceiptAmount());
             customerInteractionDto.setUnReceiptAmount(amountTotal);
             result.add(customerInteractionDto);
         }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 6a2536e..a85755e 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -91,6 +91,7 @@
         return salesLedgerMapper.selectSalesLedgerList(salesLedgerDto);
     }
 
+    @Override
     public SalesLedgerDto getSalesLedgerWithProducts(SalesLedgerDto salesLedgerDto) {
         // 1. 鏌ヨ涓昏〃
         SalesLedger salesLedger = salesLedgerMapper.selectById(salesLedgerDto.getId());
@@ -107,6 +108,8 @@
             // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻
             product.setTempnoInvoiceAmount(product.getNoInvoiceAmount());
             product.setTempNoInvoiceNum(product.getNoInvoiceNum());
+            product.setRegister(SecurityUtils.getLoginUser().getUser().getNickName());
+            product.setRegisterDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
         }
 
         // 3.鏌ヨ涓婁紶鏂囦欢
@@ -505,10 +508,10 @@
 
             // 2. 鏌ヨ褰撳ぉ/鍏徃宸插瓨鍦ㄧ殑搴忓垪鍙凤紙涓庡師閫昏緫涓�鑷达級
             Long tenantId = SecurityUtils.getLoginUser().getTenantId();
-            if(null != tenantId){
+            if (null != tenantId) {
                 //鑾峰彇鍏徃缂栧彿
                 SysDept sysDept = sysDeptMapper.selectDeptById(tenantId.longValue());
-                if(!ObjectUtils.isEmpty(sysDept)){
+                if (!ObjectUtils.isEmpty(sysDept)) {
                     datePart = (StringUtils.isEmpty(sysDept.getDeptNick()) ? "" : sysDept.getDeptNick()) + datePart;
                 }
             }
diff --git a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
index 5d3b24c..fe0b44c 100644
--- a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
+++ b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
@@ -30,15 +30,114 @@
         </where>
     </select>
     <select id="listVat" resultType="com.ruoyi.purchase.dto.VatDto">
-            SELECT
-                DATE_FORMAT(il.invoice_date, '%Y-%m') AS month,
-                ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount
-            FROM invoice_ledger il
-                     LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
-            WHERE il.invoice_no IS NOT NULL
-              AND invoice_type = '澧炰笓绁�'
-            GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
-            ORDER BY month;
+        select *
+        from (SELECT
+                  COALESCE(a1.month, a2.month) AS month,
+                  IFNULL(a1.tax_amount, 0) AS j_tax_amount,
+                  IFNULL(a2.x_tax_amount, 0) AS x_tax_amount
+              FROM (
+                       -- 绗竴涓煡璇細鏉ヨ嚜 invoice_ledger 鐨勭◣棰�
+                       SELECT
+                           DATE_FORMAT(il.invoice_date, '%Y-%m') AS month,
+                           ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount
+                       FROM invoice_ledger il
+                                LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
+                       WHERE il.invoice_no IS NOT NULL
+                         AND invoice_type = '澧炰笓绁�'
+                       GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
+                   ) a1
+                       LEFT JOIN (
+                  -- 绗簩涓煡璇細鏉ヨ嚜 ticket_registration 鐨勭◣棰�
+                  SELECT
+                      DATE_FORMAT(a.issue_date, '%Y-%m') AS month,
+                      SUM(a.invoice_amount) AS x_tax_amount
+                  FROM (
+                           SELECT DISTINCT pr.id,
+                                           tr.issue_date,
+                                           ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price,
+                                           ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS invoice_amount
+                           FROM product_record pr
+                                    LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id
+                                    LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id
+                                    LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id
+                                    LEFT JOIN product_model pm ON pm.id = pr.product_model_id
+                           WHERE type = 2
+                             AND tr.invoice_number IS NOT NULL
+                       ) a
+                  GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m')
+              ) a2 ON a1.month = a2.month
+
+              UNION ALL
+
+              SELECT
+                  COALESCE(a1.month, a2.month) AS month,
+                  IFNULL(a1.tax_amount, 0) AS tax_amount,
+                  IFNULL(a2.x_tax_amount, 0) AS x_tax_amount
+              FROM (
+                       -- 绗簩涓煡璇細鏉ヨ嚜 ticket_registration 鐨勭◣棰濓紙鍙嶈繃鏉ヨˉ鍏ㄦ病鏈夊尮閰嶅埌鐨勶級
+                       SELECT
+                           DATE_FORMAT(a.issue_date, '%Y-%m') AS month,
+                           SUM(a.invoice_amount) AS x_tax_amount
+                       FROM (
+                                SELECT DISTINCT pr.id,
+                                                tr.issue_date,
+                                                ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price,
+                                                ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS invoice_amount
+                                FROM product_record pr
+                                         LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id
+                                         LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id
+                                         LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id
+                                         LEFT JOIN product_model pm ON pm.id = pr.product_model_id
+                                WHERE type = 2
+                                  AND tr.invoice_number IS NOT NULL
+                            ) a
+                       GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m')
+                   ) a2
+                       LEFT JOIN (
+                  -- 绗竴涓煡璇細鏉ヨ嚜 invoice_ledger 鐨勭◣棰�
+                  SELECT
+                      DATE_FORMAT(il.invoice_date, '%Y-%m') AS month,
+                      ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount
+                  FROM invoice_ledger il
+                           LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
+                  WHERE il.invoice_no IS NOT NULL
+                    AND invoice_type = '澧炰笓绁�'
+                  GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
+              ) a1 ON a1.month = a2.month
+              WHERE a1.month IS NULL
+              ORDER BY month
+             )as a
+        <where>
+            <if test="month != null">
+                and a.month = date_format(#{month})
+            </if>
+        </where>
+
+    </select>
+    <select id="listVat1" resultType="com.ruoyi.purchase.dto.VatDto">
+        #             SELECT
+#                 DATE_FORMAT(il.invoice_date, '%Y-%m') AS month,
+#                 ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount
+#             FROM invoice_ledger il
+#                      LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
+#             WHERE il.invoice_no IS NOT NULL
+#               AND invoice_type = '澧炰笓绁�'
+#             GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
+#             ORDER BY month;
+#         select DATE_FORMAT(a.issue_date, '%Y-%m'), sum(a.invoice_amount) as xTaxAmount
+#         from (SELECT distinct pr.id,
+#                               tr.issue_date,
+#                               ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price,
+#                               ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100),
+#                                     2)                                              AS invoice_amount
+#               FROM product_record pr
+#                        LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id
+#                        LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id
+#                        LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id
+#                        LEFT JOIN product_model pm ON pm.id = pr.product_model_id
+#               WHERE type = 2
+#                 and tr.invoice_number is not null) a
+#         GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m')
     </select>
 
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
index 33a04be..d245389 100644
--- a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
+++ b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -171,7 +171,7 @@
                 AND T1.payment_date &gt;= date_format(#{params.paymentDateStart},'%Y-%m-%d')
             </if>
             <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' ">
-                AND T1.payment_date &lt; date_format(#{params.paymentDateEnd},'%Y-%m-%d')
+                AND T1.payment_date &lt;= date_format(#{params.paymentDateEnd},'%Y-%m-%d')
             </if>
         </where>
         ORDER BY T1.payment_date,T1.create_time DESC
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
index c42e777..80133ac 100644
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -32,10 +32,10 @@
             and sl.supplier_name = #{c.supplierName}
         </if>
         <if test="c.createdAtStart != null and c.createdAtStart != ''">
-            and pr.created_at &gt;= date_format(#{c.createdAtStart},'%Y-%m-%d')
+            and pr.created_at &gt;= date_format(#{c.createdAtStart},'%Y-%m-%d hh:mm:ss')
         </if>
         <if test="c.createdAtEnd != null and c.createdAtEnd != ''">
-            and pr.created_at &lt; date_format(#{c.createdAtEnd},'%Y-%m-%d')
+            and pr.created_at &lt;= date_format(#{c.createdAtEnd},'%Y-%m-%d hh:mm:ss')
         </if>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
index 5222d6e..ad56ec9 100644
--- a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
@@ -111,7 +111,7 @@
                 AND T3.invoice_date &gt;= date_format(#{invoiceRegistrationProductDto.invoiceDateStart}, '%Y-%m-%d')
             </if>
             <if test="invoiceRegistrationProductDto.invoiceDateEnd != null and invoiceRegistrationProductDto.invoiceDateEnd != ''">
-                AND T3.invoice_date &lt; date_format(#{invoiceRegistrationProductDto.invoiceDateEnd}, '%Y-%m-%d')
+                AND T3.invoice_date &lt;= date_format(#{invoiceRegistrationProductDto.invoiceDateEnd}, '%Y-%m-%d')
             </if>
         </where>
         ORDER BY T1.create_time DESC
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index b7ae6a2..ea21141 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -190,57 +190,94 @@
                 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')
+                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 =22
+              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 = 22
+          AND il.invoice_date IS NOT NULL
+
+        ORDER BY happenTime ASC;
     </select>
 
     <select id="receiptPaymentHistoryListNoPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">

--
Gitblit v1.9.3