From 279366f14d6e1361b6caf7c05b74f0cea4227a36 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期五, 27 三月 2026 10:53:28 +0800
Subject: [PATCH] 新增推送

---
 service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 74 insertions(+), 5 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java
index baaf78d..f650e2a 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/InvoiceManageServiceImpl.java
@@ -20,6 +20,7 @@
 import com.ruoyi.cwgl.service.IInvoiceBillDetailService;
 import com.ruoyi.cwgl.service.IInvoiceBusinessService;
 import com.ruoyi.system.service.ISystemDataNoService;
+import lombok.NonNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
@@ -284,7 +285,7 @@
                 invoiceManageMapper.batchInvoiceDetail(list);
             }
         }
-        
+
         // 鏂板鍙戠エ涓氬姟鍟嗗搧鏄庣粏淇℃伅
         List<InvoiceBillDetail> invoiceBillDetails = invoiceManage.getInvoiceBillDetails();
         if (StringUtils.isNotNull(invoiceBillDetails)) {
@@ -411,7 +412,9 @@
         order.setInvoiceDetail(invoiceDetailList);
         invoicingVo.setOrder(order);
         String body = JSONObject.toJSONString(invoicingVo);
-        String urlString = invoicingAddress + "?businessType=" + businessType + "&returnUrl=" + returnAddress;
+
+        // 鏍规嵁涓氬姟绫诲瀷鍔ㄦ�佽缃洖璋冨湴鍧�
+        String urlString = getString(businessType);
         logger.info("璇锋眰body{}",body);
         logger.info("璇锋眰鍦板潃{}",urlString);
         String json = HttpUtil.post(urlString, body);
@@ -442,6 +445,19 @@
 
 
         return AjaxResult.error("寮�绁ㄥけ璐�");
+    }
+
+    private @NonNull String getString(String businessType) {
+        String dynamicReturnAddress;
+        if ("FP_PAYABLE".equals(businessType)) {
+            dynamicReturnAddress = returnAddress + "/callback/receipt/payable";
+        } else if ("FP_RECEIVABLE".equals(businessType)) {
+            dynamicReturnAddress = returnAddress + "/callback/receipt/receivable";
+        } else {
+            dynamicReturnAddress = returnAddress + "/callback/receipt";
+        }
+
+        return invoicingAddress + "?businessType=" + businessType + "&returnUrl=" + dynamicReturnAddress;
     }
 
     /**
@@ -731,15 +747,68 @@
         int c_status = Integer.parseInt(jsonObject.getString("c_status"));
         invoiceBusiness.setStatus(c_status);
         if (c_status == 1) {
-
-
             String invoiceNumStr = jsonObject.getString("c_fphm");
 
+            // 鏅�氬彂绁� - 鏇存柊invoice_manage琛�
             InvoiceManage invoiceManageUpdate = new InvoiceManage();
             invoiceManageUpdate.setInvoiceNo(invoiceNumStr);
             invoiceManageUpdate.setId(invoiceBusiness.getId());
             invoiceManageUpdate.setStatus(2);
-            invoiceManageMapper.updateById(invoiceBusiness);
+            invoiceManageMapper.updateById(invoiceManageUpdate);
+        }
+    }
+
+    @Override
+    public void invoicingSuccessPayable(CallbackReceiptDto callbackReceiptDto) {
+        InvoiceManage invoiceBusiness = invoiceManageMapper.selectInvoiceManageLogByOrderNo(callbackReceiptDto.getOrderno());
+        if (invoiceBusiness == null) {
+            return;
+        }
+        String content = callbackReceiptDto.getContent();
+        if (StringUtils.isEmpty(content)) {
+            return;
+        }
+        JSONObject jsonObject = JSONObject.parseObject(content);
+
+        int c_status = Integer.parseInt(jsonObject.getString("c_status"));
+        invoiceBusiness.setStatus(c_status);
+        if (c_status == 1) {
+            String invoiceNumStr = jsonObject.getString("c_fphm");
+
+            // 搴斾粯璐﹀崟 - 鏇存柊payable_invoice_business琛�
+            PayableInvoiceBusiness payableInvoiceBusiness = payableInvoiceBusinessMapper.selectPayableInvoiceBusinessById(invoiceBusiness.getId());
+            if (payableInvoiceBusiness != null) {
+                payableInvoiceBusiness.setInvoiceSerialNum(invoiceNumStr);
+                payableInvoiceBusiness.setStatus(2);
+                payableInvoiceBusinessMapper.updateById(payableInvoiceBusiness);
+            }
+        }
+    }
+
+    @Override
+    public void invoicingSuccessReceivable(CallbackReceiptDto callbackReceiptDto) {
+        InvoiceManage invoiceBusiness = invoiceManageMapper.selectInvoiceManageLogByOrderNo(callbackReceiptDto.getOrderno());
+        if (invoiceBusiness == null) {
+            return;
+        }
+        String content = callbackReceiptDto.getContent();
+        if (StringUtils.isEmpty(content)) {
+            return;
+        }
+        JSONObject jsonObject = JSONObject.parseObject(content);
+
+        int c_status = Integer.parseInt(jsonObject.getString("c_status"));
+        invoiceBusiness.setStatus(c_status);
+        if (c_status == 1) {
+            String invoiceNumStr = jsonObject.getString("c_fphm");
+
+            // 搴旀敹璐﹀崟 - 鏇存柊receivable_invoice_business琛�
+            ReceivableInvoiceBusiness receivableInvoiceBusiness = receivableInvoiceBusinessMapper.selectReceivableInvoiceBusinessById(invoiceBusiness.getId());
+            if (receivableInvoiceBusiness != null) {
+                receivableInvoiceBusiness.setInvoiceSerialNum(invoiceNumStr);
+                receivableInvoiceBusiness.setStatus(2);
+                receivableInvoiceBusinessMapper.updateById(receivableInvoiceBusiness);
+            }
         }
     }
 }

--
Gitblit v1.8.0