From 3dbaccac83e648d4b87da72a243848ad1926f7bb Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 23 十二月 2025 14:43:17 +0800
Subject: [PATCH] 新增日志

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java |   78 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java
index ff20ac5..359e215 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableFeeManagementServiceImpl.java
@@ -2,9 +2,7 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 import com.ruoyi.common.enums.SystemDataNoEnum;
 import com.ruoyi.common.exception.ServiceException;
@@ -148,6 +146,12 @@
         String noByKey = systemDataNoService.getNoByKey(SystemDataNoEnum.YS);
         receivableFeeManagement.setSystemNo(noByKey);
 
+        // 璁$畻搴旀敹閲戦瀛楃涓叉弿杩�
+        if (receivableFeeManagement.getReceivableFeeDetailList() != null && !receivableFeeManagement.getReceivableFeeDetailList().isEmpty()) {
+            String receivableAmountStr = calculateReceivableAmountStr(receivableFeeManagement.getReceivableFeeDetailList());
+            receivableFeeManagement.setReceivableAmountStr(receivableAmountStr);
+        }
+
         // 淇濆瓨涓昏〃淇℃伅
         int result = receivableFeeManagementMapper.insertReceivableFeeManagement(receivableFeeManagement);
         
@@ -190,6 +194,12 @@
     public int updateReceivableFeeManagement(ReceivableFeeManagement receivableFeeManagement)
     {
         receivableFeeManagement.setUpdateTime(DateUtils.getNowDate());
+        
+        // 璁$畻搴旀敹閲戦瀛楃涓叉弿杩�
+        if (receivableFeeManagement.getReceivableFeeDetailList() != null && !receivableFeeManagement.getReceivableFeeDetailList().isEmpty()) {
+            String receivableAmountStr = calculateReceivableAmountStr(receivableFeeManagement.getReceivableFeeDetailList());
+            receivableFeeManagement.setReceivableAmountStr(receivableAmountStr);
+        }
         
         // 1. 鏇存柊涓昏〃淇℃伅
         int result = receivableFeeManagementMapper.updateReceivableFeeManagement(receivableFeeManagement);
@@ -462,7 +472,63 @@
     }
 
 
-
-
     
-    }
\ No newline at end of file
+    /**
+     * 鏍规嵁鍏宠仈璐﹀崟缂栧彿鎵归噺鏇存柊搴旀敹璐圭敤绠$悊璁板綍
+     * 娓呴櫎鍏宠仈璐﹀崟缂栧彿骞跺皢鐘舵�佹敼涓�0锛堝緟鐢熸垚璐﹀崟锛�
+     * 
+     * @param relatedBillNo 鍏宠仈璐﹀崟缂栧彿
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateReceivableFeeManagementByRelatedBillNo(String relatedBillNo) {
+        return receivableFeeManagementMapper.updateReceivableFeeManagementByRelatedBillNo(relatedBillNo);
+    }
+
+    /**
+     * 璁$畻搴旀敹閲戦瀛楃涓叉弿杩�
+     * 鏍规嵁鏄庣粏鍒楄〃鎸夊竵绉嶆眹鎬婚噾棰濓紝鏍煎紡濡傦細"200娓竵100浜烘皯甯�"
+     * 
+     * @param detailList 搴旀敹璐圭敤鏄庣粏鍒楄〃
+     * @return 搴旀敹閲戦瀛楃涓叉弿杩�
+     */
+    private String calculateReceivableAmountStr(List<ReceivableFeeDetail> detailList) {
+        if (detailList == null || detailList.isEmpty()) {
+            return "";
+        }
+        
+        // 鎸夊竵绉嶆眹鎬婚噾棰�
+        Map<String, BigDecimal> currencyAmountMap = new HashMap<>();
+        for (ReceivableFeeDetail detail : detailList) {
+            String currency = detail.getCurrency();
+            BigDecimal billingAmount = detail.getBillingAmount();
+            
+            if (currency != null && billingAmount != null) {
+                currencyAmountMap.merge(currency, billingAmount, BigDecimal::add);
+            }
+        }
+        
+        // 鏋勫缓瀛楃涓叉弿杩�
+        StringBuilder sb = new StringBuilder();
+        for (Map.Entry<String, BigDecimal> entry : currencyAmountMap.entrySet()) {
+            if (sb.length() > 0) {
+                sb.append(" ");
+            }
+            sb.append(entry.getValue().stripTrailingZeros().toPlainString());
+            
+            // 鏍规嵁甯佺鏄剧ず瀵瑰簲鐨勮揣甯佸悕绉�
+            String currency = entry.getKey();
+            if ("CNY".equals(currency)) {
+                sb.append("浜烘皯甯�");
+            } else if ("HKD".equals(currency)) {
+                sb.append("娓竵");
+            } else if ("USD".equals(currency)) {
+                sb.append("缇庡厓");
+            } else {
+                sb.append(currency);
+            }
+        }
+        
+        return sb.toString();
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0