From 156a530f070f41dabb89cd5934e581d83fb384c3 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 07 四月 2026 16:27:14 +0800
Subject: [PATCH] 新增审核

---
 service/src/main/java/com/ruoyi/cwgl/service/ITmsAuditLogPushService.java               |   52 +++++
 service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml                  |   10 
 service/src/main/java/com/ruoyi/cwgl/domain/dto/PayableBillApiDto.java                  |    5 
 service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml               |   11 
 api/src/main/java/com/ruoyi/api/third/controller/ReceivableBillApiController.java       |   10 
 service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java |  112 ++++++++++++
 service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java                  |    7 
 service/src/main/java/com/ruoyi/cwgl/domain/dto/ReceivableBillApiDto.java               |    5 
 service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java               |    9 
 service/src/main/java/com/ruoyi/cwgl/domain/dto/BillAuditDto.java                       |   35 +++
 service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java    |  112 ++++++++++++
 service/src/main/java/com/ruoyi/cwgl/service/impl/TmsAuditLogPushServiceImpl.java       |  169 ++++++++++++++++++
 12 files changed, 522 insertions(+), 15 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 340b0d7..7385daa 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;
@@ -185,6 +181,7 @@
         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.setRemark(billDto.getRemark());
         billManagement.setCreateTime(DateUtils.getNowDate());
         billManagement.setCreateBy("api_system");
@@ -430,6 +427,7 @@
         
         // 璁剧疆鍏朵粬淇℃伅
         billManagement.setStatus(billDto.getStatus() != null ? billDto.getStatus() : "draft");
+        billManagement.setAuditStatus(billDto.getAuditStatus() != null ? billDto.getAuditStatus() : 0);
         billManagement.setRemark(billDto.getRemark());
         billManagement.setCreateTime(DateUtils.getNowDate());
         billManagement.setCreateBy("api_system");
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java b/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java
index 0db2612..a8f80f6 100644
--- a/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java
@@ -22,9 +22,12 @@
 import com.ruoyi.cwgl.domain.InvoiceManage;
 import com.ruoyi.cwgl.domain.PayableBillManagement;
 import com.ruoyi.cwgl.domain.PayableInvoiceBusiness;
+import com.ruoyi.cwgl.domain.dto.BillAuditDto;
+import com.ruoyi.cwgl.domain.dto.PayableAuditLog;
 import com.ruoyi.cwgl.service.IInvoiceManageService;
 import com.ruoyi.cwgl.service.IPayableBillManagementService;
 import com.ruoyi.cwgl.service.IPayableInvoiceBusinessService;
+import com.ruoyi.cwgl.service.ITmsAuditLogPushService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
 
@@ -46,6 +49,9 @@
 
     @Autowired
     private IPayableInvoiceBusinessService payableInvoiceBusinessService;
+
+    @Autowired
+    private ITmsAuditLogPushService tmsAuditLogPushService;
 
 
 
@@ -167,4 +173,110 @@
         
         return AjaxResult.success(invoicedAmount);
     }
