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