From d14994e10797ce5bc0d29668d358f7c5274dcc5b Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期三, 15 四月 2026 15:46:17 +0800
Subject: [PATCH] 新增调用外部接口api
---
api/src/main/java/com/ruoyi/api/third/controller/ReceivableBillApiController.java | 173 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 137 insertions(+), 36 deletions(-)
diff --git a/api/src/main/java/com/ruoyi/api/third/controller/ReceivableBillApiController.java b/api/src/main/java/com/ruoyi/api/third/controller/ReceivableBillApiController.java
index 5f18862..b0022f0 100644
--- a/api/src/main/java/com/ruoyi/api/third/controller/ReceivableBillApiController.java
+++ b/api/src/main/java/com/ruoyi/api/third/controller/ReceivableBillApiController.java
@@ -2,12 +2,8 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.cwgl.domain.PayableBillManagement;
-import com.ruoyi.cwgl.domain.PayableFeeDetail;
-import com.ruoyi.cwgl.domain.PayableFeeManagement;
-import com.ruoyi.cwgl.domain.ReceivableBillManagement;
-import com.ruoyi.cwgl.domain.ReceivableFeeDetail;
-import com.ruoyi.cwgl.domain.ReceivableFeeManagement;
+import com.ruoyi.cwgl.domain.*;
+import com.ruoyi.cwgl.domain.dto.BillAuditDto;
import com.ruoyi.cwgl.domain.dto.PayableBillApiDto;
import com.ruoyi.cwgl.domain.dto.ReceivableBillApiDto;
import com.ruoyi.cwgl.service.IPayableBillManagementService;
@@ -82,9 +78,9 @@
result.put("status", "0000");
result.put("message", "搴旀敹璐﹀崟娣诲姞鎴愬姛");
- result.put("billNo", billManagement.getSystemNo());
+ result.put("sourceSystemId", billManagement.getId().toString());
- logger.info("搴旀敹璐﹀崟娣诲姞鎴愬姛锛岃处鍗曠紪鍙凤細{}", billManagement.getSystemNo());
+ logger.info("搴旀敹璐﹀崟娣诲姞鎴愬姛锛屾潵婧愯处鍗昳d锛歿}", billManagement.getId());
} catch (Exception e) {
logger.error("搴旀敹璐﹀崟娣诲姞澶辫触锛�", e);
@@ -185,6 +181,8 @@
billManagement.setSettlementCategory(billDto.getSettlementCategory());
billManagement.setSettlementPeriod(billDto.getSettlementPeriod());
billManagement.setStatus(billDto.getStatus() != null ? billDto.getStatus() : "draft");
+ billManagement.setAuditStatus(billDto.getAuditStatus() != null ? billDto.getAuditStatus() : 0);
+ billManagement.setSourceSystemId(billDto.getSourceSystemId());
billManagement.setRemark(billDto.getRemark());
billManagement.setCreateTime(DateUtils.getNowDate());
billManagement.setCreateBy("api_system");
@@ -272,25 +270,35 @@
// 浣跨敤Map瀛樺偍绯荤粺缂栧彿鍜孖D鐨勬槧灏勫叧绯�
Map<String, Integer> systemNoToIdMap = new HashMap<>();
-
+ // 鎵归噺鎻掑叆鍚庯紝ID宸茬粡鑷姩璁剧疆鍒板璞$殑id灞炴�т腑
for (ReceivableFeeManagement feeManagement : feeManagementList) {
-
- // 鍋囪鎻掑叆鍚庡彲浠ラ�氳繃鏌愮鏂瑰紡鑾峰彇ID锛岃繖閲岀畝鍖栧鐞�
- // 瀹為檯椤圭洰涓彲鑳介渶瑕佹牴鎹笟鍔¢�昏緫鑾峰彇ID
- systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId());
-
+ systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId());
}
- // 璁剧疆璐圭敤鏄庣粏鐨勫叧鑱擨D
+ // 閲嶆柊鏋勫缓璐圭敤鏄庣粏鍒楄〃锛屾纭缃叧鑱擨D
List<ReceivableFeeDetail> finalFeeDetailList = new ArrayList<>();
- for (int i = 0; i < feeManagementList.size(); i++) {
- ReceivableFeeManagement feeManagement = feeManagementList.get(i);
+ int detailIndex = 0;
+
+ for (ReceivableFeeManagement feeManagement : feeManagementList) {
Integer feeId = systemNoToIdMap.get(feeManagement.getSystemNo());
- if (feeId != null && i < feeDetailList.size()) {
- ReceivableFeeDetail feeDetail = feeDetailList.get(i);
- feeDetail.setReceivableFeeId(feeId);
- finalFeeDetailList.add(feeDetail);
+ if (feeId != null) {
+ // 鑾峰彇璇ヨ垂鐢ㄧ鐞嗚褰曞搴旂殑璐圭敤鏄庣粏鏁伴噺
+ int detailCount = 0;
+ for (ReceivableBillApiDto.ReceivableFeeDto feeDto : fees) {
+ if (feeDto.getDocumentNo().equals(feeManagement.getDocumentNo())) {
+ detailCount = feeDto.getFeeDetails() != null ? feeDto.getFeeDetails().size() : 0;
+ break;
+ }
+ }
+
+ // 璁剧疆瀵瑰簲鏁伴噺鐨勮垂鐢ㄦ槑缁嗙殑鍏宠仈ID
+ for (int i = 0; i < detailCount && detailIndex < feeDetailList.size(); i++) {
+ ReceivableFeeDetail feeDetail = feeDetailList.get(detailIndex);
+ feeDetail.setReceivableFeeId(feeId);
+ finalFeeDetailList.add(feeDetail);
+ detailIndex++;
+ }
}
}
@@ -326,9 +334,9 @@
result.put("status", "0000");
result.put("message", "搴斾粯璐﹀崟娣诲姞鎴愬姛");
- result.put("billNo", billManagement.getSystemNo());
+ result.put("sourceSystemId", billManagement.getId().toString());
- logger.info("搴斾粯璐﹀崟娣诲姞鎴愬姛锛岃处鍗曠紪鍙凤細{}", billManagement.getSystemNo());
+ logger.info("搴斾粯璐﹀崟娣诲姞鎴愬姛锛屾潵婧愯处鍗昳d锛歿}", billManagement.getId());
} catch (Exception e) {
logger.error("搴斾粯璐﹀崟娣诲姞澶辫触锛�", e);
@@ -420,6 +428,8 @@
// 璁剧疆鍏朵粬淇℃伅
billManagement.setStatus(billDto.getStatus() != null ? billDto.getStatus() : "draft");
+ billManagement.setAuditStatus(billDto.getAuditStatus() != null ? billDto.getAuditStatus() : 0);
+ billManagement.setSourceSystemId(billDto.getSourceSystemId());
billManagement.setRemark(billDto.getRemark());
billManagement.setCreateTime(DateUtils.getNowDate());
billManagement.setCreateBy("api_system");
@@ -461,6 +471,7 @@
feeManagement.setBusinessTime(feeDto.getBusinessTime());
feeManagement.setPayableConfirmTime(feeDto.getPayableConfirmTime());
feeManagement.setPayableAmount(feeDto.getPayableAmount());
+ feeManagement.setPayableAmountStr(feeDto.getPayableAmountStr());
feeManagement.setStatus(feeDto.getStatus() != null ? feeDto.getStatus() : "confirmed");
feeManagement.setRemark(feeDto.getRemark());
feeManagement.setCreateTime(DateUtils.getNowDate());
@@ -504,25 +515,35 @@
// 浣跨敤Map瀛樺偍绯荤粺缂栧彿鍜孖D鐨勬槧灏勫叧绯�
Map<String, Integer> systemNoToIdMap = new HashMap<>();
- // 鎵归噺淇濆瓨璐圭敤绠$悊淇℃伅骞惰幏鍙朓D
+ // 鎵归噺鎻掑叆鍚庯紝ID宸茬粡鑷姩璁剧疆鍒板璞$殑id灞炴�т腑
for (PayableFeeManagement feeManagement : feeManagementList) {
-
- // 鍋囪鎻掑叆鍚庡彲浠ラ�氳繃鏌愮鏂瑰紡鑾峰彇ID锛岃繖閲岀畝鍖栧鐞�
- // 瀹為檯椤圭洰涓彲鑳介渶瑕佹牴鎹笟鍔¢�昏緫鑾峰彇ID
- systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId());
-
+ systemNoToIdMap.put(feeManagement.getSystemNo(), feeManagement.getId());
}
- // 璁剧疆璐圭敤鏄庣粏鐨勫叧鑱擨D
+ // 閲嶆柊鏋勫缓璐圭敤鏄庣粏鍒楄〃锛屾纭缃叧鑱擨D
List<PayableFeeDetail> finalFeeDetailList = new ArrayList<>();
- for (int i = 0; i < feeManagementList.size(); i++) {
- PayableFeeManagement feeManagement = feeManagementList.get(i);
+ int detailIndex = 0;
+
+ for (PayableFeeManagement feeManagement : feeManagementList) {
Integer feeId = systemNoToIdMap.get(feeManagement.getSystemNo());
- if (feeId != null && i < feeDetailList.size()) {
- PayableFeeDetail feeDetail = feeDetailList.get(i);
- feeDetail.setPayableFeeId(feeId);
- finalFeeDetailList.add(feeDetail);
+ if (feeId != null) {
+ // 鑾峰彇璇ヨ垂鐢ㄧ鐞嗚褰曞搴旂殑璐圭敤鏄庣粏鏁伴噺
+ int detailCount = 0;
+ for (PayableBillApiDto.PayableFeeDto feeDto : fees) {
+ if (feeDto.getDocumentNo().equals(feeManagement.getDocumentNo())) {
+ detailCount = feeDto.getFeeDetails() != null ? feeDto.getFeeDetails().size() : 0;
+ break;
+ }
+ }
+
+ // 璁剧疆瀵瑰簲鏁伴噺鐨勮垂鐢ㄦ槑缁嗙殑鍏宠仈ID
+ for (int i = 0; i < detailCount && detailIndex < feeDetailList.size(); i++) {
+ PayableFeeDetail feeDetail = feeDetailList.get(detailIndex);
+ feeDetail.setPayableFeeId(feeId);
+ finalFeeDetailList.add(feeDetail);
+ detailIndex++;
+ }
}
}
@@ -535,6 +556,86 @@
}
/**
+ * 搴旀敹璐﹀崟浣滃簾鎺ュ彛
+ * 鍏朵粬绯荤粺璋冪敤姝ゆ帴鍙d綔搴熷簲鏀惰处鍗�
+ * @param request 璇锋眰鏁版嵁
+ * @return 鎿嶄綔缁撴灉
+ */
+ @PostMapping("/cancelBill")
+ public Map<String, String> cancelReceivableBill(@RequestBody Map<String, Integer> request) {
+ logger.info("鎺ユ敹搴旀敹璐﹀崟浣滃簾璇锋眰锛歿}", request);
+
+ Map<String, String> result = new HashMap<>();
+
+ try {
+ Integer sourceSystemId = request.get("sourceSystemId");
+ if (sourceSystemId == null) {
+ throw new IllegalArgumentException("sourceSystemId涓嶈兘涓虹┖");
+ }
+
+ // 璋冪敤浣滃簾鏂规硶
+ int rows = receivableBillManagementService. voidReceivableBillManagement(sourceSystemId);
+
+ if (rows > 0) {
+ result.put("status", "0000");
+ result.put("message", "搴旀敹璐﹀崟浣滃簾鎴愬姛");
+ logger.info("搴旀敹璐﹀崟浣滃簾鎴愬姛锛宻ourceSystemId锛歿}", sourceSystemId);
+ } else {
+ result.put("status", "9999");
+ result.put("message", "搴旀敹璐﹀崟浣滃簾澶辫触锛屾湭鎵惧埌瀵瑰簲璁板綍");
+ logger.warn("搴旀敹璐﹀崟浣滃簾澶辫触锛屾湭鎵惧埌瀵瑰簲璁板綍锛宻ourceSystemId锛歿}", sourceSystemId);
+ }
+
+ } catch (Exception e) {
+ logger.error("搴旀敹璐﹀崟浣滃簾澶辫触锛�", e);
+ result.put("status", "9999");
+ result.put("message", "搴旀敹璐﹀崟浣滃簾澶辫触锛�" + e.getMessage());
+ }
+
+ return result;
+ }
+
+ /**
+ * 搴斾粯璐﹀崟浣滃簾鎺ュ彛
+ * 鍏朵粬绯荤粺璋冪敤姝ゆ帴鍙d綔搴熷簲浠樿处鍗�
+ * @param request 璇锋眰鏁版嵁
+ * @return 鎿嶄綔缁撴灉
+ */
+ @PostMapping("/cancelPayableBill")
+ public Map<String, String> cancelPayableBill(@RequestBody Map<String, Integer> request) {
+ logger.info("鎺ユ敹搴斾粯璐﹀崟浣滃簾璇锋眰锛歿}", request);
+
+ Map<String, String> result = new HashMap<>();
+
+ try {
+ Integer sourceSystemId = request.get("sourceSystemId");
+ if (sourceSystemId == null) {
+ throw new IllegalArgumentException("sourceSystemId涓嶈兘涓虹┖");
+ }
+
+ // 璋冪敤浣滃簾鏂规硶
+ int rows = payableBillManagementService.voidPayableBillManagement(sourceSystemId);
+
+ if (rows > 0) {
+ result.put("status", "0000");
+ result.put("message", "搴斾粯璐﹀崟浣滃簾鎴愬姛");
+ logger.info("搴斾粯璐﹀崟浣滃簾鎴愬姛锛宻ourceSystemId锛歿}", sourceSystemId);
+ } else {
+ result.put("status", "9999");
+ result.put("message", "搴斾粯璐﹀崟浣滃簾澶辫触锛屾湭鎵惧埌瀵瑰簲璁板綍");
+ logger.warn("搴斾粯璐﹀崟浣滃簾澶辫触锛屾湭鎵惧埌瀵瑰簲璁板綍锛宻ourceSystemId锛歿}", sourceSystemId);
+ }
+
+ } catch (Exception e) {
+ logger.error("搴斾粯璐﹀崟浣滃簾澶辫触锛�", e);
+ result.put("status", "9999");
+ result.put("message", "搴斾粯璐﹀崟浣滃簾澶辫触锛�" + e.getMessage());
+ }
+
+ return result;
+ }
+
+ /**
* 鍋ュ悍妫�鏌ユ帴鍙�
* @return 鍋ュ悍鐘舵��
*/
--
Gitblit v1.8.0