From 6df8411e720cfef1b474f178825bdee32ef71a59 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期五, 20 三月 2026 15:06:35 +0800
Subject: [PATCH] 新增回馈进度表

---
 service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml b/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
index 83f5af8..aba8560 100644
--- a/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
@@ -372,4 +372,75 @@
         ORDER BY customer_name, bill_due_date
     </select>
 
+    <!-- 鎵归噺鏇存柊搴旀敹璐﹀崟璐﹂緞鍒嗘瀽鏁版嵁 -->
+    <update id="batchUpdateAgingAnalysisData">
+        UPDATE receivable_bill_management 
+        SET 
+            -- 鍙洿鏂板綋鍓嶆椂娈电殑鏁版嵁锛屽叾浠栨椂娈典繚鐣欏師鍊�
+            due_in_30_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date > CURDATE() 
+                     AND DATEDIFF(bill_due_date, CURDATE()) <= 30 
+                THEN pending_amount 
+                ELSE due_in_30_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_amount = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                THEN pending_amount 
+                ELSE overdue_amount  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            -- 鍙洿鏂板綋鍓嶉�炬湡鏃舵鐨勯噾棰濓紝鍏朵粬鏃舵淇濈暀鍘嗗彶鏁版嵁
+            overdue_1_to_30_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                     AND DATEDIFF(CURDATE(), bill_due_date) BETWEEN 1 AND 30 
+                THEN pending_amount 
+                ELSE overdue_1_to_30_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_31_to_60_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                     AND DATEDIFF(CURDATE(), bill_due_date) BETWEEN 31 AND 60 
+                THEN pending_amount 
+                ELSE overdue_31_to_60_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_61_to_90_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                     AND DATEDIFF(CURDATE(), bill_due_date) BETWEEN 61 AND 90 
+                THEN pending_amount 
+                ELSE overdue_61_to_90_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_91_to_180_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                     AND DATEDIFF(CURDATE(), bill_due_date) BETWEEN 91 AND 180 
+                THEN pending_amount 
+                ELSE overdue_91_to_180_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_181_to_365_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                     AND DATEDIFF(CURDATE(), bill_due_date) BETWEEN 181 AND 365 
+                THEN pending_amount 
+                ELSE overdue_181_to_365_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_over_1_year = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                     AND DATEDIFF(CURDATE(), bill_due_date) &gt; 365 
+                THEN pending_amount 
+                ELSE overdue_over_1_year  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            overdue_days = CASE 
+                WHEN pending_amount > 0 AND bill_due_date IS NOT NULL 
+                     AND bill_due_date &lt;= CURDATE() 
+                THEN DATEDIFF(CURDATE(), bill_due_date) 
+                ELSE overdue_days  -- 淇濈暀鍘嗗彶鏁版嵁
+            END,
+            update_time = NOW()
+        WHERE pending_amount > 0
+    </update>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0