+
+    /**
+     * 搴斾粯璐﹀崟瀹℃牳鎺ュ彛
+     * @param billAuditDto 瀹℃牳鏁版嵁浼犺緭瀵硅薄
+     * @return 瀹℃牳缁撴灉
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:audit')")
+    @Log(title = "搴斾粯璐﹀崟绠$悊", businessType = BusinessType.UPDATE)
+    @PutMapping("/audit")
+    public AjaxResult auditPayableBill(@RequestBody BillAuditDto billAuditDto) {
+        try {
+            // 1. 鏌ヨ搴斾粯璐﹀崟
+            PayableBillManagement bill = payableBillManagementService.selectPayableBillManagementById(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 = payableBillManagementService.updatePayableBillManagement(bill);
+            if (rows <= 0) {
+                return AjaxResult.error("鏇存柊搴斾粯璐﹀崟瀹℃牳鐘舵�佸け璐�");
+            }
+            
+            // 5. 璁板綍瀹℃牳鏃ュ織
+            savePayableAuditLog(billAuditDto, bill, beforeAuditStatus);
+            
+            // 6. 濡傛灉鏉ユ簮绯荤粺鏄疶MS锛屾帹閫佸鏍告棩蹇楀埌TMS
+            if (tmsAuditLogPushService.isPayableBillFromTms(bill.getSystemNo())) {
+                try {
+                    PayableAuditLog auditLog = createPayableAuditLog(billAuditDto, bill, beforeAuditStatus);
+                    tmsAuditLogPushService.pushPayableAuditLog(auditLog);
+                } catch (Exception e) {
+                    logger.error("鎺ㄩ�佸簲浠樿处鍗曞鏍告棩蹇楀埌TMS澶辫触锛岃处鍗旾D锛歿}", bill.getId(), e);
+                    // 鎺ㄩ�佸け璐ヤ笉褰卞搷涓绘祦绋嬶紝鍙褰曟棩蹇�
+                }
+            }
+            
+            return AjaxResult.success("搴斾粯璐﹀崟瀹℃牳鎴愬姛");
+            
+        } catch (Exception e) {
+            return AjaxResult.error("搴斾粯璐﹀崟瀹℃牳澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    /**
+     * 淇濆瓨搴斾粯璐﹀崟瀹℃牳鏃ュ織
+     */
+    private void savePayableAuditLog(BillAuditDto billAuditDto, PayableBillManagement 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 PayableAuditLog createPayableAuditLog(BillAuditDto billAuditDto, PayableBillManagement bill, Integer beforeAuditStatus) {
+        PayableAuditLog auditLog = new PayableAuditLog();
+        auditLog.setBillId(bill.getId());
+        auditLog.setBillNo(bill.getSystemNo());
+        auditLog.setBillName(bill.getBillName());
+        auditLog.setSupplierName(bill.getSupplierName());
+        auditLog.setSourceSystem(tmsAuditLogPushService.getPayableBillSourceSystem(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;
+    }
 }
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;
+    }
     
 }
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java b/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java
index 1957d02..f266811 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java
@@ -184,6 +184,13 @@
     private String status;
 
 
+    /** 瀹℃牳鐘舵��(0:鏈鏍�;1:瀹℃牳閫氳繃;2:瀹℃牳涓嶉�氳繃) */
+    @Excel(name = "瀹℃牳鐘舵��")
+
+        @TableField("audit_status")
+    private Integer auditStatus;
+
+
     /** 澶囨敞 */
     @Excel(name = "澶囨敞")
 
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java b/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java
index 7746f70..edb0364 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java
@@ -337,7 +337,7 @@
 
 
     /**
-     * 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;partial_paid:閮ㄥ垎鏀舵;paid:宸叉敹娆�;cancelled:宸插彇娑�)
+     * 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;pending_review:寰呭鏍�;partial_paid:閮ㄥ垎鏀舵;paid:宸叉敹娆�;cancelled:宸插彇娑�)
      */
     @Excel(name = "鐘舵��")
 
@@ -345,6 +345,13 @@
     private String status;
 
 
+    /** 瀹℃牳鐘舵��(0:鏈鏍�;1:瀹℃牳閫氳繃;2:瀹℃牳涓嶉�氳繃) */
+    @Excel(name = "瀹℃牳鐘舵��")
+
+        @TableField("audit_status")
+    private Integer auditStatus;
+
+
     /** 澶囨敞 */
     @Excel(name = "澶囨敞")
 
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/dto/BillAuditDto.java b/service/src/main/java/com/ruoyi/cwgl/domain/dto/BillAuditDto.java
new file mode 100644
index 0000000..a329937
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/dto/BillAuditDto.java
@@ -0,0 +1,35 @@
+package com.ruoyi.cwgl.domain.dto;
+
+import lombok.Data;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 璐﹀崟瀹℃牳鏁版嵁浼犺緭瀵硅薄
+ */
+@Data
+public class BillAuditDto {
+
+    /**
+     * 璐﹀崟ID
+     */
+    @NotNull(message = "璐﹀崟ID涓嶈兘涓虹┖")
+    private Integer billId;
+
+    /**
+     * 璐﹀崟绫诲瀷 (0:搴旀敹, 1:搴斾粯)
+     */
+    @NotBlank(message = "璐﹀崟绫诲瀷涓嶈兘涓虹┖")
+    private Integer billType;
+
+    /**
+     * 瀹℃牳缁撴灉 (1:閫氳繃, 2:椹冲洖)
+     */
+    @NotNull(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+    private Integer auditResult;
+
+    /**
+     * 瀹℃牳鎰忚
+     */
+    private String auditComment;
+}
\ No newline at end of file
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/dto/PayableBillApiDto.java b/service/src/main/java/com/ruoyi/cwgl/domain/dto/PayableBillApiDto.java
index a63e2da..ba27c82 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/dto/PayableBillApiDto.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/dto/PayableBillApiDto.java
@@ -104,9 +104,12 @@
         @JsonFormat(pattern = "yyyy-MM-dd")
         private Date billDueDate;
 
-        /** 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;partial_paid:閮ㄥ垎浠樻;paid:宸蹭粯娆�;cancelled:宸插彇娑�) */
+        /** 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;pending_review:寰呭鏍�;partial_paid:閮ㄥ垎浠樻;paid:宸蹭粯娆�;cancelled:宸插彇娑�) */
         private String status;
 
+        /** 瀹℃牳鐘舵��(0:鏈鏍�;1:瀹℃牳閫氳繃;2:瀹℃牳涓嶉�氳繃) */
+        private Integer auditStatus;
+
         /** 澶囨敞 */
         private String remark;
     }
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReceivableBillApiDto.java b/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReceivableBillApiDto.java
index 0276e9d..403a7e9 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReceivableBillApiDto.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/dto/ReceivableBillApiDto.java
@@ -128,9 +128,12 @@
         /** 缁撶畻鏈� */
         private String settlementPeriod;
 
