From 5627248e473253b3f10615d6be8b27bb7cc7c4f7 Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期五, 10 四月 2026 14:49:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/yagwly_fa_master' into yagwly_fa_master
---
tms/src/main/java/com/ruoyi/tms/service/impl/TmsArBillServiceImpl.java | 77 +++++++++++++++++++++++++++++++++++++-
1 files changed, 75 insertions(+), 2 deletions(-)
diff --git a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsArBillServiceImpl.java b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsArBillServiceImpl.java
index ef9b24c..f75c835 100644
--- a/tms/src/main/java/com/ruoyi/tms/service/impl/TmsArBillServiceImpl.java
+++ b/tms/src/main/java/com/ruoyi/tms/service/impl/TmsArBillServiceImpl.java
@@ -1,7 +1,5 @@
package com.ruoyi.tms.service.impl;
-import java.util.List;
-
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
@@ -47,6 +45,7 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
/**
* 搴旀敹璐﹀崟Service涓氬姟灞傚鐞�
@@ -291,6 +290,69 @@
executor.execute(() -> pushToExternalSystem(tmsArBill, tmsReceivableFees));
}
+ @Override
+ public void cancelPushToExternalSystem(Integer id) {
+ TmsArBill tmsArBill = tmsArBillMapper.selectTmsArBillById(id);
+ if (tmsArBill == null) {
+ throw new RuntimeException("搴旀敹璐﹀崟涓嶅瓨鍦�");
+ }
+
+ // 寮傛鎺ㄩ�佷綔搴熻姹�
+ AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor();
+ executor.execute(() -> pushCancelToExternalSystem(tmsArBill));
+ }
+
+ /**
+ * 鍚戝閮ㄧ郴缁熸帹閫佸簲鏀舵暟鎹綔搴�
+ * @param tmsArBill 搴旀敹璐﹀崟
+ */
+ @Async
+ protected void pushCancelToExternalSystem(TmsArBill tmsArBill) {
+ java.util.Map<String, Object> requestBody = new java.util.HashMap<>();
+ try {
+ ;
+
+ // 鏋勫缓璇锋眰浣�
+ String apiUrl = url+"/cancelBill";
+
+ // 鏋勫缓璇锋眰浣擄紝鍙渶瑕乻ourceSystemId
+ requestBody.put("sourceSystemId", tmsArBill.getSourceSystemId());
+
+ // 璁剧疆HTTP澶�
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ HttpEntity<String> entity = new HttpEntity<>(JSON.toJSONString(requestBody), headers);
+
+ // 鍙戦�丄PI璇锋眰
+ ResponseEntity<String> response = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);
+ logger.info("鎺ㄩ�佸簲鏀舵暟鎹綔搴熷埌澶栭儴绯荤粺鎴愬姛锛屽搷搴�: {}", response.getBody());
+
+ // 鏇存柊鎺ㄩ�佺姸鎬佷负鎴愬姛
+
+ tmsArBill.setStatus(3); // 璁剧疆璐﹀崟鐘舵�佷负浣滃簾
+
+ tmsArBillMapper.updateTmsArBill(tmsArBill);
+
+ // 閲嶇疆鍏宠仈鐨勫簲鏀惰垂鐢ㄧ姸鎬佷负寰呯‘璁�
+ tmsReceivableFeeMapper.update(new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<TmsReceivableFee>()
+ .set(TmsReceivableFee::getStatus, 0)
+ .set(TmsReceivableFee::getBillRelationId, null)
+ .set(TmsReceivableFee::getBillRelationNo, null)
+ .eq(TmsReceivableFee::getBillRelationId, tmsArBill.getId())
+ );
+ logger.info("閲嶇疆搴旀敹璐圭敤鐘舵�佹垚鍔燂紝璐﹀崟ID: {}", tmsArBill.getId());
+ } catch (Exception e) {
+ logger.error("鎺ㄩ�佸簲鏀舵暟鎹綔搴熷埌澶栭儴绯荤粺澶辫触锛岃处鍗旾D: {}, 瀹㈡埛: {}",
+ tmsArBill.getId(), tmsArBill.getCustomerName(), e);
+ logger.debug("鎺ㄩ�佸け璐ョ殑璇锋眰鏁版嵁: {}", JSON.toJSONString(requestBody));
+
+ // 鏇存柊鎺ㄩ�佺姸鎬佷负澶辫触
+ tmsArBill.setPushStatus(3);
+ tmsArBill.setPushTime(DateUtils.getNowDate());
+ tmsArBillMapper.updateTmsArBill(tmsArBill);
+ }
+ }
+
/**
* 鏇存柊鎺ㄩ�佺姸鎬�
*
@@ -430,6 +492,17 @@
ResponseEntity<String> response = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);
logger.info("鎺ㄩ�佹暟鎹埌澶栭儴绯荤粺鎴愬姛锛屽搷搴�: {}", response.getBody());
+
+ // 瑙f瀽鍝嶅簲锛岃幏鍙杝ourceSystemId
+ try {
+ JSONObject result = JSONObject.parseObject(response.getBody());
+ String sourceSystemId = result.getString("sourceSystemId");
+ if (sourceSystemId != null) {
+ tmsArBill.setSourceSystemId(Integer.parseInt(sourceSystemId));
+ }
+ } catch (Exception e) {
+ logger.error("瑙f瀽澶栭儴绯荤粺鍝嶅簲澶辫触: {}", e.getMessage());
+ }
// 鏇存柊鎺ㄩ�佺姸鎬佷负鎴愬姛
tmsArBill.setPushStatus(2);
tmsArBill.setPushTime(DateUtils.getNowDate());
--
Gitblit v1.8.0