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/controller/ReceivableBillManagementController.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 112 insertions(+), 0 deletions(-)
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java b/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java
index 115d152..fa00613 100644
--- a/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java
@@ -26,9 +26,12 @@
import com.ruoyi.cwgl.domain.InvoiceManage;
import com.ruoyi.cwgl.domain.ReceivableBillManagement;
import com.ruoyi.cwgl.domain.ReceivableInvoiceBusiness;
+import com.ruoyi.cwgl.domain.dto.BillAuditDto;
+import com.ruoyi.cwgl.domain.dto.ReceivableAuditLog;
import com.ruoyi.cwgl.service.IInvoiceManageService;
import com.ruoyi.cwgl.service.IReceivableBillManagementService;
import com.ruoyi.cwgl.service.IReceivableInvoiceBusinessService;
+import com.ruoyi.cwgl.service.ITmsAuditLogPushService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -50,6 +53,9 @@
@Autowired
private IReceivableInvoiceBusinessService receivableInvoiceBusinessService;
+
+ @Autowired
+ private ITmsAuditLogPushService tmsAuditLogPushService;
@@ -245,5 +251,111 @@
receivableBillManagementService.accountAnalysisExport(receivableBillManagement,exportKey);
return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
}
+
+ /**
+ * 搴旀敹璐﹀崟瀹℃牳鎺ュ彛
+ * @param billAuditDto 瀹℃牳鏁版嵁浼犺緭瀵硅薄
+ * @return 瀹℃牳缁撴灉
+ */
+ @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:audit')")
+ @Log(title = "搴旀敹璐﹀崟绠$悊", businessType = BusinessType.UPDATE)
+ @PutMapping("/audit")
+ public AjaxResult auditReceivableBill(@RequestBody BillAuditDto billAuditDto) {
+ try {
+ // 1. 鏌ヨ搴旀敹璐﹀崟
+ ReceivableBillManagement bill = receivableBillManagementService.selectReceivableBillManagementById(billAuditDto.getBillId());
+ if (bill == null) {
+ return AjaxResult.error("搴旀敹璐﹀崟涓嶅瓨鍦紝ID锛�" + billAuditDto.getBillId());
+ }
+
+ // 2. 璁板綍瀹℃牳鍓嶇姸鎬�
+ Integer beforeAuditStatus = bill.getAuditStatus();
+
+ // 3. 鏇存柊瀹℃牳鐘舵��
+ bill.setAuditStatus(billAuditDto.getAuditResult());
+ bill.setUpdateTime(new java.util.Date());
+ bill.setUpdateBy(getUsername());
+
+ // 4. 鏇存柊璐﹀崟
+ int rows = receivableBillManagementService.updateReceivableBillManagement(bill);
+ if (rows <= 0) {
+ return AjaxResult.error("鏇存柊搴旀敹璐﹀崟瀹℃牳鐘舵�佸け璐�");
+ }
+
+ // 5. 璁板綍瀹℃牳鏃ュ織
+ saveReceivableAuditLog(billAuditDto, bill, beforeAuditStatus);
+
+ // 6. 濡傛灉鏉ユ簮绯荤粺鏄疶MS锛屾帹閫佸鏍告棩蹇楀埌TMS
+ if (tmsAuditLogPushService.isReceivableBillFromTms(bill.getSystemNo())) {
+ try {
+ ReceivableAuditLog auditLog = createReceivableAuditLog(billAuditDto, bill, beforeAuditStatus);
+ tmsAuditLogPushService.pushReceivableAuditLog(auditLog);
+ } catch (Exception e) {
+ logger.error("鎺ㄩ�佸簲鏀惰处鍗曞鏍告棩蹇楀埌TMS澶辫触锛岃处鍗旾D锛歿}", bill.getId(), e);
+ // 鎺ㄩ�佸け璐ヤ笉褰卞搷涓绘祦绋嬶紝鍙褰曟棩蹇�
+ }
+ }
+
+ return AjaxResult.success("搴旀敹璐﹀崟瀹℃牳鎴愬姛");
+
+ } catch (Exception e) {
+ return AjaxResult.error("搴旀敹璐﹀崟瀹℃牳澶辫触锛�" + e.getMessage());
+ }
+ }
+
+ /**
+ * 淇濆瓨搴旀敹璐﹀崟瀹℃牳鏃ュ織
+ */
+ private void saveReceivableAuditLog(BillAuditDto billAuditDto, ReceivableBillManagement bill, Integer beforeAuditStatus) {
+ // 杩欓噷闇�瑕佸疄鐜版棩蹇楄褰曢�昏緫
+ // 鍙互浣跨敤鍘熸湁鐨勬棩蹇楁湇鍔℃垨绯荤粺鏃ュ織
+ logger.info("搴旀敹璐﹀崟瀹℃牳鏃ュ織 - 璐﹀崟ID锛歿}锛岃处鍗曠紪鍙凤細{}锛屽鏍稿墠鐘舵�侊細{}锛屽鏍哥粨鏋滐細{}锛屽鏍告剰瑙侊細{}",
+ bill.getId(), bill.getSystemNo(),
+ getAuditStatusText(beforeAuditStatus),
+ getAuditResultText(billAuditDto.getAuditResult()),
+ billAuditDto.getAuditComment() != null ? billAuditDto.getAuditComment() : "鏃�");
+ }
+
+ /**
+ * 鑾峰彇瀹℃牳鐘舵�佹枃鏈�
+ */
+ private String getAuditStatusText(Integer auditStatus) {
+ switch (auditStatus) {
+ case 0: return "寰呭鏍�";
+ case 1: return "瀹℃牳閫氳繃";
+ case 2: return "瀹℃牳椹冲洖";
+ default: return "鏈煡鐘舵��";
+ }
+ }
+
+ /**
+ * 鑾峰彇瀹℃牳缁撴灉鏂囨湰
+ */
+ private String getAuditResultText(Integer auditResult) {
+ switch (auditResult) {
+ case 1: return "閫氳繃";
+ case 2: return "椹冲洖";
+ default: return "鏈煡缁撴灉";
+ }
+ }
+
+ /**
+ * 鍒涘缓搴旀敹璐﹀崟瀹℃牳鏃ュ織瀵硅薄
+ */
+ private ReceivableAuditLog createReceivableAuditLog(BillAuditDto billAuditDto, ReceivableBillManagement bill, Integer beforeAuditStatus) {
+ ReceivableAuditLog auditLog = new ReceivableAuditLog();
+ auditLog.setBillId(bill.getId());
+ auditLog.setBillNo(bill.getSystemNo());
+ auditLog.setBillName(bill.getBillName());
+ auditLog.setCustomerName(bill.getCustomerName());
+ auditLog.setSourceSystem(tmsAuditLogPushService.getReceivableBillSourceSystem(bill.getSystemNo()));
+ auditLog.setBeforeAuditStatus(beforeAuditStatus);
+ auditLog.setAuditResult(billAuditDto.getAuditResult());
+ auditLog.setAuditComment(billAuditDto.getAuditComment());
+ auditLog.setAuditUser(getUsername());
+ auditLog.setAuditTime(new java.util.Date());
+ auditLog.setTotalAmount(bill.getTotalAmount());
+ return auditLog;
+ }
}
--
Gitblit v1.8.0