-        /** 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;partial_paid:閮ㄥ垎鏀舵;paid:宸叉敹娆�;cancelled:宸插彇娑�) */
+        /** 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;pending_review:寰呭鏍�;partial_paid:閮ㄥ垎鏀舵;paid:宸叉敹娆�;cancelled:宸插彇娑�) */
         private String status;
 
+        /** 瀹℃牳鐘舵��(0:鏈鏍�;1:瀹℃牳閫氳繃;2:瀹℃牳涓嶉�氳繃) */
+        private Integer auditStatus;
+
         /** 澶囨敞 */
         private String remark;
     }
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/ITmsAuditLogPushService.java b/service/src/main/java/com/ruoyi/cwgl/service/ITmsAuditLogPushService.java
new file mode 100644
index 0000000..20af2e0
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/ITmsAuditLogPushService.java
@@ -0,0 +1,52 @@
+package com.ruoyi.cwgl.service;
+
+import com.ruoyi.cwgl.domain.dto.PayableAuditLog;
+import com.ruoyi.cwgl.domain.dto.ReceivableAuditLog;
+
+/**
+ * TMS瀹℃牳鏃ュ織鎺ㄩ�佹湇鍔℃帴鍙�
+ */
+public interface ITmsAuditLogPushService {
+
+    /**
+     * 鎺ㄩ�佸簲浠樿处鍗曞鏍告棩蹇楀埌TMS
+     * @param auditLog 搴斾粯璐﹀崟瀹℃牳鏃ュ織
+     * @return 鎺ㄩ�佹槸鍚︽垚鍔�
+     */
+    boolean pushPayableAuditLog(PayableAuditLog auditLog);
+
+    /**
+     * 鎺ㄩ�佸簲鏀惰处鍗曞鏍告棩蹇楀埌TMS
+     * @param auditLog 搴旀敹璐﹀崟瀹℃牳鏃ュ織
+     * @return 鎺ㄩ�佹槸鍚︽垚鍔�
+     */
+    boolean pushReceivableAuditLog(ReceivableAuditLog auditLog);
+
+    /**
+     * 鍒ゆ柇搴斾粯璐﹀崟鏄惁鏉ヨ嚜TMS绯荤粺
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏄惁鏉ヨ嚜TMS绯荤粺
+     */
+    boolean isPayableBillFromTms(String billNo);
+
+    /**
+     * 鍒ゆ柇搴旀敹璐﹀崟鏄惁鏉ヨ嚜TMS绯荤粺
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏄惁鏉ヨ嚜TMS绯荤粺
+     */
+    boolean isReceivableBillFromTms(String billNo);
+
+    /**
+     * 鑾峰彇搴斾粯璐﹀崟鐨勬潵婧愮郴缁�
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏉ユ簮绯荤粺
+     */
+    String getPayableBillSourceSystem(String billNo);
+
+    /**
+     * 鑾峰彇搴旀敹璐﹀崟鐨勬潵婧愮郴缁�
+     * @param billNo 璐﹀崟缂栧彿
+     * @return 鏉ユ簮绯荤粺
+     */
+    String getReceivableBillSourceSystem(String billNo);
+}
\ No newline at end of file
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
diff --git a/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml b/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml
index 430f466..01c5650 100644
--- a/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml
@@ -28,6 +28,7 @@
         <result property="billSendDate"    column="bill_send_date"    />
         <result property="billDueDate"    column="bill_due_date"    />
         <result property="status"    column="status"    />
