From 52e83f014b2424332583e44aa938ffac216d5251 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 18 十二月 2025 11:23:30 +0800
Subject: [PATCH] yys  增值税,分页

---
 src/main/resources/mapper/sales/ReceiptPaymentMapper.xml                  |   45 +++++++++++++---------
 src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml       |   26 +++++++------
 src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java |   13 +++++-
 src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java       |    2 
 src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml              |    3 +
 5 files changed, 55 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java b/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
index 40098d5..6f39755 100644
--- a/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
@@ -155,7 +155,7 @@
         }
     }
 
-    @Scheduled(cron = "0 0 3 * * ?") // 姣忓ぉ鍑屾櫒3鐐规墽琛�
+//    @Scheduled(cron = "0 0 3 * * ?") // 姣忓ぉ鍑屾櫒3鐐规墽琛�
     public void cleanupExpiredTempFiles() {
         LambdaQueryWrapper<TempFile> wrapper = new LambdaQueryWrapper<>();
         wrapper.lt(TempFile::getExpireTime, LocalDateTime.now()); // expireTime < 褰撳墠鏃堕棿
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 ae93c3b..48056a9 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -161,9 +161,16 @@
     @Override
     public IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
         IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
-        if (receiptPaymentDto.getStatus()) {
-            receiptPaymentDtoIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()));
-        }
+//        if (receiptPaymentDto.getStatus()) {
+//            long count = receiptPaymentDtoIPage.getRecords()
+//                    .stream()
+//                    .filter(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()))
+//                    .count();
+//            receiptPaymentDtoIPage
+//                    .getRecords()
+//                    .removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()));
+//            receiptPaymentDtoIPage.setTotal(receiptPaymentDtoIPage.getTotal() - count);
+//        }
         receiptPaymentDtoIPage.getRecords().forEach(item -> {
             // 姣旇緝鍥炴閲戦 == 寰呭洖娆鹃噾棰�
             if (item.getInvoiceTotal().compareTo(item.getReceiptPaymentAmountTotal()) == 0) {
diff --git a/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml b/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
index e29cc8d..ba0e289 100644
--- a/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/CustomStorageMapper.xml
@@ -3,24 +3,26 @@
 <mapper namespace="com.ruoyi.procurementrecord.mapper.CustomStorageMapper">
 
     <select id="listPageCopyByCustom" resultType="com.ruoyi.procurementrecord.pojo.CustomStorage">
-        select *,
-               sum(inbound_num) as inboundNum,
-               sum(inbound_num) as inboundNum0,
-               sum(tax_inclusive_total_price) as taxInclusiveTotalPrice
-               from custom_storage
+        select t1.*,
+               sum(t1.inbound_num) as inboundNum,
+               sum(t1.inbound_num) as inboundNum0,
+               sum(t1.tax_inclusive_total_price) as taxInclusiveTotalPrice,
+               SUM(t1.inbound_num) - COALESCE(SUM(t2.inbound_num), 0) AS availableStock
+               from custom_storage t1
+               left join procurement_record_out t2 on t1.id = t2.procurement_record_storage_id and t2.type = 3
         <where>
             <if test="req.productCategory != null and req.productCategory != ''">
-                and product_category like  concat('%',#{req.productCategory},'%')
+                and t1.product_category like  concat('%',#{req.productCategory},'%')
             </if>
             <if test="req.supplierName !=null and req.supplierName != ''">
-                and supplier_name like concat('%',#{req.supplierName},'%')
+                and t1.supplier_name like concat('%',#{req.supplierName},'%')
             </if>
-            <if test="req.inboundDate !=null">
-                and inbound_date like concat('%',#{req.inboundDate},'%')
+            <if test="req.timeStr != null and req.timeStr != ''">
+                and t1.inbound_date like concat('%',#{req.timeStr},'%')
             </if>
-
         </where>
-        group by product_category, specification_model, tax_inclusive_unit_price
-        order by inbound_date desc
+        group by t1.product_category, t1.specification_model, t1.tax_inclusive_unit_price
+        HAVING availableStock > 0
+        order by t1.inbound_date desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
index 413f293..af6e508 100644
--- a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
+++ b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
@@ -66,6 +66,7 @@
                                 LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
                        WHERE il.invoice_no IS NOT NULL
                          AND invoice_type = '澧炰笓绁�'
+                         AND DATE_FORMAT(il.invoice_date, '%Y-%m') IS NOT NULL  -- 鏂板锛氳繃婊onth涓篘ULL鐨勬儏
                        GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
                    ) a1
                        LEFT JOIN (
@@ -124,12 +125,14 @@
                            LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
                   WHERE il.invoice_no IS NOT NULL
                     AND invoice_type = '澧炰笓绁�'
+                    AND DATE_FORMAT(il.invoice_date, '%Y-%m') IS NOT NULL  -- 鏂板锛氳繃婊onth涓篘ULL鐨勬儏
                   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>
+            a.month is not null
             <if test="month != null">
                 and a.month = #{month}
             </if>
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index a52038b..cf9d93e 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -61,38 +61,42 @@
 
     <select id="bindInvoiceNoRegPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
         SELECT
-        T1.id ,
-        T1.invoice_no ,
-        T1.invoice_total ,
+        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 ,
+        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
+        IFNULL(T6.receipt_payment_amount_total, 0) AS receipt_payment_amount_total,
+        (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total, 0)) AS noReceiptAmount
         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
+        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
+        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="req.customerName != null and req.customerName !=''">
@@ -111,10 +115,15 @@
                 AND T1.invoice_date &gt;= DATE_FORMAT(#{req.invoiceDateStart},'%Y-%m-%d')
             </if>
             <if test="req.invoiceDateEnd != null and req.invoiceDateEnd != '' ">
-                AND  T1.invoice_date &lt;= DATE_FORMAT(#{req.invoiceDateEnd},'%Y-%m-%d')
+                AND T1.invoice_date &lt;= DATE_FORMAT(#{req.invoiceDateEnd},'%Y-%m-%d')
+            </if>
+            <if test="req.status != null and req.status">
+                and (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total, 0)) &gt; 0
             </if>
         </where>
-        ORDER BY T2.create_time DESC
+
+        ORDER BY IFNULL(T2.create_time, T1.create_time) DESC
+
     </select>
 
     <select id="invoiceInfo" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">

--
Gitblit v1.9.3