From 34669fa71bd2cc4a4ff57d7d2440a95da998b6b5 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期一, 30 三月 2026 15:47:55 +0800
Subject: [PATCH] 修改异步

---
 tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java |   66 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 22 deletions(-)

diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java
index dcdb4de..635ec21 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsPayableFeeServiceImpl.java
@@ -20,6 +20,8 @@
 import com.ruoyi.tms.mapper.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.task.AsyncTaskExecutor;
+import org.springframework.core.task.SimpleAsyncTaskExecutor;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
@@ -276,7 +278,10 @@
 
         tmsApBill.setSettleAmount(BigDecimal.ZERO);
         tmsPayableFeeList.forEach(item ->{
-
+            List<TmsPayableFeeItem> tmsPayableFeeItems = tmsPayableFeeItemMapper.selectTmsPayableFeeItemList(new TmsPayableFeeItem() {{
+                setHeadId(item.getId());
+            }});
+            item.setPayableFeeItems(tmsPayableFeeItems);
             BigDecimal rmbAmount = item.getPayableHkbAmount()
                     .multiply(exchangeRate)
                     .setScale(2, RoundingMode.HALF_UP);
@@ -324,9 +329,10 @@
             tmsApBillItemMapper.insertTmsApBillItemBatch(rmb);
         }
         
-        //todo 鍚戝閮ㄧ郴缁熸帹閫佹暟鎹�
-        pushPayableToExternalSystem(tmsApBill, tmsPayableFeeList);
-        
+        //鍚戝閮ㄧ郴缁熸帹閫佹暟鎹�
+        AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor();
+        executor.execute(() -> pushPayableToExternalSystem(tmsApBill, tmsPayableFeeList));
+
         return AjaxResult.success();
     }
     
@@ -348,7 +354,7 @@
             billMap.put("supplierName", tmsApBill.getServiceProviderName());
             billMap.put("totalAmount", tmsApBill.getSettleAmount());
             billMap.put("currency", "RMB");
-            billMap.put("status", "draft");
+            billMap.put("status", "0");
             billMap.put("isInternalSettlement", "0");
             billMap.put("internalSettlementUnit", tmsApBill.getServiceProviderName());
             billMap.put("documentCount", tmsPayableFeeList.size());
@@ -375,34 +381,50 @@
                 feeMap.put("sourceSystem", "TMS");
                 feeMap.put("documentNo", fee.getDispatchNo() != null ? fee.getDispatchNo() : "");
                 feeMap.put("supplierName", tmsApBill.getServiceProviderName());
-                feeMap.put("payableAmount", fee.getPayableRmbSumAmount());
+                feeMap.put("payableAmount", fee.getPayableRmbAmount().add(fee.getPayableHkbAmount()));
+                BigDecimal rmbAmount = fee.getPayableRmbAmount();
+                BigDecimal hkbAmount = fee.getPayableHkbAmount();
+                StringBuilder amountStr = new StringBuilder();
+                if (rmbAmount.compareTo(BigDecimal.ZERO) > 0) {
+                    amountStr.append(rmbAmount).append("浜烘皯甯�");
+                }
+                if (hkbAmount.compareTo(BigDecimal.ZERO) > 0) {
+                    if (amountStr.length() > 0) {
+                        amountStr.append(" ");
+                    }
+                    amountStr.append(hkbAmount).append("娓竵");
+                }
+                feeMap.put("payableAmountStr", amountStr.toString());
                 feeMap.put("serialNumber", String.format("%03d", i + 1));
                 feeMap.put("relatedBillNo", "");
-                feeMap.put("businessSector", "");
-                feeMap.put("documentType", "");
+                feeMap.put("businessSector", "0");
+                feeMap.put("documentType", "0");
                 feeMap.put("isInternalSettlement", "0");
                 feeMap.put("internalSettlementUnit", "");
                 feeMap.put("projectName", fee.getProjectName() != null ? fee.getProjectName() : "");
                 feeMap.put("businessTime", fee.getDispatchConfirmTime());
                 feeMap.put("payableConfirmTime", fee.getDispatchConfirmTime());
-                feeMap.put("status", "confirmed");
+                feeMap.put("status", "1");
                 feeMap.put("remark", "");
                 
                 // 鏋勫缓feeDetails閮ㄥ垎
                 List<java.util.Map<String, Object>> feeDetailsList = new java.util.ArrayList<>();
-                java.util.Map<String, Object> feeDetailMap = new java.util.HashMap<>();
-                feeDetailMap.put("feeType", "杩愯緭璐�");
-                feeDetailMap.put("feeName", "骞茬嚎杩愯緭璐�");
-                feeDetailMap.put("unitPrice", 1200.00);
-                feeDetailMap.put("billingQuantity", 5.00);
-                feeDetailMap.put("billingAmount", fee.getPayableRmbSumAmount());
-                feeDetailMap.put("serialNumber", String.format("%03d-01", i + 1));
-                feeDetailMap.put("billingUnit", "杞︽");
-                feeDetailMap.put("actualAmount", fee.getPayableRmbSumAmount());
-                feeDetailMap.put("currency", "RMB");
-                feeDetailMap.put("feeRegTime", "");
-                feeDetailMap.put("remark", "");
-                feeDetailsList.add(feeDetailMap);
+                List<TmsPayableFeeItem> payableFeeItems = fee.getPayableFeeItems();
+                for (TmsPayableFeeItem payableFeeItem : payableFeeItems) {
+                    java.util.Map<String, Object> feeDetailMap = new java.util.HashMap<>();
+                    feeDetailMap.put("feeType", payableFeeItem.getFeeType());
+                    feeDetailMap.put("feeName", payableFeeItem.getFeeName());
+                    feeDetailMap.put("unitPrice", payableFeeItem.getRegisterAmount());
+                    feeDetailMap.put("billingQuantity", payableFeeItem.getRegisterAmount());
+                    feeDetailMap.put("billingAmount", payableFeeItem.getRegisterAmount());
+                    feeDetailMap.put("billingUnit", "娆�");
+                    feeDetailMap.put("actualAmount", payableFeeItem.getRegisterAmount());
+                    feeDetailMap.put("currency", payableFeeItem.getCurrency());
+                    feeDetailMap.put("feeRegTime",payableFeeItem.getRegisterTime());
+                    feeDetailMap.put("remark", "");
+                    feeDetailsList.add(feeDetailMap);
+                }
+
                 
                 feeMap.put("feeDetails", feeDetailsList);
                 feesList.add(feeMap);

--
Gitblit v1.8.0