+        <result property="auditStatus"    column="audit_status"    />
         <result property="remark"    column="remark"    />
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
@@ -37,7 +38,7 @@
     </resultMap>
 
     <sql id="selectPayableBillManagementVo">
-        select thisTab.id, thisTab.system_no, thisTab.bill_name, thisTab.supplier_name, thisTab.is_internal_settlement, thisTab.internal_settlement_unit, thisTab.document_count, thisTab.total_amount, thisTab.currency, thisTab.discount_amount, thisTab.paid_amount, thisTab.pending_amount, thisTab.exchange_rate, thisTab.cny_amount, thisTab.period_type, thisTab.business_start_date, thisTab.business_end_date, thisTab.billing_start_date, thisTab.billing_end_date, thisTab.bill_generate_date, thisTab.bill_send_date, thisTab.bill_due_date, thisTab.status, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.deleted from payable_bill_management AS thisTab
+        select thisTab.id, thisTab.system_no, thisTab.bill_name, thisTab.supplier_name, thisTab.is_internal_settlement, thisTab.internal_settlement_unit, thisTab.document_count, thisTab.total_amount, thisTab.currency, thisTab.discount_amount, thisTab.paid_amount, thisTab.pending_amount, thisTab.exchange_rate, thisTab.cny_amount, thisTab.period_type, thisTab.business_start_date, thisTab.business_end_date, thisTab.billing_start_date, thisTab.billing_end_date, thisTab.bill_generate_date, thisTab.bill_send_date, thisTab.bill_due_date, thisTab.status, thisTab.audit_status, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.deleted from payable_bill_management AS thisTab
     </sql>
     <sql id="selectPayableBillManagementVoCount">
         select count(0) from payable_bill_management as thisTab
@@ -130,6 +131,7 @@
             <if test="billSendDate != null">bill_send_date,</if>
             <if test="billDueDate != null">bill_due_date,</if>
             <if test="status != null">status,</if>
+            <if test="auditStatus != null">audit_status,</if>
             <if test="remark != null">remark,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
@@ -160,6 +162,7 @@
             <if test="billSendDate != null">#{billSendDate},</if>
             <if test="billDueDate != null">#{billDueDate},</if>
             <if test="status != null">#{status},</if>
+            <if test="auditStatus != null">#{auditStatus},</if>
             <if test="remark != null">#{remark},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
@@ -172,11 +175,11 @@
     <insert id="insertPayableBillManagementBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
         insert into payable_bill_management
         <trim prefix="(" suffix=") values" suffixOverrides=",">
-            id,system_no,bill_name,supplier_name,is_internal_settlement,internal_settlement_unit,document_count,total_amount,currency,discount_amount,paid_amount,pending_amount,exchange_rate,cny_amount,period_type,business_start_date,business_end_date,billing_start_date,billing_end_date,bill_generate_date,bill_send_date,bill_due_date,status,remark,create_by,create_time,update_by,update_time,deleted,
+            id,system_no,bill_name,supplier_name,is_internal_settlement,internal_settlement_unit,document_count,total_amount,currency,discount_amount,paid_amount,pending_amount,exchange_rate,cny_amount,period_type,business_start_date,business_end_date,billing_start_date,billing_end_date,bill_generate_date,bill_send_date,bill_due_date,status,audit_status,remark,create_by,create_time,update_by,update_time,deleted,
         </trim>
         <foreach item="item" index="index" collection="list" separator=",">
             <trim prefix="(" suffix=") " suffixOverrides=",">
-                #{item.id},#{item.systemNo},#{item.billName},#{item.supplierName},#{item.isInternalSettlement},#{item.internalSettlementUnit},#{item.documentCount},#{item.totalAmount},#{item.currency},#{item.discountAmount},#{item.paidAmount},#{item.pendingAmount},#{item.exchangeRate},#{item.cnyAmount},#{item.periodType},#{item.businessStartDate},#{item.businessEndDate},#{item.billingStartDate},#{item.billingEndDate},#{item.billGenerateDate},#{item.billSendDate},#{item.billDueDate},#{item.status},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
+                #{item.id},#{item.systemNo},#{item.billName},#{item.supplierName},#{item.isInternalSettlement},#{item.internalSettlementUnit},#{item.documentCount},#{item.totalAmount},#{item.currency},#{item.discountAmount},#{item.paidAmount},#{item.pendingAmount},#{item.exchangeRate},#{item.cnyAmount},#{item.periodType},#{item.businessStartDate},#{item.businessEndDate},#{item.billingStartDate},#{item.billingEndDate},#{item.billGenerateDate},#{item.billSendDate},#{item.billDueDate},#{item.status},#{item.auditStatus},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
             </trim>
         </foreach>
     </insert>
