From c7cde6c8ec424453c7155735e6a429c57e77141b Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 07 四月 2026 16:46:08 +0800
Subject: [PATCH] 新增配置

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/TmsAuditLogPushServiceImpl.java |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 169 insertions(+), 0 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/TmsAuditLogPushServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/TmsAuditLogPushServiceImpl.java
new file mode 100644
index 0000000..cfb07d7
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/TmsAuditLogPushServiceImpl.java
@@ -0,0 +1,169 @@
+package com.ruoyi.cwgl.service.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.cwgl.domain.PayableFeeManagement;
+import com.ruoyi.cwgl.domain.ReceivableFeeManagement;
+import com.ruoyi.cwgl.domain.dto.PayableAuditLog;
+import com.ruoyi.cwgl.domain.dto.ReceivableAuditLog;
+import com.ruoyi.cwgl.service.IPayableFeeManagementService;
+import com.ruoyi.cwgl.service.IReceivableFeeManagementService;
+import com.ruoyi.cwgl.service.ITmsAuditLogPushService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+/**
+ * TMS瀹℃牳鏃ュ織鎺ㄩ�佹湇鍔″疄鐜扮被
+ */
+@Service
+public class TmsAuditLogPushServiceImpl implements ITmsAuditLogPushService {
+
+    private static final Logger log = LoggerFactory.getLogger(TmsAuditLogPushServiceImpl.class);
+
+    @Value("${custom.tms.url}")
+    private String tmsBaseUrl;
+
+    @Autowired
+    private IPayableFeeManagementService payableFeeManagementService;
+
+    @Autowired
+    private IReceivableFeeManagementService receivableFeeManagementService;
+
+    @Override
+    public boolean pushPayableAuditLog(PayableAuditLog auditLog) {
+        try {
+            String url = tmsBaseUrl + "/api/third/audit/ap-bill";
+            String jsonBody = JSON.toJSONString(auditLog);
+            
+            log.info("鎺ㄩ�佸簲浠樿处鍗曞鏍告棩蹇楀埌TMS: {}", jsonBody);
+            
+            String response = HttpUtils.sendPost(url, jsonBody);
+            log.info("TMS搴斾粯璐﹀崟瀹℃牳鏃ュ織鎺ㄩ�佸搷搴�: {}", response);
+            
+            return true;
+        } catch (Exception e) {
+            log.error("鎺ㄩ�佸簲浠樿处鍗曞鏍告棩蹇楀埌TMS澶辫触", e);
+            return false;
+        }
+    }
+
+    @Override
+    public boolean pushReceivableAuditLog(ReceivableAuditLog auditLog) {
+        try {
+            String url = tmsBaseUrl + "/api/third/audit/ar-bill";
+            String jsonBody = JSON.toJSONString(auditLog);
+            
+            log.info("鎺ㄩ�佸簲鏀惰处鍗曞鏍告棩蹇楀埌TMS: {}", jsonBody);
+            
+            String response = HttpUtils.sendPost(url, jsonBody);
+            log.info("TMS搴旀敹璐﹀崟瀹℃牳鏃ュ織鎺ㄩ�佸搷搴�: {}", response);
+            
+            return true;
+        } catch (Exception e) {
+            log.error("鎺ㄩ�佸簲鏀惰处鍗曞鏍告棩蹇楀埌TMS澶辫触", e);
+            return false;
+        }
+    }
+
+    /**
+     * 鍒ゆ柇搴斾粯璐﹀崟鏄惁鏉ヨ嚜TMS绯荤粺
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏄惁鏉ヨ嚜TMS绯荤粺
+     */
+    public boolean isPayableBillFromTms(String billNo) {
+        try {
+            PayableFeeManagement query = new PayableFeeManagement();
+            query.setRelatedBillNo(billNo);
+            List<PayableFeeManagement> fees = payableFeeManagementService.selectPayableFeeManagementList(query);
+            
+            if (fees != null && !fees.isEmpty()) {
+                // 妫�鏌ユ槸鍚︽湁璐圭敤鏉ヨ嚜TMS绯荤粺
+                return fees.stream()
+                        .anyMatch(fee -> "TMS".equalsIgnoreCase(fee.getSourceSystem()));
+            }
+            return false;
+        } catch (Exception e) {
+            log.error("鍒ゆ柇搴斾粯璐﹀崟鏉ユ簮绯荤粺澶辫触", e);
+            return false;
+        }
+    }
+
+    /**
+     * 鍒ゆ柇搴旀敹璐﹀崟鏄惁鏉ヨ嚜TMS绯荤粺
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏄惁鏉ヨ嚜TMS绯荤粺
+     */
+    public boolean isReceivableBillFromTms(String billNo) {
+        try {
+            ReceivableFeeManagement query = new ReceivableFeeManagement();
+            query.setRelatedBillNo(billNo);
+            List<ReceivableFeeManagement> fees = receivableFeeManagementService.selectReceivableFeeManagementList(query);
+            
+            if (fees != null && !fees.isEmpty()) {
+                // 妫�鏌ユ槸鍚︽湁璐圭敤鏉ヨ嚜TMS绯荤粺
+                return fees.stream()
+                        .anyMatch(fee -> "tms".equalsIgnoreCase(fee.getSourceSystem()));
+            }
+            return false;
+        } catch (Exception e) {
+            log.error("鍒ゆ柇搴旀敹璐﹀崟鏉ユ簮绯荤粺澶辫触", e);
+            return false;
+        }
+    }
+
+    /**
+     * 鑾峰彇搴斾粯璐﹀崟鐨勬潵婧愮郴缁�
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏉ユ簮绯荤粺锛屽鏋滃涓潵婧愮郴缁熷垯杩斿洖绗竴涓猅MS绯荤粺锛屽惁鍒欒繑鍥炵涓�涓潪绌虹郴缁�
+     */
+    public String getPayableBillSourceSystem(String billNo) {
+        try {
+            PayableFeeManagement query = new PayableFeeManagement();
+            query.setRelatedBillNo(billNo);
+            List<PayableFeeManagement> fees = payableFeeManagementService.selectPayableFeeManagementList(query);
+            
+            if (fees != null && !fees.isEmpty()) {
+                // 浼樺厛杩斿洖TMS绯荤粺
+                return fees.stream()
+                        .map(PayableFeeManagement::getSourceSystem)
+                        .filter(source -> source != null && !source.trim().isEmpty())
+                        .findFirst()
+                        .orElse(null);
+            }
+            return null;
+        } catch (Exception e) {
+            log.error("鑾峰彇搴斾粯璐﹀崟鏉ユ簮绯荤粺澶辫触", e);
+            return null;
+        }
+    }
+
+    /**
+     * 鑾峰彇搴旀敹璐﹀崟鐨勬潵婧愮郴缁�
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏉ユ簮绯荤粺锛屽鏋滃涓潵婧愮郴缁熷垯杩斿洖绗竴涓猅MS绯荤粺锛屽惁鍒欒繑鍥炵涓�涓潪绌虹郴缁�
+     */
+    public String getReceivableBillSourceSystem(String billNo) {
+        try {
+            ReceivableFeeManagement query = new ReceivableFeeManagement();
+            query.setRelatedBillNo(billNo);
+            List<ReceivableFeeManagement> fees = receivableFeeManagementService.selectReceivableFeeManagementList(query);
+            
+            if (fees != null && !fees.isEmpty()) {
+                // 浼樺厛杩斿洖TMS绯荤粺
+                return fees.stream()
+                        .map(ReceivableFeeManagement::getSourceSystem)
+                        .filter(source -> source != null && !source.trim().isEmpty())
+                        .findFirst()
+                        .orElse(null);
+            }
+            return null;
+        } catch (Exception e) {
+            log.error("鑾峰彇搴旀敹璐﹀崟鏉ユ簮绯荤粺澶辫触", e);
+            return null;
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0