@@ -207,6 +210,7 @@
             <if test="billSendDate != null">bill_send_date = #{billSendDate},</if>
             <if test="billDueDate != null">bill_due_date = #{billDueDate},</if>
             <if test="status != null">status = #{status},</if>
+            <if test="auditStatus != null">audit_status = #{auditStatus},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
diff --git a/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml b/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
index 69350f7..0c8c08c 100644
--- a/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
+++ b/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
@@ -40,6 +40,7 @@
         <result property="accountRemark"    column="account_remark"    />
         <result property="overdueInterest"    column="overdue_interest"    />
         <result property="status"    column="status"    />
+        <result property="auditStatus"    column="audit_status"    />
         <result property="remark"    column="remark"    />
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
@@ -82,7 +83,7 @@
     </resultMap>
 
     <sql id="selectReceivableBillManagementVo">
-        select thisTab.id, thisTab.system_no, thisTab.bill_name, thisTab.customer_name, thisTab.payee, thisTab.responsible_person, thisTab.responsible_leader, thisTab.settlement_method, thisTab.business_type, thisTab.promotion_requirement, thisTab.is_internal_settlement, thisTab.internal_settlement_unit, thisTab.document_count, thisTab.total_amount, thisTab.currency, thisTab.discount_amount, thisTab.received_amount, thisTab.pending_amount, thisTab.exchange_rate, thisTab.cny_amount, thisTab.period_type, thisTab.business_start_date, thisTab.business_end_date, thisTab.billing_start_date, thisTab.billing_end_date, thisTab.bill_generate_date, thisTab.bill_send_date, thisTab.bill_due_date, thisTab.due_in_30_days, thisTab.overdue_amount, thisTab.overdue_1_to_30_days, thisTab.overdue_31_to_60_days, thisTab.overdue_61_to_90_days, thisTab.overdue_91_to_180_days, thisTab.overdue_181_to_365_days, thisTab.overdue_over_1_year, thisTab.overdue_days, thisTab.settlement_category, thisTab.settlement_period, thisTab.nc_settlement_date, thisTab.nc_settlement_amount, thisTab.account_remark, thisTab.overdue_interest, thisTab.status, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.deleted from receivable_bill_management AS thisTab
+        select thisTab.id, thisTab.system_no, thisTab.bill_name, thisTab.customer_name, thisTab.payee, thisTab.responsible_person, thisTab.responsible_leader, thisTab.settlement_method, thisTab.business_type, thisTab.promotion_requirement, thisTab.is_internal_settlement, thisTab.internal_settlement_unit, thisTab.document_count, thisTab.total_amount, thisTab.currency, thisTab.discount_amount, thisTab.received_amount, thisTab.pending_amount, thisTab.exchange_rate, thisTab.cny_amount, thisTab.period_type, thisTab.business_start_date, thisTab.business_end_date, thisTab.billing_start_date, thisTab.billing_end_date, thisTab.bill_generate_date, thisTab.bill_send_date, thisTab.bill_due_date, thisTab.due_in_30_days, thisTab.overdue_amount, thisTab.overdue_1_to_30_days, thisTab.overdue_31_to_60_days, thisTab.overdue_61_to_90_days, thisTab.overdue_91_to_180_days, thisTab.overdue_181_to_365_days, thisTab.overdue_over_1_year, thisTab.overdue_days, thisTab.settlement_category, thisTab.settlement_period, thisTab.nc_settlement_date, thisTab.nc_settlement_amount, thisTab.account_remark, thisTab.overdue_interest, thisTab.status, thisTab.audit_status, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.deleted from receivable_bill_management AS thisTab
     </sql>
     <sql id="selectReceivableBillManagementVoCount">
         select count(0) from receivable_bill_management as thisTab
@@ -199,6 +200,7 @@
             <if test="accountRemark != null and accountRemark != ''">account_remark,</if>
             <if test="overdueInterest != null">overdue_interest,</if>
             <if test="status != null">status,</if>
+            <if test="auditStatus != null">audit_status,</if>
             <if test="remark != null">remark,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
@@ -241,6 +243,7 @@
             <if test="accountRemark != null and accountRemark != ''">#{accountRemark},</if>
             <if test="overdueInterest != null">#{overdueInterest},</if>
             <if test="status != null">#{status},</if>
+            <if test="auditStatus != null">#{auditStatus},</if>
             <if test="remark != null">#{remark},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
@@ -253,11 +256,11 @@
     <insert id="insertReceivableBillManagementBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
         insert into receivable_bill_management
         <trim prefix="(" suffix=") values" suffixOverrides=",">
-            system_no,bill_name,customer_name,payee,responsible_person,responsible_leader,settlement_method,business_type,promotion_requirement,is_internal_settlement,internal_settlement_unit,document_count,total_amount,currency,discount_amount,received_amount,pending_amount,exchange_rate,cny_amount,period_type,business_start_date,business_end_date,billing_start_date,billing_end_date,bill_generate_date,bill_send_date,bill_due_date,settlement_category,settlement_period,nc_settlement_date,nc_settlement_amount,account_remark,overdue_interest,status,remark,create_by,create_time,update_by,update_time,deleted,
+            system_no,bill_name,customer_name,payee,responsible_person,responsible_leader,settlement_method,business_type,promotion_requirement,is_internal_settlement,internal_settlement_unit,document_count,total_amount,currency,discount_amount,received_amount,pending_amount,exchange_rate,cny_amount,period_type,business_start_date,business_end_date,billing_start_date,billing_end_date,bill_generate_date,bill_send_date,bill_due_date,settlement_category,settlement_period,nc_settlement_date,nc_settlement_amount,account_remark,overdue_interest,status,audit_status,remark,create_by,create_time,update_by,update_time,deleted,
         </trim>
         <foreach item="item" index="index" collection="list" separator=",">
             <trim prefix="(" suffix=") " suffixOverrides=",">
-                #{item.systemNo},#{item.billName},#{item.customerName},#{item.payee},#{item.responsiblePerson},#{item.responsibleLeader},#{item.settlementMethod},#{item.businessType},#{item.promotionRequirement},#{item.isInternalSettlement},#{item.internalSettlementUnit},#{item.documentCount},#{item.totalAmount},#{item.currency},#{item.discountAmount},#{item.receivedAmount},#{item.pendingAmount},#{item.exchangeRate},#{item.cnyAmount},#{item.periodType},#{item.businessStartDate},#{item.businessEndDate},#{item.billingStartDate},#{item.billingEndDate},#{item.billGenerateDate},#{item.billSendDate},#{item.billDueDate},#{item.settlementCategory},#{item.settlementPeriod},#{item.ncSettlementDate},#{item.ncSettlementAmount},#{item.accountRemark},#{item.overdueInterest},#{item.status},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
+                #{item.systemNo},#{item.billName},#{item.customerName},#{item.payee},#{item.responsiblePerson},#{item.responsibleLeader},#{item.settlementMethod},#{item.businessType},#{item.promotionRequirement},#{item.isInternalSettlement},#{item.internalSettlementUnit},#{item.documentCount},#{item.totalAmount},#{item.currency},#{item.discountAmount},#{item.receivedAmount},#{item.pendingAmount},#{item.exchangeRate},#{item.cnyAmount},#{item.periodType},#{item.businessStartDate},#{item.businessEndDate},#{item.billingStartDate},#{item.billingEndDate},#{item.billGenerateDate},#{item.billSendDate},#{item.billDueDate},#{item.settlementCategory},#{item.settlementPeriod},#{item.ncSettlementDate},#{item.ncSettlementAmount},#{item.accountRemark},#{item.overdueInterest},#{item.status},#{item.auditStatus},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
             </trim>
         </foreach>
     </insert>
@@ -300,6 +303,7 @@
             <if test="accountRemark != null and accountRemark != ''">account_remark = #{accountRemark},</if>
             <if test="overdueInterest != null">overdue_interest = #{overdueInterest},</if>
             <if test="status != null">status = #{status},</if>
+            <if test="auditStatus != null">audit_status = #{auditStatus},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
@@ -348,6 +352,7 @@
                 <if test="item.accountRemark != null and item.accountRemark != ''">account_remark = #{item.accountRemark},</if>
                 <if test="item.overdueInterest != null">overdue_interest = #{item.overdueInterest},</if>
                 <if test="item.status != null">status = #{item.status},</if>
+                <if test="item.auditStatus != null">audit_status = #{item.auditStatus},</if>
                 <if test="item.remark != null">remark = #{item.remark},</if>
                 <if test="item.createBy != null">create_by = #{item.createBy},</if>
                 <if test="item.createTime != null">create_time = #{item.createTime},</if>

--
Gitblit v1.8.0