From 594f8a604564a3ebefe99cb32e63e647aa9b14bd Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期三, 17 十二月 2025 17:50:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/cwxt_master' into cwxt_master

---
 ui/admin-ui3/src/api/cwgl/receivableBillManagement.ts                                            |   67 
 service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillSettlementDetailMapper.java            |   87 +
 service/src/main/java/com/ruoyi/cwgl/domain/PayableFeeDetail.java                                |    4 
 service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml                        |  254 +++
 ui/admin-ui3/src/api/cwgl/receivableBillSettlementDetail.ts                                      |   67 
 ui/admin-ui3/src/views/cwgl/payableBillSettlementDetail/index.vue                                |  177 ++
 service/src/main/java/com/ruoyi/cwgl/domain/PayableBillSettlementDetail.java                     |  125 +
 service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java                        |  222 ++
 service/src/main/java/com/ruoyi/cwgl/controller/PayableBillSettlementDetailController.java       |  108 +
 service/src/main/java/com/ruoyi/cwgl/service/IPayableBillManagementService.java                  |  102 +
 service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillManagementService.java               |  102 +
 service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml                           |  254 +++
 service/src/main/resources/mapper/cwgl/ReceivableBillSettlementDetailMapper.xml                  |  176 ++
 ui/admin-ui3/src/views/cwgl/payableBillManagement/index.vue                                      |  245 +++
 service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillSettlementDetail.java                  |  124 +
 service/src/main/resources/mapper/cwgl/PayableBillSettlementDetailMapper.xml                     |  176 ++
 service/src/main/java/com/ruoyi/cwgl/service/IPayableBillSettlementDetailService.java            |  102 +
 service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java                           |  222 ++
 service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java          |  108 +
 ui/admin-ui3/src/api/cwgl/payableBillManagement.ts                                               |   67 
 service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillSettlementDetailController.java    |  108 +
 service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillSettlementDetailService.java         |  102 +
 service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillManagementServiceImpl.java          |  182 ++
 service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillSettlementDetailServiceImpl.java    |  182 ++
 service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java             |  108 +
 service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillManagementMapper.java                  |   87 +
 service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillSettlementDetailServiceImpl.java |  182 ++
 ui/admin-ui3/src/api/cwgl/payableBillSettlementDetail.ts                                         |   67 
 service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java       |  182 ++
 service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillSettlementDetailMapper.java               |   87 +
 ui/admin-ui3/src/views/cwgl/receivableBillSettlementDetail/index.vue                             |  177 ++
 service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillManagementMapper.java                     |   87 +
 ui/admin-ui3/src/views/cwgl/receivableBillManagement/index.vue                                   |  245 +++
 33 files changed, 4,583 insertions(+), 2 deletions(-)

diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java b/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java
new file mode 100644
index 0000000..2916ee3
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillManagementController.java
@@ -0,0 +1,108 @@
+package com.ruoyi.cwgl.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.cwgl.domain.PayableBillManagement;
+import com.ruoyi.cwgl.service.IPayableBillManagementService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 搴斾粯璐﹀崟绠$悊Controller
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@RestController
+@RequestMapping("/cwgl/payableBillManagement")
+public class PayableBillManagementController extends BaseController
+{
+    @Autowired
+    private IPayableBillManagementService payableBillManagementService;
+
+
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(PayableBillManagement payableBillManagement)
+    {
+        startPage();
+        List<PayableBillManagement> list = payableBillManagementService.selectPayableBillManagementList(payableBillManagement);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭搴斾粯璐﹀崟绠$悊鍒楄〃
+     * @param payableBillManagement 鏌ヨ鏉′欢瀵硅薄
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:export')")
+    @Log(title = "搴斾粯璐﹀崟绠$悊", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(PayableBillManagement payableBillManagement,String exportKey)
+    {
+        payableBillManagementService.export(payableBillManagement,exportKey);
+        return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
+    }
+
+
+
+    /**
+     * 鑾峰彇搴斾粯璐﹀崟绠$悊璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(payableBillManagementService.selectPayableBillManagementById(id));
+    }
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:add')")
+    @Log(title = "搴斾粯璐﹀崟绠$悊", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody PayableBillManagement payableBillManagement)
+    {
+        return toAjax(payableBillManagementService.insertPayableBillManagement(payableBillManagement));
+    }
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:edit')")
+    @Log(title = "搴斾粯璐﹀崟绠$悊", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody PayableBillManagement payableBillManagement)
+    {
+        return toAjax(payableBillManagementService.updatePayableBillManagement(payableBillManagement));
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillManagement:remove')")
+    @Log(title = "搴斾粯璐﹀崟绠$悊", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(payableBillManagementService.deletePayableBillManagementByIds(ids));
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillSettlementDetailController.java b/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillSettlementDetailController.java
new file mode 100644
index 0000000..12918c1
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/PayableBillSettlementDetailController.java
@@ -0,0 +1,108 @@
+package com.ruoyi.cwgl.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.cwgl.domain.PayableBillSettlementDetail;
+import com.ruoyi.cwgl.service.IPayableBillSettlementDetailService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 搴斾粯璐﹀崟缁撶畻鏄庣粏Controller
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@RestController
+@RequestMapping("/cwgl/payableBillSettlementDetail")
+public class PayableBillSettlementDetailController extends BaseController
+{
+    @Autowired
+    private IPayableBillSettlementDetailService payableBillSettlementDetailService;
+
+
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillSettlementDetail:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        startPage();
+        List<PayableBillSettlementDetail> list = payableBillSettlementDetailService.selectPayableBillSettlementDetailList(payableBillSettlementDetail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     * @param payableBillSettlementDetail 鏌ヨ鏉′欢瀵硅薄
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillSettlementDetail:export')")
+    @Log(title = "搴斾粯璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(PayableBillSettlementDetail payableBillSettlementDetail,String exportKey)
+    {
+        payableBillSettlementDetailService.export(payableBillSettlementDetail,exportKey);
+        return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
+    }
+
+
+
+    /**
+     * 鑾峰彇搴斾粯璐﹀崟缁撶畻鏄庣粏璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillSettlementDetail:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(payableBillSettlementDetailService.selectPayableBillSettlementDetailById(id));
+    }
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillSettlementDetail:add')")
+    @Log(title = "搴斾粯璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        return toAjax(payableBillSettlementDetailService.insertPayableBillSettlementDetail(payableBillSettlementDetail));
+    }
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillSettlementDetail:edit')")
+    @Log(title = "搴斾粯璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        return toAjax(payableBillSettlementDetailService.updatePayableBillSettlementDetail(payableBillSettlementDetail));
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:payableBillSettlementDetail:remove')")
+    @Log(title = "搴斾粯璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(payableBillSettlementDetailService.deletePayableBillSettlementDetailByIds(ids));
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java b/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java
new file mode 100644
index 0000000..61dc87c
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillManagementController.java
@@ -0,0 +1,108 @@
+package com.ruoyi.cwgl.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.cwgl.domain.ReceivableBillManagement;
+import com.ruoyi.cwgl.service.IReceivableBillManagementService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 搴旀敹璐﹀崟绠$悊Controller
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@RestController
+@RequestMapping("/cwgl/receivableBillManagement")
+public class ReceivableBillManagementController extends BaseController
+{
+    @Autowired
+    private IReceivableBillManagementService receivableBillManagementService;
+
+
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ReceivableBillManagement receivableBillManagement)
+    {
+        startPage();
+        List<ReceivableBillManagement> list = receivableBillManagementService.selectReceivableBillManagementList(receivableBillManagement);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭搴旀敹璐﹀崟绠$悊鍒楄〃
+     * @param receivableBillManagement 鏌ヨ鏉′欢瀵硅薄
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:export')")
+    @Log(title = "搴旀敹璐﹀崟绠$悊", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(ReceivableBillManagement receivableBillManagement,String exportKey)
+    {
+        receivableBillManagementService.export(receivableBillManagement,exportKey);
+        return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
+    }
+
+
+
+    /**
+     * 鑾峰彇搴旀敹璐﹀崟绠$悊璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(receivableBillManagementService.selectReceivableBillManagementById(id));
+    }
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:add')")
+    @Log(title = "搴旀敹璐﹀崟绠$悊", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ReceivableBillManagement receivableBillManagement)
+    {
+        return toAjax(receivableBillManagementService.insertReceivableBillManagement(receivableBillManagement));
+    }
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:edit')")
+    @Log(title = "搴旀敹璐﹀崟绠$悊", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ReceivableBillManagement receivableBillManagement)
+    {
+        return toAjax(receivableBillManagementService.updateReceivableBillManagement(receivableBillManagement));
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillManagement:remove')")
+    @Log(title = "搴旀敹璐﹀崟绠$悊", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(receivableBillManagementService.deleteReceivableBillManagementByIds(ids));
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillSettlementDetailController.java b/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillSettlementDetailController.java
new file mode 100644
index 0000000..e5e755e
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/ReceivableBillSettlementDetailController.java
@@ -0,0 +1,108 @@
+package com.ruoyi.cwgl.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.file.DownloadExportUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail;
+import com.ruoyi.cwgl.service.IReceivableBillSettlementDetailService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 搴旀敹璐﹀崟缁撶畻鏄庣粏Controller
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@RestController
+@RequestMapping("/cwgl/receivableBillSettlementDetail")
+public class ReceivableBillSettlementDetailController extends BaseController
+{
+    @Autowired
+    private IReceivableBillSettlementDetailService receivableBillSettlementDetailService;
+
+
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillSettlementDetail:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        startPage();
+        List<ReceivableBillSettlementDetail> list = receivableBillSettlementDetailService.selectReceivableBillSettlementDetailList(receivableBillSettlementDetail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     * @param receivableBillSettlementDetail 鏌ヨ鏉′欢瀵硅薄
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillSettlementDetail:export')")
+    @Log(title = "搴旀敹璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(ReceivableBillSettlementDetail receivableBillSettlementDetail,String exportKey)
+    {
+        receivableBillSettlementDetailService.export(receivableBillSettlementDetail,exportKey);
+        return AjaxResult.success("瀵煎嚭璇锋眰鎴愬姛锛岃绋嶅悗鐐瑰嚮涓嬭浇...!");
+    }
+
+
+
+    /**
+     * 鑾峰彇搴旀敹璐﹀崟缁撶畻鏄庣粏璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillSettlementDetail:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(receivableBillSettlementDetailService.selectReceivableBillSettlementDetailById(id));
+    }
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillSettlementDetail:add')")
+    @Log(title = "搴旀敹璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        return toAjax(receivableBillSettlementDetailService.insertReceivableBillSettlementDetail(receivableBillSettlementDetail));
+    }
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillSettlementDetail:edit')")
+    @Log(title = "搴旀敹璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        return toAjax(receivableBillSettlementDetailService.updateReceivableBillSettlementDetail(receivableBillSettlementDetail));
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    @PreAuthorize("@ss.hasPermi('cwgl:receivableBillSettlementDetail:remove')")
+    @Log(title = "搴旀敹璐﹀崟缁撶畻鏄庣粏", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(receivableBillSettlementDetailService.deleteReceivableBillSettlementDetailByIds(ids));
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java b/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java
new file mode 100644
index 0000000..457e706
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillManagement.java
@@ -0,0 +1,222 @@
+package com.ruoyi.cwgl.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import lombok.Data;
+/**
+ * 搴斾粯璐﹀崟绠$悊瀵硅薄 payable_bill_management
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Data
+public class PayableBillManagement{
+
+
+    /** ID */
+        @TableField("id")
+    private Integer id;
+
+
+    /** 绯荤粺缂栧彿 */
+    @Excel(name = "绯荤粺缂栧彿")
+
+        @TableField("system_no")
+    private String systemNo;
+
+
+    /** 璐﹀崟鍚嶇О */
+    @Excel(name = "璐﹀崟鍚嶇О")
+
+        @TableField("bill_name")
+    private String billName;
+
+
+    /** 渚涘簲鍟嗗悕绉� */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+
+        @TableField("supplier_name")
+    private String supplierName;
+
+
+    /** 鏄惁鍐呴儴缁撶畻 */
+    @Excel(name = "鏄惁鍐呴儴缁撶畻")
+
+        @TableField("is_internal_settlement")
+    private String isInternalSettlement;
+
+
+    /** 鍐呴儴缁撶畻鍗曚綅 */
+    @Excel(name = "鍐呴儴缁撶畻鍗曚綅")
+
+        @TableField("internal_settlement_unit")
+    private String internalSettlementUnit;
+
+
+    /** 鍗曟嵁鏁伴噺 */
+    @Excel(name = "鍗曟嵁鏁伴噺")
+
+        @TableField("document_count")
+    private Integer documentCount;
+
+
+    /** 搴旂粨绠楅噾棰� */
+    @Excel(name = "搴旂粨绠楅噾棰�")
+
+        @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+
+    /** 甯佸埗 */
+    @Excel(name = "甯佸埗")
+
+        @TableField("currency")
+    private String currency;
+
+
+    /** 鍑忓厤閲戦 */
+    @Excel(name = "鍑忓厤閲戦")
+
+        @TableField("discount_amount")
+    private BigDecimal discountAmount;
+
+
+    /** 宸蹭粯閲戦 */
+    @Excel(name = "宸蹭粯閲戦")
+
+        @TableField("paid_amount")
+    private BigDecimal paidAmount;
+
+
+    /** 寰呬粯閲戦 */
+    @Excel(name = "寰呬粯閲戦")
+
+        @TableField("pending_amount")
+    private BigDecimal pendingAmount;
+
+
+    /** 姹囩巼锛堟腐甯佸厬浜烘皯甯侊級 */
+    @Excel(name = "姹囩巼", readConverterExp = "娓�=甯佸厬浜烘皯甯�")
+
+        @TableField("exchange_rate")
+    private BigDecimal exchangeRate;
+
+
+    /** 浜烘皯甯侀噾棰� */
+    @Excel(name = "浜烘皯甯侀噾棰�")
+
+        @TableField("cny_amount")
+    private BigDecimal cnyAmount;
+
+
+    /** 鍛ㄦ湡绫诲瀷 */
+    @Excel(name = "鍛ㄦ湡绫诲瀷")
+
+        @TableField("period_type")
+    private String periodType;
+
+
+    /** 涓氬姟鏈熼棿寮�濮嬫棩鏈� */
+    @Excel(name = "涓氬姟鏈熼棿寮�濮嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("business_start_date")
+    private Date businessStartDate;
+
+
+    /** 涓氬姟鏈熼棿缁撴潫鏃ユ湡 */
+    @Excel(name = "涓氬姟鏈熼棿缁撴潫鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("business_end_date")
+    private Date businessEndDate;
+
+
+    /** 璐︽湡寮�濮嬫棩鏈� */
+    @Excel(name = "璐︽湡寮�濮嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("billing_start_date")
+    private Date billingStartDate;
+
+
+    /** 璐︽湡缁撴潫鏃ユ湡 */
+    @Excel(name = "璐︽湡缁撴潫鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("billing_end_date")
+    private Date billingEndDate;
+
+
+    /** 璐﹀崟鐢熸垚鏃ユ湡 */
+    @Excel(name = "璐﹀崟鐢熸垚鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("bill_generate_date")
+    private Date billGenerateDate;
+
+
+    /** 璐﹀崟鍙戦�佹棩鏈� */
+    @Excel(name = "璐﹀崟鍙戦�佹棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("bill_send_date")
+    private Date billSendDate;
+
+
+    /** 璐﹀崟鍒版湡鏃ユ湡 */
+    @Excel(name = "璐﹀崟鍒版湡鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("bill_due_date")
+    private Date billDueDate;
+
+
+    /** 鐘舵�� */
+    @Excel(name = "鐘舵��")
+
+        @TableField("status")
+    private String status;
+
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+
+        @TableField("remark")
+    private String remark;
+
+
+    /** 鍒涘缓浜� */
+        @TableField("create_by")
+    private String createBy;
+
+
+    /** 鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("create_time")
+    private Date createTime;
+
+
+    /** 鏇存柊浜� */
+        @TableField("update_by")
+    private String updateBy;
+
+
+    /** 鏇存柊鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("update_time")
+    private Date updateTime;
+
+
+    /** 鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎) */
+    @Excel(name = "鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)")
+
+        @TableField("deleted")
+    private Integer deleted;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillSettlementDetail.java b/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillSettlementDetail.java
new file mode 100644
index 0000000..798fda3
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/PayableBillSettlementDetail.java
@@ -0,0 +1,125 @@
+package com.ruoyi.cwgl.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import lombok.Data;
+/**
+ * 搴斾粯璐﹀崟缁撶畻鏄庣粏瀵硅薄 payable_bill_settlement_detail
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Data
+public class PayableBillSettlementDetail{
+
+
+    /** ID */
+        @TableField("id")
+    private Integer id;
+
+
+    /** 搴斾粯璐﹀崟ID */
+    @Excel(name = "搴斾粯璐﹀崟ID")
+
+        @TableField("bill_id")
+    private Integer billId;
+
+
+    /** 缁撶畻鏂瑰紡 */
+    @Excel(name = "缁撶畻鏂瑰紡")
+
+        @TableField("settlement_method")
+    private String settlementMethod;
+
+
+    /** 浠樻璐︽埛寮�鎴疯 */
+    @Excel(name = "浠樻璐︽埛寮�鎴疯")
+
+        @TableField("payment_bank")
+    private String paymentBank;
+
+
+    /** 浠樻璐︽埛閾惰璐﹀彿 */
+    @Excel(name = "浠樻璐︽埛閾惰璐﹀彿")
+
+        @TableField("payment_bank_account")
+    private String paymentBankAccount;
+
+
+    /** 渚涘簲鍟嗘敹娆鹃摱琛岃处鎴� */
+    @Excel(name = "渚涘簲鍟嗘敹娆鹃摱琛岃处鎴�")
+
+        @TableField("supplier_receiving_account")
+    private String supplierReceivingAccount;
+
+
+    /** 渚涘簲鍟嗘敹娆捐处鎴峰紑鎴疯 */
+    @Excel(name = "渚涘簲鍟嗘敹娆捐处鎴峰紑鎴疯")
+
+        @TableField("supplier_receiving_bank")
+    private String supplierReceivingBank;
+
+
+    /** 浠樻鏃ユ湡 */
+    @Excel(name = "浠樻鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("payment_date")
+    private Date paymentDate;
+
+
+    /** 浠樻閲戦 */
+    @Excel(name = "浠樻閲戦")
+
+        @TableField("payment_amount")
+    private BigDecimal paymentAmount;
+
+
+    /** 浠樻鍚庡緟浠橀噾棰� */
+    @Excel(name = "浠樻鍚庡緟浠橀噾棰�")
+
+        @TableField("remaining_pending_amount")
+    private BigDecimal remainingPendingAmount;
+
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+
+        @TableField("remark")
+    private String remark;
+
+
+    /** 鍒涘缓浜� */
+        @TableField("create_by")
+    private String createBy;
+
+
+    /** 鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("create_time")
+    private Date createTime;
+
+
+    /** 鏇存柊浜� */
+        @TableField("update_by")
+    private String updateBy;
+
+
+    /** 鏇存柊鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("update_time")
+    private Date updateTime;
+
+
+    /** 鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎) */
+    @Excel(name = "鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)")
+
+        @TableField("deleted")
+    private Integer deleted;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/PayableFeeDetail.java b/service/src/main/java/com/ruoyi/cwgl/domain/PayableFeeDetail.java
index bb827b5..8a91aee 100644
--- a/service/src/main/java/com/ruoyi/cwgl/domain/PayableFeeDetail.java
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/PayableFeeDetail.java
@@ -105,7 +105,7 @@
 
 
     /** 鍒涘缓鏃堕棿 */
-        @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         @TableField("create_time")
     private Date createTime;
 
@@ -116,7 +116,7 @@
 
 
     /** 鏇存柊鏃堕棿 */
-        @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         @TableField("update_time")
     private Date updateTime;
 
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java b/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java
new file mode 100644
index 0000000..47ef144
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillManagement.java
@@ -0,0 +1,222 @@
+package com.ruoyi.cwgl.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import lombok.Data;
+/**
+ * 搴旀敹璐﹀崟绠$悊瀵硅薄 receivable_bill_management
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Data
+public class ReceivableBillManagement{
+
+
+    /** ID */
+        @TableField("id")
+    private Integer id;
+
+
+    /** 绯荤粺缂栧彿 */
+    @Excel(name = "绯荤粺缂栧彿")
+
+        @TableField("system_no")
+    private String systemNo;
+
+
+    /** 璐﹀崟鍚嶇О */
+    @Excel(name = "璐﹀崟鍚嶇О")
+
+        @TableField("bill_name")
+    private String billName;
+
+
+    /** 瀹㈡埛鍚嶇О */
+    @Excel(name = "瀹㈡埛鍚嶇О")
+
+        @TableField("customer_name")
+    private String customerName;
+
+
+    /** 鏄惁鍐呴儴缁撶畻 */
+    @Excel(name = "鏄惁鍐呴儴缁撶畻")
+
+        @TableField("is_internal_settlement")
+    private String isInternalSettlement;
+
+
+    /** 鍐呴儴缁撶畻鍗曚綅 */
+    @Excel(name = "鍐呴儴缁撶畻鍗曚綅")
+
+        @TableField("internal_settlement_unit")
+    private String internalSettlementUnit;
+
+
+    /** 鍗曟嵁鏁伴噺 */
+    @Excel(name = "鍗曟嵁鏁伴噺")
+
+        @TableField("document_count")
+    private Integer documentCount;
+
+
+    /** 搴旂粨绠楅噾棰� */
+    @Excel(name = "搴旂粨绠楅噾棰�")
+
+        @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+
+    /** 甯佸埗 */
+    @Excel(name = "甯佸埗")
+
+        @TableField("currency")
+    private String currency;
+
+
+    /** 鍑忓厤閲戦 */
+    @Excel(name = "鍑忓厤閲戦")
+
+        @TableField("discount_amount")
+    private BigDecimal discountAmount;
+
+
+    /** 宸叉敹閲戦 */
+    @Excel(name = "宸叉敹閲戦")
+
+        @TableField("received_amount")
+    private BigDecimal receivedAmount;
+
+
+    /** 寰呮敹閲戦 */
+    @Excel(name = "寰呮敹閲戦")
+
+        @TableField("pending_amount")
+    private BigDecimal pendingAmount;
+
+
+    /** 姹囩巼锛堟腐甯佸厬浜烘皯甯侊級 */
+    @Excel(name = "姹囩巼", readConverterExp = "娓�=甯佸厬浜烘皯甯�")
+
+        @TableField("exchange_rate")
+    private BigDecimal exchangeRate;
+
+
+    /** 浜烘皯甯侀噾棰� */
+    @Excel(name = "浜烘皯甯侀噾棰�")
+
+        @TableField("cny_amount")
+    private BigDecimal cnyAmount;
+
+
+    /** 鍛ㄦ湡绫诲瀷 */
+    @Excel(name = "鍛ㄦ湡绫诲瀷")
+
+        @TableField("period_type")
+    private String periodType;
+
+
+    /** 涓氬姟鏈熼棿寮�濮嬫棩鏈� */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "涓氬姟鏈熼棿寮�濮嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @TableField("business_start_date")
+    private Date businessStartDate;
+
+
+    /** 涓氬姟鏈熼棿缁撴潫鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "涓氬姟鏈熼棿缁撴潫鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @TableField("business_end_date")
+    private Date businessEndDate;
+
+
+    /** 璐︽湡寮�濮嬫棩鏈� */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "璐︽湡寮�濮嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @TableField("billing_start_date")
+    private Date billingStartDate;
+
+
+    /** 璐︽湡缁撴潫鏃ユ湡 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "璐︽湡缁撴潫鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @TableField("billing_end_date")
+    private Date billingEndDate;
+
+
+    /** 璐﹀崟鐢熸垚鏃ユ湡 */
+    @Excel(name = "璐﹀崟鐢熸垚鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("bill_generate_date")
+    private Date billGenerateDate;
+
+
+    /** 璐﹀崟鍙戦�佹棩鏈� */
+    @Excel(name = "璐﹀崟鍙戦�佹棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("bill_send_date")
+    private Date billSendDate;
+
+
+    /** 璐﹀崟鍒版湡鏃ユ湡 */
+    @Excel(name = "璐﹀崟鍒版湡鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @TableField("bill_due_date")
+    private Date billDueDate;
+
+
+    /** 鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;partial_paid:閮ㄥ垎鏀舵;paid:宸叉敹娆�;cancelled:宸插彇娑�) */
+    @Excel(name = "鐘舵��")
+
+        @TableField("status")
+    private String status;
+
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+
+        @TableField("remark")
+    private String remark;
+
+
+    /** 鍒涘缓浜� */
+        @TableField("create_by")
+    private String createBy;
+
+
+    /** 鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("create_time")
+    private Date createTime;
+
+
+    /** 鏇存柊浜� */
+        @TableField("update_by")
+    private String updateBy;
+
+
+    /** 鏇存柊鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("update_time")
+    private Date updateTime;
+
+
+    /** 鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎) */
+    @Excel(name = "鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)")
+
+        @TableField("deleted")
+    private Integer deleted;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillSettlementDetail.java b/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillSettlementDetail.java
new file mode 100644
index 0000000..d530c3b
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/ReceivableBillSettlementDetail.java
@@ -0,0 +1,124 @@
+package com.ruoyi.cwgl.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import lombok.Data;
+/**
+ * 搴旀敹璐﹀崟缁撶畻鏄庣粏瀵硅薄 receivable_bill_settlement_detail
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Data
+public class ReceivableBillSettlementDetail{
+
+
+    /** ID */
+        @TableField("id")
+    private Integer id;
+
+
+    /** 搴旀敹璐﹀崟ID */
+    @Excel(name = "搴旀敹璐﹀崟ID")
+
+        @TableField("bill_id")
+    private Integer billId;
+
+
+    /** 缁撶畻鏂瑰紡 */
+    @Excel(name = "缁撶畻鏂瑰紡")
+
+        @TableField("settlement_method")
+    private String settlementMethod;
+
+
+    /** 瀹㈡埛寮�鎴疯 */
+    @Excel(name = "瀹㈡埛寮�鎴疯")
+
+        @TableField("customer_bank")
+    private String customerBank;
+
+
+    /** 瀹㈡埛閾惰璐﹀彿 */
+    @Excel(name = "瀹㈡埛閾惰璐﹀彿")
+
+        @TableField("customer_bank_account")
+    private String customerBankAccount;
+
+
+    /** 鏀舵閾惰璐︽埛 */
+    @Excel(name = "鏀舵閾惰璐︽埛")
+
+        @TableField("receiving_bank_account")
+    private String receivingBankAccount;
+
+
+    /** 鏀舵璐︽埛寮�鎴疯 */
+    @Excel(name = "鏀舵璐︽埛寮�鎴疯")
+
+        @TableField("receiving_bank")
+    private String receivingBank;
+
+
+    /** 鏀舵鏃ユ湡 */
+    @Excel(name = "鏀舵鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField("receipt_date")
+    private Date receiptDate;
+
+
+    /** 鏀舵閲戦 */
+    @Excel(name = "鏀舵閲戦")
+
+        @TableField("receipt_amount")
+    private BigDecimal receiptAmount;
+
+
+    /** 鏀舵鍚庡緟鏀堕噾棰� */
+    @Excel(name = "鏀舵鍚庡緟鏀堕噾棰�")
+
+        @TableField("remaining_pending_amount")
+    private BigDecimal remainingPendingAmount;
+
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+
+        @TableField("remark")
+    private String remark;
+
+
+    /** 鍒涘缓浜� */
+        @TableField("create_by")
+    private String createBy;
+
+
+    /** 鍒涘缓鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("create_time")
+    private Date createTime;
+
+
+    /** 鏇存柊浜� */
+        @TableField("update_by")
+    private String updateBy;
+
+
+    /** 鏇存柊鏃堕棿 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @TableField("update_time")
+    private Date updateTime;
+
+
+    /** 鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎) */
+    @Excel(name = "鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)")
+
+        @TableField("deleted")
+    private Integer deleted;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillManagementMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillManagementMapper.java
new file mode 100644
index 0000000..353067f
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillManagementMapper.java
@@ -0,0 +1,87 @@
+package com.ruoyi.cwgl.mapper;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.PayableBillManagement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * 搴斾粯璐﹀崟绠$悊Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface PayableBillManagementMapper  extends BaseMapper<PayableBillManagement>
+{
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊
+     * 
+     * @param id 搴斾粯璐﹀崟绠$悊ID
+     * @return 搴斾粯璐﹀崟绠$悊
+     */
+    public PayableBillManagement selectPayableBillManagementById(Integer id);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊 璁板綍鏁�
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    public int selectPayableBillManagementCount(PayableBillManagement payableBillManagement);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃
+     * 
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    public List<PayableBillManagement> selectPayableBillManagementList(PayableBillManagement payableBillManagement);
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊
+     * 
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertPayableBillManagement(PayableBillManagement payableBillManagement);
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param payableBillManagements 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertPayableBillManagementBatch(List<PayableBillManagement> payableBillManagements);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊
+     * 
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updatePayableBillManagement(PayableBillManagement payableBillManagement);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param payableBillManagements 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updatePayableBillManagementBatch(List<PayableBillManagement> payableBillManagements);
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟绠$悊
+     * 
+     * @param id 搴斾粯璐﹀崟绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillManagementById(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎搴斾粯璐﹀崟绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillManagementByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillSettlementDetailMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillSettlementDetailMapper.java
new file mode 100644
index 0000000..b6a3fa0
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/PayableBillSettlementDetailMapper.java
@@ -0,0 +1,87 @@
+package com.ruoyi.cwgl.mapper;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.PayableBillSettlementDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * 搴斾粯璐﹀崟缁撶畻鏄庣粏Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface PayableBillSettlementDetailMapper  extends BaseMapper<PayableBillSettlementDetail>
+{
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param id 搴斾粯璐﹀崟缁撶畻鏄庣粏ID
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    public PayableBillSettlementDetail selectPayableBillSettlementDetailById(Integer id);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏 璁板綍鏁�
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public int selectPayableBillSettlementDetailCount(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     * 
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public List<PayableBillSettlementDetail> selectPayableBillSettlementDetailList(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertPayableBillSettlementDetail(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param payableBillSettlementDetails 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertPayableBillSettlementDetailBatch(List<PayableBillSettlementDetail> payableBillSettlementDetails);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updatePayableBillSettlementDetail(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param payableBillSettlementDetails 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updatePayableBillSettlementDetailBatch(List<PayableBillSettlementDetail> payableBillSettlementDetails);
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param id 搴斾粯璐﹀崟缁撶畻鏄庣粏ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillSettlementDetailById(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillSettlementDetailByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillManagementMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillManagementMapper.java
new file mode 100644
index 0000000..5525c5b
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillManagementMapper.java
@@ -0,0 +1,87 @@
+package com.ruoyi.cwgl.mapper;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.ReceivableBillManagement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * 搴旀敹璐﹀崟绠$悊Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface ReceivableBillManagementMapper  extends BaseMapper<ReceivableBillManagement>
+{
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊
+     * 
+     * @param id 搴旀敹璐﹀崟绠$悊ID
+     * @return 搴旀敹璐﹀崟绠$悊
+     */
+    public ReceivableBillManagement selectReceivableBillManagementById(Integer id);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊 璁板綍鏁�
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    public int selectReceivableBillManagementCount(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃
+     * 
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    public List<ReceivableBillManagement> selectReceivableBillManagementList(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊
+     * 
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillManagement(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param receivableBillManagements 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillManagementBatch(List<ReceivableBillManagement> receivableBillManagements);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊
+     * 
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillManagement(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param receivableBillManagements 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillManagementBatch(List<ReceivableBillManagement> receivableBillManagements);
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟绠$悊
+     * 
+     * @param id 搴旀敹璐﹀崟绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillManagementById(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎搴旀敹璐﹀崟绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillManagementByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillSettlementDetailMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillSettlementDetailMapper.java
new file mode 100644
index 0000000..7e1be51
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/ReceivableBillSettlementDetailMapper.java
@@ -0,0 +1,87 @@
+package com.ruoyi.cwgl.mapper;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ * 搴旀敹璐﹀崟缁撶畻鏄庣粏Mapper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface ReceivableBillSettlementDetailMapper  extends BaseMapper<ReceivableBillSettlementDetail>
+{
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param id 搴旀敹璐﹀崟缁撶畻鏄庣粏ID
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    public ReceivableBillSettlementDetail selectReceivableBillSettlementDetailById(Integer id);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏 璁板綍鏁�
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public int selectReceivableBillSettlementDetailCount(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     * 
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public List<ReceivableBillSettlementDetail> selectReceivableBillSettlementDetailList(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillSettlementDetail(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param receivableBillSettlementDetails 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillSettlementDetailBatch(List<ReceivableBillSettlementDetail> receivableBillSettlementDetails);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillSettlementDetail(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param receivableBillSettlementDetails 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillSettlementDetailBatch(List<ReceivableBillSettlementDetail> receivableBillSettlementDetails);
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param id 搴旀敹璐﹀崟缁撶畻鏄庣粏ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillSettlementDetailById(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillSettlementDetailByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IPayableBillManagementService.java b/service/src/main/java/com/ruoyi/cwgl/service/IPayableBillManagementService.java
new file mode 100644
index 0000000..f51e471
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IPayableBillManagementService.java
@@ -0,0 +1,102 @@
+package com.ruoyi.cwgl.service;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.PayableBillManagement;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 搴斾粯璐﹀崟绠$悊Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface IPayableBillManagementService extends IService<PayableBillManagement>
+{
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊
+     * 
+     * @param id 搴斾粯璐﹀崟绠$悊ID
+     * @return 搴斾粯璐﹀崟绠$悊
+     */
+    public PayableBillManagement selectPayableBillManagementById(Integer id);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊 璁板綍鏁�
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    public int selectPayableBillManagementCount(PayableBillManagement payableBillManagement);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃
+     * 
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    public List<PayableBillManagement> selectPayableBillManagementList(PayableBillManagement payableBillManagement);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    public void export(PayableBillManagement payableBillManagement, String exportKey) ;
+
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊
+     * 
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertPayableBillManagement(PayableBillManagement payableBillManagement);
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param payableBillManagements 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertPayableBillManagementBatch(List<PayableBillManagement> payableBillManagements);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊
+     * 
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updatePayableBillManagement(PayableBillManagement payableBillManagement);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param payableBillManagements 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updatePayableBillManagementBatch(List<PayableBillManagement> payableBillManagements);
+    /**
+     * 鎵归噺鍒犻櫎搴斾粯璐﹀崟绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillManagementByIds(String ids);
+
+    /**
+     * 鎵归噺鍒犻櫎搴斾粯璐﹀崟绠$悊
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillManagementByIds(Integer[] ids);
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟绠$悊淇℃伅
+     * 
+     * @param id 搴斾粯璐﹀崟绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillManagementById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IPayableBillSettlementDetailService.java b/service/src/main/java/com/ruoyi/cwgl/service/IPayableBillSettlementDetailService.java
new file mode 100644
index 0000000..b2080cc
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IPayableBillSettlementDetailService.java
@@ -0,0 +1,102 @@
+package com.ruoyi.cwgl.service;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.PayableBillSettlementDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 搴斾粯璐﹀崟缁撶畻鏄庣粏Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface IPayableBillSettlementDetailService extends IService<PayableBillSettlementDetail>
+{
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param id 搴斾粯璐﹀崟缁撶畻鏄庣粏ID
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    public PayableBillSettlementDetail selectPayableBillSettlementDetailById(Integer id);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏 璁板綍鏁�
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public int selectPayableBillSettlementDetailCount(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     * 
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public List<PayableBillSettlementDetail> selectPayableBillSettlementDetailList(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public void export(PayableBillSettlementDetail payableBillSettlementDetail, String exportKey) ;
+
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertPayableBillSettlementDetail(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param payableBillSettlementDetails 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertPayableBillSettlementDetailBatch(List<PayableBillSettlementDetail> payableBillSettlementDetails);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updatePayableBillSettlementDetail(PayableBillSettlementDetail payableBillSettlementDetail);
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param payableBillSettlementDetails 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updatePayableBillSettlementDetailBatch(List<PayableBillSettlementDetail> payableBillSettlementDetails);
+    /**
+     * 鎵归噺鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillSettlementDetailByIds(String ids);
+
+    /**
+     * 鎵归噺鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillSettlementDetailByIds(Integer[] ids);
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏淇℃伅
+     * 
+     * @param id 搴斾粯璐﹀崟缁撶畻鏄庣粏ID
+     * @return 缁撴灉
+     */
+    public int deletePayableBillSettlementDetailById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillManagementService.java b/service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillManagementService.java
new file mode 100644
index 0000000..5defdfa
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillManagementService.java
@@ -0,0 +1,102 @@
+package com.ruoyi.cwgl.service;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.ReceivableBillManagement;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 搴旀敹璐﹀崟绠$悊Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface IReceivableBillManagementService extends IService<ReceivableBillManagement>
+{
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊
+     * 
+     * @param id 搴旀敹璐﹀崟绠$悊ID
+     * @return 搴旀敹璐﹀崟绠$悊
+     */
+    public ReceivableBillManagement selectReceivableBillManagementById(Integer id);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊 璁板綍鏁�
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    public int selectReceivableBillManagementCount(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃
+     * 
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    public List<ReceivableBillManagement> selectReceivableBillManagementList(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    public void export(ReceivableBillManagement receivableBillManagement, String exportKey) ;
+
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊
+     * 
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillManagement(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param receivableBillManagements 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillManagementBatch(List<ReceivableBillManagement> receivableBillManagements);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊
+     * 
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillManagement(ReceivableBillManagement receivableBillManagement);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param receivableBillManagements 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillManagementBatch(List<ReceivableBillManagement> receivableBillManagements);
+    /**
+     * 鎵归噺鍒犻櫎搴旀敹璐﹀崟绠$悊
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillManagementByIds(String ids);
+
+    /**
+     * 鎵归噺鍒犻櫎搴旀敹璐﹀崟绠$悊
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillManagementByIds(Integer[] ids);
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟绠$悊淇℃伅
+     * 
+     * @param id 搴旀敹璐﹀崟绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillManagementById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillSettlementDetailService.java b/service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillSettlementDetailService.java
new file mode 100644
index 0000000..6040be2
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IReceivableBillSettlementDetailService.java
@@ -0,0 +1,102 @@
+package com.ruoyi.cwgl.service;
+
+import java.util.List;
+import com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+/**
+ * 搴旀敹璐﹀崟缁撶畻鏄庣粏Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+public interface IReceivableBillSettlementDetailService extends IService<ReceivableBillSettlementDetail>
+{
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param id 搴旀敹璐﹀崟缁撶畻鏄庣粏ID
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    public ReceivableBillSettlementDetail selectReceivableBillSettlementDetailById(Integer id);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏 璁板綍鏁�
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public int selectReceivableBillSettlementDetailCount(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     * 
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public List<ReceivableBillSettlementDetail> selectReceivableBillSettlementDetailList(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    public void export(ReceivableBillSettlementDetail receivableBillSettlementDetail, String exportKey) ;
+
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillSettlementDetail(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param receivableBillSettlementDetails 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int insertReceivableBillSettlementDetailBatch(List<ReceivableBillSettlementDetail> receivableBillSettlementDetails);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillSettlementDetail(ReceivableBillSettlementDetail receivableBillSettlementDetail);
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param receivableBillSettlementDetails 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    public int updateReceivableBillSettlementDetailBatch(List<ReceivableBillSettlementDetail> receivableBillSettlementDetails);
+    /**
+     * 鎵归噺鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillSettlementDetailByIds(String ids);
+
+    /**
+     * 鎵归噺鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillSettlementDetailByIds(Integer[] ids);
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏淇℃伅
+     * 
+     * @param id 搴旀敹璐﹀崟缁撶畻鏄庣粏ID
+     * @return 缁撴灉
+     */
+    public int deleteReceivableBillSettlementDetailById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillManagementServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillManagementServiceImpl.java
new file mode 100644
index 0000000..0aa86b0
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillManagementServiceImpl.java
@@ -0,0 +1,182 @@
+package com.ruoyi.cwgl.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+import org.springframework.scheduling.annotation.Async;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.core.service.BaseService;
+
+import com.ruoyi.cwgl.mapper.PayableBillManagementMapper;
+import com.ruoyi.cwgl.domain.PayableBillManagement;
+import com.ruoyi.cwgl.service.IPayableBillManagementService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 搴斾粯璐﹀崟绠$悊Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class PayableBillManagementServiceImpl  extends BaseService<PayableBillManagementMapper, PayableBillManagement> implements IPayableBillManagementService
+{
+    protected final Logger logger = LoggerFactory.getLogger(getClass());
+    @Resource
+    private PayableBillManagementMapper payableBillManagementMapper;
+
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊
+     *
+     * @param id 搴斾粯璐﹀崟绠$悊ID
+     * @return 搴斾粯璐﹀崟绠$悊
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public PayableBillManagement selectPayableBillManagementById(Integer id)
+    {
+        return payableBillManagementMapper.selectPayableBillManagementById(id);
+    }
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊 璁板綍鏁�
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public int selectPayableBillManagementCount(PayableBillManagement payableBillManagement)
+    {
+        return payableBillManagementMapper.selectPayableBillManagementCount(payableBillManagement);
+    }
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 搴斾粯璐﹀崟绠$悊
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public List<PayableBillManagement> selectPayableBillManagementList(PayableBillManagement payableBillManagement)
+    {
+        return payableBillManagementMapper.selectPayableBillManagementList(payableBillManagement);
+    }
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴斾粯璐﹀崟绠$悊闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Async
+    @Override
+    public void export(PayableBillManagement payableBillManagement,String exportKey) {
+
+        super.export(PayableBillManagement.class,exportKey,"payableBillManagementData",(pageNum)->{
+            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+            return selectPayableBillManagementList(payableBillManagement);
+        });
+    }
+
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertPayableBillManagement(PayableBillManagement payableBillManagement)
+    {
+        payableBillManagement.setCreateTime(DateUtils.getNowDate());
+        return payableBillManagementMapper.insertPayableBillManagement(payableBillManagement);
+    }
+
+    /**
+     * 鏂板搴斾粯璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param payableBillManagements 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertPayableBillManagementBatch(List<PayableBillManagement> payableBillManagements)
+    {
+        int rows = payableBillManagementMapper.insertPayableBillManagementBatch(payableBillManagements);
+        return rows;
+    }
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊
+     *
+     * @param payableBillManagement 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int updatePayableBillManagement(PayableBillManagement payableBillManagement)
+    {
+        payableBillManagement.setUpdateTime(DateUtils.getNowDate());
+        return payableBillManagementMapper.updatePayableBillManagement(payableBillManagement);
+    }
+
+    /**
+     * 淇敼搴斾粯璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param payableBillManagements 搴斾粯璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int updatePayableBillManagementBatch(List<PayableBillManagement> payableBillManagements){
+        return payableBillManagementMapper.updatePayableBillManagementBatch(payableBillManagements);
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟绠$悊瀵硅薄
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePayableBillManagementByIds(String ids)
+    {
+        return deletePayableBillManagementByIds(Convert.toIntArray(ids));
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟绠$悊瀵硅薄
+     *
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePayableBillManagementByIds(Integer[] ids)
+    {
+        return payableBillManagementMapper.deletePayableBillManagementByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟绠$悊淇℃伅
+     *
+     * @param id 搴斾粯璐﹀崟绠$悊ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePayableBillManagementById(Integer id)
+    {
+        return payableBillManagementMapper.deletePayableBillManagementById(id);
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillSettlementDetailServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillSettlementDetailServiceImpl.java
new file mode 100644
index 0000000..05551bd
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/PayableBillSettlementDetailServiceImpl.java
@@ -0,0 +1,182 @@
+package com.ruoyi.cwgl.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+import org.springframework.scheduling.annotation.Async;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.core.service.BaseService;
+
+import com.ruoyi.cwgl.mapper.PayableBillSettlementDetailMapper;
+import com.ruoyi.cwgl.domain.PayableBillSettlementDetail;
+import com.ruoyi.cwgl.service.IPayableBillSettlementDetailService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 搴斾粯璐﹀崟缁撶畻鏄庣粏Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class PayableBillSettlementDetailServiceImpl  extends BaseService<PayableBillSettlementDetailMapper, PayableBillSettlementDetail> implements IPayableBillSettlementDetailService
+{
+    protected final Logger logger = LoggerFactory.getLogger(getClass());
+    @Resource
+    private PayableBillSettlementDetailMapper payableBillSettlementDetailMapper;
+
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param id 搴斾粯璐﹀崟缁撶畻鏄庣粏ID
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public PayableBillSettlementDetail selectPayableBillSettlementDetailById(Integer id)
+    {
+        return payableBillSettlementDetailMapper.selectPayableBillSettlementDetailById(id);
+    }
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏 璁板綍鏁�
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public int selectPayableBillSettlementDetailCount(PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        return payableBillSettlementDetailMapper.selectPayableBillSettlementDetailCount(payableBillSettlementDetail);
+    }
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public List<PayableBillSettlementDetail> selectPayableBillSettlementDetailList(PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        return payableBillSettlementDetailMapper.selectPayableBillSettlementDetailList(payableBillSettlementDetail);
+    }
+
+    /**
+     * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴斾粯璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Async
+    @Override
+    public void export(PayableBillSettlementDetail payableBillSettlementDetail,String exportKey) {
+
+        super.export(PayableBillSettlementDetail.class,exportKey,"payableBillSettlementDetailData",(pageNum)->{
+            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+            return selectPayableBillSettlementDetailList(payableBillSettlementDetail);
+        });
+    }
+
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertPayableBillSettlementDetail(PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        payableBillSettlementDetail.setCreateTime(DateUtils.getNowDate());
+        return payableBillSettlementDetailMapper.insertPayableBillSettlementDetail(payableBillSettlementDetail);
+    }
+
+    /**
+     * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param payableBillSettlementDetails 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertPayableBillSettlementDetailBatch(List<PayableBillSettlementDetail> payableBillSettlementDetails)
+    {
+        int rows = payableBillSettlementDetailMapper.insertPayableBillSettlementDetailBatch(payableBillSettlementDetails);
+        return rows;
+    }
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param payableBillSettlementDetail 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int updatePayableBillSettlementDetail(PayableBillSettlementDetail payableBillSettlementDetail)
+    {
+        payableBillSettlementDetail.setUpdateTime(DateUtils.getNowDate());
+        return payableBillSettlementDetailMapper.updatePayableBillSettlementDetail(payableBillSettlementDetail);
+    }
+
+    /**
+     * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param payableBillSettlementDetails 搴斾粯璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int updatePayableBillSettlementDetailBatch(List<PayableBillSettlementDetail> payableBillSettlementDetails){
+        return payableBillSettlementDetailMapper.updatePayableBillSettlementDetailBatch(payableBillSettlementDetails);
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏瀵硅薄
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePayableBillSettlementDetailByIds(String ids)
+    {
+        return deletePayableBillSettlementDetailByIds(Convert.toIntArray(ids));
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏瀵硅薄
+     *
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePayableBillSettlementDetailByIds(Integer[] ids)
+    {
+        return payableBillSettlementDetailMapper.deletePayableBillSettlementDetailByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏淇℃伅
+     *
+     * @param id 搴斾粯璐﹀崟缁撶畻鏄庣粏ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deletePayableBillSettlementDetailById(Integer id)
+    {
+        return payableBillSettlementDetailMapper.deletePayableBillSettlementDetailById(id);
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java
new file mode 100644
index 0000000..60e52b3
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java
@@ -0,0 +1,182 @@
+package com.ruoyi.cwgl.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+import org.springframework.scheduling.annotation.Async;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.core.service.BaseService;
+
+import com.ruoyi.cwgl.mapper.ReceivableBillManagementMapper;
+import com.ruoyi.cwgl.domain.ReceivableBillManagement;
+import com.ruoyi.cwgl.service.IReceivableBillManagementService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 搴旀敹璐﹀崟绠$悊Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ReceivableBillManagementServiceImpl  extends BaseService<ReceivableBillManagementMapper, ReceivableBillManagement> implements IReceivableBillManagementService
+{
+    protected final Logger logger = LoggerFactory.getLogger(getClass());
+    @Resource
+    private ReceivableBillManagementMapper receivableBillManagementMapper;
+
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊
+     *
+     * @param id 搴旀敹璐﹀崟绠$悊ID
+     * @return 搴旀敹璐﹀崟绠$悊
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public ReceivableBillManagement selectReceivableBillManagementById(Integer id)
+    {
+        return receivableBillManagementMapper.selectReceivableBillManagementById(id);
+    }
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊 璁板綍鏁�
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public int selectReceivableBillManagementCount(ReceivableBillManagement receivableBillManagement)
+    {
+        return receivableBillManagementMapper.selectReceivableBillManagementCount(receivableBillManagement);
+    }
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 搴旀敹璐﹀崟绠$悊
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public List<ReceivableBillManagement> selectReceivableBillManagementList(ReceivableBillManagement receivableBillManagement)
+    {
+        return receivableBillManagementMapper.selectReceivableBillManagementList(receivableBillManagement);
+    }
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Async
+    @Override
+    public void export(ReceivableBillManagement receivableBillManagement,String exportKey) {
+
+        super.export(ReceivableBillManagement.class,exportKey,"receivableBillManagementData",(pageNum)->{
+            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+            return selectReceivableBillManagementList(receivableBillManagement);
+        });
+    }
+
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertReceivableBillManagement(ReceivableBillManagement receivableBillManagement)
+    {
+        receivableBillManagement.setCreateTime(DateUtils.getNowDate());
+        return receivableBillManagementMapper.insertReceivableBillManagement(receivableBillManagement);
+    }
+
+    /**
+     * 鏂板搴旀敹璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param receivableBillManagements 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertReceivableBillManagementBatch(List<ReceivableBillManagement> receivableBillManagements)
+    {
+        int rows = receivableBillManagementMapper.insertReceivableBillManagementBatch(receivableBillManagements);
+        return rows;
+    }
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊
+     *
+     * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateReceivableBillManagement(ReceivableBillManagement receivableBillManagement)
+    {
+        receivableBillManagement.setUpdateTime(DateUtils.getNowDate());
+        return receivableBillManagementMapper.updateReceivableBillManagement(receivableBillManagement);
+    }
+
+    /**
+     * 淇敼搴旀敹璐﹀崟绠$悊[鎵归噺]
+     *
+     * @param receivableBillManagements 搴旀敹璐﹀崟绠$悊
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateReceivableBillManagementBatch(List<ReceivableBillManagement> receivableBillManagements){
+        return receivableBillManagementMapper.updateReceivableBillManagementBatch(receivableBillManagements);
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟绠$悊瀵硅薄
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteReceivableBillManagementByIds(String ids)
+    {
+        return deleteReceivableBillManagementByIds(Convert.toIntArray(ids));
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟绠$悊瀵硅薄
+     *
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteReceivableBillManagementByIds(Integer[] ids)
+    {
+        return receivableBillManagementMapper.deleteReceivableBillManagementByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟绠$悊淇℃伅
+     *
+     * @param id 搴旀敹璐﹀崟绠$悊ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteReceivableBillManagementById(Integer id)
+    {
+        return receivableBillManagementMapper.deleteReceivableBillManagementById(id);
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillSettlementDetailServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillSettlementDetailServiceImpl.java
new file mode 100644
index 0000000..75188ca
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillSettlementDetailServiceImpl.java
@@ -0,0 +1,182 @@
+package com.ruoyi.cwgl.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+import org.springframework.scheduling.annotation.Async;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.common.core.service.BaseService;
+
+import com.ruoyi.cwgl.mapper.ReceivableBillSettlementDetailMapper;
+import com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail;
+import com.ruoyi.cwgl.service.IReceivableBillSettlementDetailService;
+import com.ruoyi.common.core.text.Convert;
+
+/**
+ * 搴旀敹璐﹀崟缁撶畻鏄庣粏Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-12-17
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ReceivableBillSettlementDetailServiceImpl  extends BaseService<ReceivableBillSettlementDetailMapper, ReceivableBillSettlementDetail> implements IReceivableBillSettlementDetailService
+{
+    protected final Logger logger = LoggerFactory.getLogger(getClass());
+    @Resource
+    private ReceivableBillSettlementDetailMapper receivableBillSettlementDetailMapper;
+
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param id 搴旀敹璐﹀崟缁撶畻鏄庣粏ID
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public ReceivableBillSettlementDetail selectReceivableBillSettlementDetailById(Integer id)
+    {
+        return receivableBillSettlementDetailMapper.selectReceivableBillSettlementDetailById(id);
+    }
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏 璁板綍鏁�
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public int selectReceivableBillSettlementDetailCount(ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        return receivableBillSettlementDetailMapper.selectReceivableBillSettlementDetailCount(receivableBillSettlementDetail);
+    }
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Override
+    public List<ReceivableBillSettlementDetail> selectReceivableBillSettlementDetailList(ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        return receivableBillSettlementDetailMapper.selectReceivableBillSettlementDetailList(receivableBillSettlementDetail);
+    }
+
+    /**
+     * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃 寮傛 瀵煎嚭
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+     * @return 搴旀敹璐﹀崟缁撶畻鏄庣粏闆嗗悎
+     */
+    @DataSource(DataSourceType.SLAVE)
+    @Async
+    @Override
+    public void export(ReceivableBillSettlementDetail receivableBillSettlementDetail,String exportKey) {
+
+        super.export(ReceivableBillSettlementDetail.class,exportKey,"receivableBillSettlementDetailData",(pageNum)->{
+            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+            return selectReceivableBillSettlementDetailList(receivableBillSettlementDetail);
+        });
+    }
+
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertReceivableBillSettlementDetail(ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        receivableBillSettlementDetail.setCreateTime(DateUtils.getNowDate());
+        return receivableBillSettlementDetailMapper.insertReceivableBillSettlementDetail(receivableBillSettlementDetail);
+    }
+
+    /**
+     * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param receivableBillSettlementDetails 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertReceivableBillSettlementDetailBatch(List<ReceivableBillSettlementDetail> receivableBillSettlementDetails)
+    {
+        int rows = receivableBillSettlementDetailMapper.insertReceivableBillSettlementDetailBatch(receivableBillSettlementDetails);
+        return rows;
+    }
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏
+     *
+     * @param receivableBillSettlementDetail 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateReceivableBillSettlementDetail(ReceivableBillSettlementDetail receivableBillSettlementDetail)
+    {
+        receivableBillSettlementDetail.setUpdateTime(DateUtils.getNowDate());
+        return receivableBillSettlementDetailMapper.updateReceivableBillSettlementDetail(receivableBillSettlementDetail);
+    }
+
+    /**
+     * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏[鎵归噺]
+     *
+     * @param receivableBillSettlementDetails 搴旀敹璐﹀崟缁撶畻鏄庣粏
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateReceivableBillSettlementDetailBatch(List<ReceivableBillSettlementDetail> receivableBillSettlementDetails){
+        return receivableBillSettlementDetailMapper.updateReceivableBillSettlementDetailBatch(receivableBillSettlementDetails);
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏瀵硅薄
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteReceivableBillSettlementDetailByIds(String ids)
+    {
+        return deleteReceivableBillSettlementDetailByIds(Convert.toIntArray(ids));
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏瀵硅薄
+     *
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteReceivableBillSettlementDetailByIds(Integer[] ids)
+    {
+        return receivableBillSettlementDetailMapper.deleteReceivableBillSettlementDetailByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏淇℃伅
+     *
+     * @param id 搴旀敹璐﹀崟缁撶畻鏄庣粏ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteReceivableBillSettlementDetailById(Integer id)
+    {
+        return receivableBillSettlementDetailMapper.deleteReceivableBillSettlementDetailById(id);
+    }
+}
diff --git a/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml b/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml
new file mode 100644
index 0000000..8ef03e2
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/PayableBillManagementMapper.xml
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.cwgl.mapper.PayableBillManagementMapper">
+
+    <resultMap type="com.ruoyi.cwgl.domain.PayableBillManagement" id="PayableBillManagementResult">
+        <result property="id"    column="id"    />
+        <result property="systemNo"    column="system_no"    />
+        <result property="billName"    column="bill_name"    />
+        <result property="supplierName"    column="supplier_name"    />
+        <result property="isInternalSettlement"    column="is_internal_settlement"    />
+        <result property="internalSettlementUnit"    column="internal_settlement_unit"    />
+        <result property="documentCount"    column="document_count"    />
+        <result property="totalAmount"    column="total_amount"    />
+        <result property="currency"    column="currency"    />
+        <result property="discountAmount"    column="discount_amount"    />
+        <result property="paidAmount"    column="paid_amount"    />
+        <result property="pendingAmount"    column="pending_amount"    />
+        <result property="exchangeRate"    column="exchange_rate"    />
+        <result property="cnyAmount"    column="cny_amount"    />
+        <result property="periodType"    column="period_type"    />
+        <result property="businessStartDate"    column="business_start_date"    />
+        <result property="businessEndDate"    column="business_end_date"    />
+        <result property="billingStartDate"    column="billing_start_date"    />
+        <result property="billingEndDate"    column="billing_end_date"    />
+        <result property="billGenerateDate"    column="bill_generate_date"    />
+        <result property="billSendDate"    column="bill_send_date"    />
+        <result property="billDueDate"    column="bill_due_date"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="deleted"    column="deleted"    />
+    </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
+    </sql>
+    <sql id="selectPayableBillManagementVoCount">
+        select count(0) from payable_bill_management as thisTab
+    </sql>
+
+    <sql id="whereCondition">
+        <if test="systemNo != null  and systemNo != ''"> and thisTab.system_no = #{systemNo}</if>
+        <if test="billName != null  and billName != ''"> and  thisTab.bill_name like concat('%', #{billName}, '%')</if>
+        <if test="supplierName != null  and supplierName != ''"> and  thisTab.supplier_name like concat('%', #{supplierName}, '%')</if>
+        <if test="isInternalSettlement != null  and isInternalSettlement != ''"> and thisTab.is_internal_settlement = #{isInternalSettlement}</if>
+        <if test="internalSettlementUnit != null  and internalSettlementUnit != ''"> and thisTab.internal_settlement_unit = #{internalSettlementUnit}</if>
+        <if test="documentCount != null "> and thisTab.document_count = #{documentCount}</if>
+        <if test="totalAmount != null "> and thisTab.total_amount = #{totalAmount}</if>
+        <if test="currency != null  and currency != ''"> and thisTab.currency = #{currency}</if>
+        <if test="discountAmount != null "> and thisTab.discount_amount = #{discountAmount}</if>
+        <if test="paidAmount != null "> and thisTab.paid_amount = #{paidAmount}</if>
+        <if test="pendingAmount != null "> and thisTab.pending_amount = #{pendingAmount}</if>
+        <if test="exchangeRate != null "> and thisTab.exchange_rate = #{exchangeRate}</if>
+        <if test="cnyAmount != null "> and thisTab.cny_amount = #{cnyAmount}</if>
+        <if test="periodType != null  and periodType != ''"> and thisTab.period_type = #{periodType}</if>
+        <if test="businessStartDate != null "> and thisTab.business_start_date = #{businessStartDate}</if>
+        <if test="businessEndDate != null "> and thisTab.business_end_date = #{businessEndDate}</if>
+        <if test="billingStartDate != null "> and thisTab.billing_start_date = #{billingStartDate}</if>
+        <if test="billingEndDate != null "> and thisTab.billing_end_date = #{billingEndDate}</if>
+        <if test="billGenerateDate != null "> and thisTab.bill_generate_date = #{billGenerateDate}</if>
+        <if test="billSendDate != null "> and thisTab.bill_send_date = #{billSendDate}</if>
+        <if test="billDueDate != null "> and thisTab.bill_due_date = #{billDueDate}</if>
+        <if test="status != null  and status != ''"> and thisTab.status = #{status}</if>
+        <if test="deleted != null "> and thisTab.deleted = #{deleted}</if>
+    </sql>
+
+    <!--鏌ヨ-->
+    <select id="selectPayableBillManagementById" parameterType="Integer" resultMap="PayableBillManagementResult">
+        <include refid="selectPayableBillManagementVo"/>
+        where id = #{id}
+    </select>
+
+    <select id="selectPayableBillManagementCount" parameterType="com.ruoyi.cwgl.domain.PayableBillManagement" resultType="int">
+        <include refid="selectPayableBillManagementVoCount"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+    </select>
+
+    <select id="selectPayableBillManagementList" parameterType="com.ruoyi.cwgl.domain.PayableBillManagement" resultMap="PayableBillManagementResult">
+        <include refid="selectPayableBillManagementVo"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+        order by thisTab.id desc
+    </select>
+
+    <!-- 鏂板 -->
+    <insert id="insertPayableBillManagement" parameterType="com.ruoyi.cwgl.domain.PayableBillManagement"  useGeneratedKeys="true" keyProperty="id">
+        insert into payable_bill_management
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="systemNo != null and systemNo != ''">system_no,</if>
+            <if test="billName != null and billName != ''">bill_name,</if>
+            <if test="supplierName != null and supplierName != ''">supplier_name,</if>
+            <if test="isInternalSettlement != null and isInternalSettlement != ''">is_internal_settlement,</if>
+            <if test="internalSettlementUnit != null">internal_settlement_unit,</if>
+            <if test="documentCount != null">document_count,</if>
+            <if test="totalAmount != null">total_amount,</if>
+            <if test="currency != null">currency,</if>
+            <if test="discountAmount != null">discount_amount,</if>
+            <if test="paidAmount != null">paid_amount,</if>
+            <if test="pendingAmount != null">pending_amount,</if>
+            <if test="exchangeRate != null">exchange_rate,</if>
+            <if test="cnyAmount != null">cny_amount,</if>
+            <if test="periodType != null and periodType != ''">period_type,</if>
+            <if test="businessStartDate != null">business_start_date,</if>
+            <if test="businessEndDate != null">business_end_date,</if>
+            <if test="billingStartDate != null">billing_start_date,</if>
+            <if test="billingEndDate != null">billing_end_date,</if>
+            <if test="billGenerateDate != null">bill_generate_date,</if>
+            <if test="billSendDate != null">bill_send_date,</if>
+            <if test="billDueDate != null">bill_due_date,</if>
+            <if test="status != null">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="deleted != null">deleted,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="systemNo != null and systemNo != ''">#{systemNo},</if>
+            <if test="billName != null and billName != ''">#{billName},</if>
+            <if test="supplierName != null and supplierName != ''">#{supplierName},</if>
+            <if test="isInternalSettlement != null and isInternalSettlement != ''">#{isInternalSettlement},</if>
+            <if test="internalSettlementUnit != null">#{internalSettlementUnit},</if>
+            <if test="documentCount != null">#{documentCount},</if>
+            <if test="totalAmount != null">#{totalAmount},</if>
+            <if test="currency != null">#{currency},</if>
+            <if test="discountAmount != null">#{discountAmount},</if>
+            <if test="paidAmount != null">#{paidAmount},</if>
+            <if test="pendingAmount != null">#{pendingAmount},</if>
+            <if test="exchangeRate != null">#{exchangeRate},</if>
+            <if test="cnyAmount != null">#{cnyAmount},</if>
+            <if test="periodType != null and periodType != ''">#{periodType},</if>
+            <if test="businessStartDate != null">#{businessStartDate},</if>
+            <if test="businessEndDate != null">#{businessEndDate},</if>
+            <if test="billingStartDate != null">#{billingStartDate},</if>
+            <if test="billingEndDate != null">#{billingEndDate},</if>
+            <if test="billGenerateDate != null">#{billGenerateDate},</if>
+            <if test="billSendDate != null">#{billSendDate},</if>
+            <if test="billDueDate != null">#{billDueDate},</if>
+            <if test="status != null">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="deleted != null">#{deleted},</if>
+         </trim>
+    </insert>
+
+    <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,
+        </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},
+            </trim>
+        </foreach>
+    </insert>
+
+    <!-- 淇敼 -->
+    <update id="updatePayableBillManagement" parameterType="com.ruoyi.cwgl.domain.PayableBillManagement">
+        update payable_bill_management
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="systemNo != null and systemNo != ''">system_no = #{systemNo},</if>
+            <if test="billName != null and billName != ''">bill_name = #{billName},</if>
+            <if test="supplierName != null and supplierName != ''">supplier_name = #{supplierName},</if>
+            <if test="isInternalSettlement != null and isInternalSettlement != ''">is_internal_settlement = #{isInternalSettlement},</if>
+            <if test="internalSettlementUnit != null">internal_settlement_unit = #{internalSettlementUnit},</if>
+            <if test="documentCount != null">document_count = #{documentCount},</if>
+            <if test="totalAmount != null">total_amount = #{totalAmount},</if>
+            <if test="currency != null">currency = #{currency},</if>
+            <if test="discountAmount != null">discount_amount = #{discountAmount},</if>
+            <if test="paidAmount != null">paid_amount = #{paidAmount},</if>
+            <if test="pendingAmount != null">pending_amount = #{pendingAmount},</if>
+            <if test="exchangeRate != null">exchange_rate = #{exchangeRate},</if>
+            <if test="cnyAmount != null">cny_amount = #{cnyAmount},</if>
+            <if test="periodType != null and periodType != ''">period_type = #{periodType},</if>
+            <if test="businessStartDate != null">business_start_date = #{businessStartDate},</if>
+            <if test="businessEndDate != null">business_end_date = #{businessEndDate},</if>
+            <if test="billingStartDate != null">billing_start_date = #{billingStartDate},</if>
+            <if test="billingEndDate != null">billing_end_date = #{billingEndDate},</if>
+            <if test="billGenerateDate != null">bill_generate_date = #{billGenerateDate},</if>
+            <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="remark != null">remark = #{remark},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="deleted != null">deleted = #{deleted},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <!-- 淇敼 -->
+    <update id="updatePayableBillManagementBatch" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update payable_bill_management
+            <trim prefix="SET" suffixOverrides=",">
+                <if test="item.systemNo != null and item.systemNo != ''">system_no = #{item.systemNo},</if>
+                <if test="item.billName != null and item.billName != ''">bill_name = #{item.billName},</if>
+                <if test="item.supplierName != null and item.supplierName != ''">supplier_name = #{item.supplierName},</if>
+                <if test="item.isInternalSettlement != null and item.isInternalSettlement != ''">is_internal_settlement = #{item.isInternalSettlement},</if>
+                <if test="item.internalSettlementUnit != null">internal_settlement_unit = #{item.internalSettlementUnit},</if>
+                <if test="item.documentCount != null">document_count = #{item.documentCount},</if>
+                <if test="item.totalAmount != null">total_amount = #{item.totalAmount},</if>
+                <if test="item.currency != null">currency = #{item.currency},</if>
+                <if test="item.discountAmount != null">discount_amount = #{item.discountAmount},</if>
+                <if test="item.paidAmount != null">paid_amount = #{item.paidAmount},</if>
+                <if test="item.pendingAmount != null">pending_amount = #{item.pendingAmount},</if>
+                <if test="item.exchangeRate != null">exchange_rate = #{item.exchangeRate},</if>
+                <if test="item.cnyAmount != null">cny_amount = #{item.cnyAmount},</if>
+                <if test="item.periodType != null and item.periodType != ''">period_type = #{item.periodType},</if>
+                <if test="item.businessStartDate != null">business_start_date = #{item.businessStartDate},</if>
+                <if test="item.businessEndDate != null">business_end_date = #{item.businessEndDate},</if>
+                <if test="item.billingStartDate != null">billing_start_date = #{item.billingStartDate},</if>
+                <if test="item.billingEndDate != null">billing_end_date = #{item.billingEndDate},</if>
+                <if test="item.billGenerateDate != null">bill_generate_date = #{item.billGenerateDate},</if>
+                <if test="item.billSendDate != null">bill_send_date = #{item.billSendDate},</if>
+                <if test="item.billDueDate != null">bill_due_date = #{item.billDueDate},</if>
+                <if test="item.status != null">status = #{item.status},</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>
+                <if test="item.updateBy != null">update_by = #{item.updateBy},</if>
+                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
+                <if test="item.deleted != null">deleted = #{item.deleted},</if>
+            </trim>
+        where id = #{item.id}
+        </foreach>
+    </update>
+
+    <!--鍒犻櫎-->
+    <delete id="deletePayableBillManagementById" parameterType="Integer">
+        delete from payable_bill_management where id = #{id}
+    </delete>
+    <delete id="deletePayableBillManagementByIds" parameterType="Integer">
+        delete from payable_bill_management where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/service/src/main/resources/mapper/cwgl/PayableBillSettlementDetailMapper.xml b/service/src/main/resources/mapper/cwgl/PayableBillSettlementDetailMapper.xml
new file mode 100644
index 0000000..f0a0761
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/PayableBillSettlementDetailMapper.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.cwgl.mapper.PayableBillSettlementDetailMapper">
+
+    <resultMap type="com.ruoyi.cwgl.domain.PayableBillSettlementDetail" id="PayableBillSettlementDetailResult">
+        <result property="id"    column="id"    />
+        <result property="billId"    column="bill_id"    />
+        <result property="settlementMethod"    column="settlement_method"    />
+        <result property="paymentBank"    column="payment_bank"    />
+        <result property="paymentBankAccount"    column="payment_bank_account"    />
+        <result property="supplierReceivingAccount"    column="supplier_receiving_account"    />
+        <result property="supplierReceivingBank"    column="supplier_receiving_bank"    />
+        <result property="paymentDate"    column="payment_date"    />
+        <result property="paymentAmount"    column="payment_amount"    />
+        <result property="remainingPendingAmount"    column="remaining_pending_amount"    />
+        <result property="remark"    column="remark"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="deleted"    column="deleted"    />
+    </resultMap>
+
+    <sql id="selectPayableBillSettlementDetailVo">
+        select thisTab.id, thisTab.bill_id, thisTab.settlement_method, thisTab.payment_bank, thisTab.payment_bank_account, thisTab.supplier_receiving_account, thisTab.supplier_receiving_bank, thisTab.payment_date, thisTab.payment_amount, thisTab.remaining_pending_amount, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.deleted from payable_bill_settlement_detail AS thisTab
+    </sql>
+    <sql id="selectPayableBillSettlementDetailVoCount">
+        select count(0) from payable_bill_settlement_detail as thisTab
+    </sql>
+
+    <sql id="whereCondition">
+        <if test="billId != null "> and thisTab.bill_id = #{billId}</if>
+        <if test="settlementMethod != null  and settlementMethod != ''"> and thisTab.settlement_method = #{settlementMethod}</if>
+        <if test="paymentBank != null  and paymentBank != ''"> and thisTab.payment_bank = #{paymentBank}</if>
+        <if test="paymentBankAccount != null  and paymentBankAccount != ''"> and thisTab.payment_bank_account = #{paymentBankAccount}</if>
+        <if test="supplierReceivingAccount != null  and supplierReceivingAccount != ''"> and thisTab.supplier_receiving_account = #{supplierReceivingAccount}</if>
+        <if test="supplierReceivingBank != null  and supplierReceivingBank != ''"> and thisTab.supplier_receiving_bank = #{supplierReceivingBank}</if>
+        <if test="paymentDate != null "> and thisTab.payment_date = #{paymentDate}</if>
+        <if test="paymentAmount != null "> and thisTab.payment_amount = #{paymentAmount}</if>
+        <if test="remainingPendingAmount != null "> and thisTab.remaining_pending_amount = #{remainingPendingAmount}</if>
+        <if test="deleted != null "> and thisTab.deleted = #{deleted}</if>
+    </sql>
+
+    <!--鏌ヨ-->
+    <select id="selectPayableBillSettlementDetailById" parameterType="Integer" resultMap="PayableBillSettlementDetailResult">
+        <include refid="selectPayableBillSettlementDetailVo"/>
+        where id = #{id}
+    </select>
+
+    <select id="selectPayableBillSettlementDetailCount" parameterType="com.ruoyi.cwgl.domain.PayableBillSettlementDetail" resultType="int">
+        <include refid="selectPayableBillSettlementDetailVoCount"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+    </select>
+
+    <select id="selectPayableBillSettlementDetailList" parameterType="com.ruoyi.cwgl.domain.PayableBillSettlementDetail" resultMap="PayableBillSettlementDetailResult">
+        <include refid="selectPayableBillSettlementDetailVo"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+        order by thisTab.id desc
+    </select>
+
+    <!-- 鏂板 -->
+    <insert id="insertPayableBillSettlementDetail" parameterType="com.ruoyi.cwgl.domain.PayableBillSettlementDetail"  useGeneratedKeys="true" keyProperty="id">
+        insert into payable_bill_settlement_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="billId != null">bill_id,</if>
+            <if test="settlementMethod != null and settlementMethod != ''">settlement_method,</if>
+            <if test="paymentBank != null">payment_bank,</if>
+            <if test="paymentBankAccount != null">payment_bank_account,</if>
+            <if test="supplierReceivingAccount != null">supplier_receiving_account,</if>
+            <if test="supplierReceivingBank != null">supplier_receiving_bank,</if>
+            <if test="paymentDate != null">payment_date,</if>
+            <if test="paymentAmount != null">payment_amount,</if>
+            <if test="remainingPendingAmount != null">remaining_pending_amount,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="deleted != null">deleted,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="billId != null">#{billId},</if>
+            <if test="settlementMethod != null and settlementMethod != ''">#{settlementMethod},</if>
+            <if test="paymentBank != null">#{paymentBank},</if>
+            <if test="paymentBankAccount != null">#{paymentBankAccount},</if>
+            <if test="supplierReceivingAccount != null">#{supplierReceivingAccount},</if>
+            <if test="supplierReceivingBank != null">#{supplierReceivingBank},</if>
+            <if test="paymentDate != null">#{paymentDate},</if>
+            <if test="paymentAmount != null">#{paymentAmount},</if>
+            <if test="remainingPendingAmount != null">#{remainingPendingAmount},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="deleted != null">#{deleted},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertPayableBillSettlementDetailBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
+        insert into payable_bill_settlement_detail
+        <trim prefix="(" suffix=") values" suffixOverrides=",">
+            id,bill_id,settlement_method,payment_bank,payment_bank_account,supplier_receiving_account,supplier_receiving_bank,payment_date,payment_amount,remaining_pending_amount,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.billId},#{item.settlementMethod},#{item.paymentBank},#{item.paymentBankAccount},#{item.supplierReceivingAccount},#{item.supplierReceivingBank},#{item.paymentDate},#{item.paymentAmount},#{item.remainingPendingAmount},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
+            </trim>
+        </foreach>
+    </insert>
+
+    <!-- 淇敼 -->
+    <update id="updatePayableBillSettlementDetail" parameterType="com.ruoyi.cwgl.domain.PayableBillSettlementDetail">
+        update payable_bill_settlement_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="billId != null">bill_id = #{billId},</if>
+            <if test="settlementMethod != null and settlementMethod != ''">settlement_method = #{settlementMethod},</if>
+            <if test="paymentBank != null">payment_bank = #{paymentBank},</if>
+            <if test="paymentBankAccount != null">payment_bank_account = #{paymentBankAccount},</if>
+            <if test="supplierReceivingAccount != null">supplier_receiving_account = #{supplierReceivingAccount},</if>
+            <if test="supplierReceivingBank != null">supplier_receiving_bank = #{supplierReceivingBank},</if>
+            <if test="paymentDate != null">payment_date = #{paymentDate},</if>
+            <if test="paymentAmount != null">payment_amount = #{paymentAmount},</if>
+            <if test="remainingPendingAmount != null">remaining_pending_amount = #{remainingPendingAmount},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="deleted != null">deleted = #{deleted},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <!-- 淇敼 -->
+    <update id="updatePayableBillSettlementDetailBatch" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update payable_bill_settlement_detail
+            <trim prefix="SET" suffixOverrides=",">
+                <if test="item.billId != null">bill_id = #{item.billId},</if>
+                <if test="item.settlementMethod != null and item.settlementMethod != ''">settlement_method = #{item.settlementMethod},</if>
+                <if test="item.paymentBank != null">payment_bank = #{item.paymentBank},</if>
+                <if test="item.paymentBankAccount != null">payment_bank_account = #{item.paymentBankAccount},</if>
+                <if test="item.supplierReceivingAccount != null">supplier_receiving_account = #{item.supplierReceivingAccount},</if>
+                <if test="item.supplierReceivingBank != null">supplier_receiving_bank = #{item.supplierReceivingBank},</if>
+                <if test="item.paymentDate != null">payment_date = #{item.paymentDate},</if>
+                <if test="item.paymentAmount != null">payment_amount = #{item.paymentAmount},</if>
+                <if test="item.remainingPendingAmount != null">remaining_pending_amount = #{item.remainingPendingAmount},</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>
+                <if test="item.updateBy != null">update_by = #{item.updateBy},</if>
+                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
+                <if test="item.deleted != null">deleted = #{item.deleted},</if>
+            </trim>
+        where id = #{item.id}
+        </foreach>
+    </update>
+
+    <!--鍒犻櫎-->
+    <delete id="deletePayableBillSettlementDetailById" parameterType="Integer">
+        delete from payable_bill_settlement_detail where id = #{id}
+    </delete>
+    <delete id="deletePayableBillSettlementDetailByIds" parameterType="Integer">
+        delete from payable_bill_settlement_detail where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml b/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
new file mode 100644
index 0000000..c03086b
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/ReceivableBillManagementMapper.xml
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.cwgl.mapper.ReceivableBillManagementMapper">
+
+    <resultMap type="com.ruoyi.cwgl.domain.ReceivableBillManagement" id="ReceivableBillManagementResult">
+        <result property="id"    column="id"    />
+        <result property="systemNo"    column="system_no"    />
+        <result property="billName"    column="bill_name"    />
+        <result property="customerName"    column="customer_name"    />
+        <result property="isInternalSettlement"    column="is_internal_settlement"    />
+        <result property="internalSettlementUnit"    column="internal_settlement_unit"    />
+        <result property="documentCount"    column="document_count"    />
+        <result property="totalAmount"    column="total_amount"    />
+        <result property="currency"    column="currency"    />
+        <result property="discountAmount"    column="discount_amount"    />
+        <result property="receivedAmount"    column="received_amount"    />
+        <result property="pendingAmount"    column="pending_amount"    />
+        <result property="exchangeRate"    column="exchange_rate"    />
+        <result property="cnyAmount"    column="cny_amount"    />
+        <result property="periodType"    column="period_type"    />
+        <result property="businessStartDate"    column="business_start_date"    />
+        <result property="businessEndDate"    column="business_end_date"    />
+        <result property="billingStartDate"    column="billing_start_date"    />
+        <result property="billingEndDate"    column="billing_end_date"    />
+        <result property="billGenerateDate"    column="bill_generate_date"    />
+        <result property="billSendDate"    column="bill_send_date"    />
+        <result property="billDueDate"    column="bill_due_date"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="deleted"    column="deleted"    />
+    </resultMap>
+
+    <sql id="selectReceivableBillManagementVo">
+        select thisTab.id, thisTab.system_no, thisTab.bill_name, thisTab.customer_name, 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.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
+    </sql>
+
+    <sql id="whereCondition">
+        <if test="systemNo != null  and systemNo != ''"> and thisTab.system_no = #{systemNo}</if>
+        <if test="billName != null  and billName != ''"> and  thisTab.bill_name like concat('%', #{billName}, '%')</if>
+        <if test="customerName != null  and customerName != ''"> and  thisTab.customer_name like concat('%', #{customerName}, '%')</if>
+        <if test="isInternalSettlement != null  and isInternalSettlement != ''"> and thisTab.is_internal_settlement = #{isInternalSettlement}</if>
+        <if test="internalSettlementUnit != null  and internalSettlementUnit != ''"> and thisTab.internal_settlement_unit = #{internalSettlementUnit}</if>
+        <if test="documentCount != null "> and thisTab.document_count = #{documentCount}</if>
+        <if test="totalAmount != null "> and thisTab.total_amount = #{totalAmount}</if>
+        <if test="currency != null  and currency != ''"> and thisTab.currency = #{currency}</if>
+        <if test="discountAmount != null "> and thisTab.discount_amount = #{discountAmount}</if>
+        <if test="receivedAmount != null "> and thisTab.received_amount = #{receivedAmount}</if>
+        <if test="pendingAmount != null "> and thisTab.pending_amount = #{pendingAmount}</if>
+        <if test="exchangeRate != null "> and thisTab.exchange_rate = #{exchangeRate}</if>
+        <if test="cnyAmount != null "> and thisTab.cny_amount = #{cnyAmount}</if>
+        <if test="periodType != null  and periodType != ''"> and thisTab.period_type = #{periodType}</if>
+        <if test="businessStartDate != null "> and thisTab.business_start_date = #{businessStartDate}</if>
+        <if test="businessEndDate != null "> and thisTab.business_end_date = #{businessEndDate}</if>
+        <if test="billingStartDate != null "> and thisTab.billing_start_date = #{billingStartDate}</if>
+        <if test="billingEndDate != null "> and thisTab.billing_end_date = #{billingEndDate}</if>
+        <if test="billGenerateDate != null "> and thisTab.bill_generate_date = #{billGenerateDate}</if>
+        <if test="billSendDate != null "> and thisTab.bill_send_date = #{billSendDate}</if>
+        <if test="billDueDate != null "> and thisTab.bill_due_date = #{billDueDate}</if>
+        <if test="status != null  and status != ''"> and thisTab.status = #{status}</if>
+        <if test="deleted != null "> and thisTab.deleted = #{deleted}</if>
+    </sql>
+
+    <!--鏌ヨ-->
+    <select id="selectReceivableBillManagementById" parameterType="Integer" resultMap="ReceivableBillManagementResult">
+        <include refid="selectReceivableBillManagementVo"/>
+        where id = #{id}
+    </select>
+
+    <select id="selectReceivableBillManagementCount" parameterType="com.ruoyi.cwgl.domain.ReceivableBillManagement" resultType="int">
+        <include refid="selectReceivableBillManagementVoCount"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+    </select>
+
+    <select id="selectReceivableBillManagementList" parameterType="com.ruoyi.cwgl.domain.ReceivableBillManagement" resultMap="ReceivableBillManagementResult">
+        <include refid="selectReceivableBillManagementVo"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+        order by thisTab.id desc
+    </select>
+
+    <!-- 鏂板 -->
+    <insert id="insertReceivableBillManagement" parameterType="com.ruoyi.cwgl.domain.ReceivableBillManagement"  useGeneratedKeys="true" keyProperty="id">
+        insert into receivable_bill_management
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="systemNo != null and systemNo != ''">system_no,</if>
+            <if test="billName != null and billName != ''">bill_name,</if>
+            <if test="customerName != null and customerName != ''">customer_name,</if>
+            <if test="isInternalSettlement != null and isInternalSettlement != ''">is_internal_settlement,</if>
+            <if test="internalSettlementUnit != null">internal_settlement_unit,</if>
+            <if test="documentCount != null">document_count,</if>
+            <if test="totalAmount != null">total_amount,</if>
+            <if test="currency != null">currency,</if>
+            <if test="discountAmount != null">discount_amount,</if>
+            <if test="receivedAmount != null">received_amount,</if>
+            <if test="pendingAmount != null">pending_amount,</if>
+            <if test="exchangeRate != null">exchange_rate,</if>
+            <if test="cnyAmount != null">cny_amount,</if>
+            <if test="periodType != null and periodType != ''">period_type,</if>
+            <if test="businessStartDate != null">business_start_date,</if>
+            <if test="businessEndDate != null">business_end_date,</if>
+            <if test="billingStartDate != null">billing_start_date,</if>
+            <if test="billingEndDate != null">billing_end_date,</if>
+            <if test="billGenerateDate != null">bill_generate_date,</if>
+            <if test="billSendDate != null">bill_send_date,</if>
+            <if test="billDueDate != null">bill_due_date,</if>
+            <if test="status != null">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="deleted != null">deleted,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="systemNo != null and systemNo != ''">#{systemNo},</if>
+            <if test="billName != null and billName != ''">#{billName},</if>
+            <if test="customerName != null and customerName != ''">#{customerName},</if>
+            <if test="isInternalSettlement != null and isInternalSettlement != ''">#{isInternalSettlement},</if>
+            <if test="internalSettlementUnit != null">#{internalSettlementUnit},</if>
+            <if test="documentCount != null">#{documentCount},</if>
+            <if test="totalAmount != null">#{totalAmount},</if>
+            <if test="currency != null">#{currency},</if>
+            <if test="discountAmount != null">#{discountAmount},</if>
+            <if test="receivedAmount != null">#{receivedAmount},</if>
+            <if test="pendingAmount != null">#{pendingAmount},</if>
+            <if test="exchangeRate != null">#{exchangeRate},</if>
+            <if test="cnyAmount != null">#{cnyAmount},</if>
+            <if test="periodType != null and periodType != ''">#{periodType},</if>
+            <if test="businessStartDate != null">#{businessStartDate},</if>
+            <if test="businessEndDate != null">#{businessEndDate},</if>
+            <if test="billingStartDate != null">#{billingStartDate},</if>
+            <if test="billingEndDate != null">#{billingEndDate},</if>
+            <if test="billGenerateDate != null">#{billGenerateDate},</if>
+            <if test="billSendDate != null">#{billSendDate},</if>
+            <if test="billDueDate != null">#{billDueDate},</if>
+            <if test="status != null">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="deleted != null">#{deleted},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertReceivableBillManagementBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
+        insert into receivable_bill_management
+        <trim prefix="(" suffix=") values" suffixOverrides=",">
+            id,system_no,bill_name,customer_name,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,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.customerName},#{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.status},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
+            </trim>
+        </foreach>
+    </insert>
+
+    <!-- 淇敼 -->
+    <update id="updateReceivableBillManagement" parameterType="com.ruoyi.cwgl.domain.ReceivableBillManagement">
+        update receivable_bill_management
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="systemNo != null and systemNo != ''">system_no = #{systemNo},</if>
+            <if test="billName != null and billName != ''">bill_name = #{billName},</if>
+            <if test="customerName != null and customerName != ''">customer_name = #{customerName},</if>
+            <if test="isInternalSettlement != null and isInternalSettlement != ''">is_internal_settlement = #{isInternalSettlement},</if>
+            <if test="internalSettlementUnit != null">internal_settlement_unit = #{internalSettlementUnit},</if>
+            <if test="documentCount != null">document_count = #{documentCount},</if>
+            <if test="totalAmount != null">total_amount = #{totalAmount},</if>
+            <if test="currency != null">currency = #{currency},</if>
+            <if test="discountAmount != null">discount_amount = #{discountAmount},</if>
+            <if test="receivedAmount != null">received_amount = #{receivedAmount},</if>
+            <if test="pendingAmount != null">pending_amount = #{pendingAmount},</if>
+            <if test="exchangeRate != null">exchange_rate = #{exchangeRate},</if>
+            <if test="cnyAmount != null">cny_amount = #{cnyAmount},</if>
+            <if test="periodType != null and periodType != ''">period_type = #{periodType},</if>
+            <if test="businessStartDate != null">business_start_date = #{businessStartDate},</if>
+            <if test="businessEndDate != null">business_end_date = #{businessEndDate},</if>
+            <if test="billingStartDate != null">billing_start_date = #{billingStartDate},</if>
+            <if test="billingEndDate != null">billing_end_date = #{billingEndDate},</if>
+            <if test="billGenerateDate != null">bill_generate_date = #{billGenerateDate},</if>
+            <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="remark != null">remark = #{remark},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="deleted != null">deleted = #{deleted},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <!-- 淇敼 -->
+    <update id="updateReceivableBillManagementBatch" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update receivable_bill_management
+            <trim prefix="SET" suffixOverrides=",">
+                <if test="item.systemNo != null and item.systemNo != ''">system_no = #{item.systemNo},</if>
+                <if test="item.billName != null and item.billName != ''">bill_name = #{item.billName},</if>
+                <if test="item.customerName != null and item.customerName != ''">customer_name = #{item.customerName},</if>
+                <if test="item.isInternalSettlement != null and item.isInternalSettlement != ''">is_internal_settlement = #{item.isInternalSettlement},</if>
+                <if test="item.internalSettlementUnit != null">internal_settlement_unit = #{item.internalSettlementUnit},</if>
+                <if test="item.documentCount != null">document_count = #{item.documentCount},</if>
+                <if test="item.totalAmount != null">total_amount = #{item.totalAmount},</if>
+                <if test="item.currency != null">currency = #{item.currency},</if>
+                <if test="item.discountAmount != null">discount_amount = #{item.discountAmount},</if>
+                <if test="item.receivedAmount != null">received_amount = #{item.receivedAmount},</if>
+                <if test="item.pendingAmount != null">pending_amount = #{item.pendingAmount},</if>
+                <if test="item.exchangeRate != null">exchange_rate = #{item.exchangeRate},</if>
+                <if test="item.cnyAmount != null">cny_amount = #{item.cnyAmount},</if>
+                <if test="item.periodType != null and item.periodType != ''">period_type = #{item.periodType},</if>
+                <if test="item.businessStartDate != null">business_start_date = #{item.businessStartDate},</if>
+                <if test="item.businessEndDate != null">business_end_date = #{item.businessEndDate},</if>
+                <if test="item.billingStartDate != null">billing_start_date = #{item.billingStartDate},</if>
+                <if test="item.billingEndDate != null">billing_end_date = #{item.billingEndDate},</if>
+                <if test="item.billGenerateDate != null">bill_generate_date = #{item.billGenerateDate},</if>
+                <if test="item.billSendDate != null">bill_send_date = #{item.billSendDate},</if>
+                <if test="item.billDueDate != null">bill_due_date = #{item.billDueDate},</if>
+                <if test="item.status != null">status = #{item.status},</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>
+                <if test="item.updateBy != null">update_by = #{item.updateBy},</if>
+                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
+                <if test="item.deleted != null">deleted = #{item.deleted},</if>
+            </trim>
+        where id = #{item.id}
+        </foreach>
+    </update>
+
+    <!--鍒犻櫎-->
+    <delete id="deleteReceivableBillManagementById" parameterType="Integer">
+        delete from receivable_bill_management where id = #{id}
+    </delete>
+    <delete id="deleteReceivableBillManagementByIds" parameterType="Integer">
+        delete from receivable_bill_management where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/service/src/main/resources/mapper/cwgl/ReceivableBillSettlementDetailMapper.xml b/service/src/main/resources/mapper/cwgl/ReceivableBillSettlementDetailMapper.xml
new file mode 100644
index 0000000..86f3685
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/ReceivableBillSettlementDetailMapper.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.cwgl.mapper.ReceivableBillSettlementDetailMapper">
+
+    <resultMap type="com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail" id="ReceivableBillSettlementDetailResult">
+        <result property="id"    column="id"    />
+        <result property="billId"    column="bill_id"    />
+        <result property="settlementMethod"    column="settlement_method"    />
+        <result property="customerBank"    column="customer_bank"    />
+        <result property="customerBankAccount"    column="customer_bank_account"    />
+        <result property="receivingBankAccount"    column="receiving_bank_account"    />
+        <result property="receivingBank"    column="receiving_bank"    />
+        <result property="receiptDate"    column="receipt_date"    />
+        <result property="receiptAmount"    column="receipt_amount"    />
+        <result property="remainingPendingAmount"    column="remaining_pending_amount"    />
+        <result property="remark"    column="remark"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="deleted"    column="deleted"    />
+    </resultMap>
+
+    <sql id="selectReceivableBillSettlementDetailVo">
+        select thisTab.id, thisTab.bill_id, thisTab.settlement_method, thisTab.customer_bank, thisTab.customer_bank_account, thisTab.receiving_bank_account, thisTab.receiving_bank, thisTab.receipt_date, thisTab.receipt_amount, thisTab.remaining_pending_amount, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.deleted from receivable_bill_settlement_detail AS thisTab
+    </sql>
+    <sql id="selectReceivableBillSettlementDetailVoCount">
+        select count(0) from receivable_bill_settlement_detail as thisTab
+    </sql>
+
+    <sql id="whereCondition">
+        <if test="billId != null "> and thisTab.bill_id = #{billId}</if>
+        <if test="settlementMethod != null  and settlementMethod != ''"> and thisTab.settlement_method = #{settlementMethod}</if>
+        <if test="customerBank != null  and customerBank != ''"> and thisTab.customer_bank = #{customerBank}</if>
+        <if test="customerBankAccount != null  and customerBankAccount != ''"> and thisTab.customer_bank_account = #{customerBankAccount}</if>
+        <if test="receivingBankAccount != null  and receivingBankAccount != ''"> and thisTab.receiving_bank_account = #{receivingBankAccount}</if>
+        <if test="receivingBank != null  and receivingBank != ''"> and thisTab.receiving_bank = #{receivingBank}</if>
+        <if test="receiptDate != null "> and thisTab.receipt_date = #{receiptDate}</if>
+        <if test="receiptAmount != null "> and thisTab.receipt_amount = #{receiptAmount}</if>
+        <if test="remainingPendingAmount != null "> and thisTab.remaining_pending_amount = #{remainingPendingAmount}</if>
+        <if test="deleted != null "> and thisTab.deleted = #{deleted}</if>
+    </sql>
+
+    <!--鏌ヨ-->
+    <select id="selectReceivableBillSettlementDetailById" parameterType="Integer" resultMap="ReceivableBillSettlementDetailResult">
+        <include refid="selectReceivableBillSettlementDetailVo"/>
+        where id = #{id}
+    </select>
+
+    <select id="selectReceivableBillSettlementDetailCount" parameterType="com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail" resultType="int">
+        <include refid="selectReceivableBillSettlementDetailVoCount"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+    </select>
+
+    <select id="selectReceivableBillSettlementDetailList" parameterType="com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail" resultMap="ReceivableBillSettlementDetailResult">
+        <include refid="selectReceivableBillSettlementDetailVo"/>
+        <where>
+            <include refid="whereCondition"/>
+        </where>
+        order by thisTab.id desc
+    </select>
+
+    <!-- 鏂板 -->
+    <insert id="insertReceivableBillSettlementDetail" parameterType="com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail"  useGeneratedKeys="true" keyProperty="id">
+        insert into receivable_bill_settlement_detail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="billId != null">bill_id,</if>
+            <if test="settlementMethod != null and settlementMethod != ''">settlement_method,</if>
+            <if test="customerBank != null">customer_bank,</if>
+            <if test="customerBankAccount != null">customer_bank_account,</if>
+            <if test="receivingBankAccount != null">receiving_bank_account,</if>
+            <if test="receivingBank != null">receiving_bank,</if>
+            <if test="receiptDate != null">receipt_date,</if>
+            <if test="receiptAmount != null">receipt_amount,</if>
+            <if test="remainingPendingAmount != null">remaining_pending_amount,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="deleted != null">deleted,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="billId != null">#{billId},</if>
+            <if test="settlementMethod != null and settlementMethod != ''">#{settlementMethod},</if>
+            <if test="customerBank != null">#{customerBank},</if>
+            <if test="customerBankAccount != null">#{customerBankAccount},</if>
+            <if test="receivingBankAccount != null">#{receivingBankAccount},</if>
+            <if test="receivingBank != null">#{receivingBank},</if>
+            <if test="receiptDate != null">#{receiptDate},</if>
+            <if test="receiptAmount != null">#{receiptAmount},</if>
+            <if test="remainingPendingAmount != null">#{remainingPendingAmount},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="deleted != null">#{deleted},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertReceivableBillSettlementDetailBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
+        insert into receivable_bill_settlement_detail
+        <trim prefix="(" suffix=") values" suffixOverrides=",">
+            id,bill_id,settlement_method,customer_bank,customer_bank_account,receiving_bank_account,receiving_bank,receipt_date,receipt_amount,remaining_pending_amount,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.billId},#{item.settlementMethod},#{item.customerBank},#{item.customerBankAccount},#{item.receivingBankAccount},#{item.receivingBank},#{item.receiptDate},#{item.receiptAmount},#{item.remainingPendingAmount},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.deleted},
+            </trim>
+        </foreach>
+    </insert>
+
+    <!-- 淇敼 -->
+    <update id="updateReceivableBillSettlementDetail" parameterType="com.ruoyi.cwgl.domain.ReceivableBillSettlementDetail">
+        update receivable_bill_settlement_detail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="billId != null">bill_id = #{billId},</if>
+            <if test="settlementMethod != null and settlementMethod != ''">settlement_method = #{settlementMethod},</if>
+            <if test="customerBank != null">customer_bank = #{customerBank},</if>
+            <if test="customerBankAccount != null">customer_bank_account = #{customerBankAccount},</if>
+            <if test="receivingBankAccount != null">receiving_bank_account = #{receivingBankAccount},</if>
+            <if test="receivingBank != null">receiving_bank = #{receivingBank},</if>
+            <if test="receiptDate != null">receipt_date = #{receiptDate},</if>
+            <if test="receiptAmount != null">receipt_amount = #{receiptAmount},</if>
+            <if test="remainingPendingAmount != null">remaining_pending_amount = #{remainingPendingAmount},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="deleted != null">deleted = #{deleted},</if>
+        </trim>
+        where id = #{id}
+    </update>
+    <!-- 淇敼 -->
+    <update id="updateReceivableBillSettlementDetailBatch" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";">
+            update receivable_bill_settlement_detail
+            <trim prefix="SET" suffixOverrides=",">
+                <if test="item.billId != null">bill_id = #{item.billId},</if>
+                <if test="item.settlementMethod != null and item.settlementMethod != ''">settlement_method = #{item.settlementMethod},</if>
+                <if test="item.customerBank != null">customer_bank = #{item.customerBank},</if>
+                <if test="item.customerBankAccount != null">customer_bank_account = #{item.customerBankAccount},</if>
+                <if test="item.receivingBankAccount != null">receiving_bank_account = #{item.receivingBankAccount},</if>
+                <if test="item.receivingBank != null">receiving_bank = #{item.receivingBank},</if>
+                <if test="item.receiptDate != null">receipt_date = #{item.receiptDate},</if>
+                <if test="item.receiptAmount != null">receipt_amount = #{item.receiptAmount},</if>
+                <if test="item.remainingPendingAmount != null">remaining_pending_amount = #{item.remainingPendingAmount},</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>
+                <if test="item.updateBy != null">update_by = #{item.updateBy},</if>
+                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
+                <if test="item.deleted != null">deleted = #{item.deleted},</if>
+            </trim>
+        where id = #{item.id}
+        </foreach>
+    </update>
+
+    <!--鍒犻櫎-->
+    <delete id="deleteReceivableBillSettlementDetailById" parameterType="Integer">
+        delete from receivable_bill_settlement_detail where id = #{id}
+    </delete>
+    <delete id="deleteReceivableBillSettlementDetailByIds" parameterType="Integer">
+        delete from receivable_bill_settlement_detail where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/ui/admin-ui3/src/api/cwgl/payableBillManagement.ts b/ui/admin-ui3/src/api/cwgl/payableBillManagement.ts
new file mode 100644
index 0000000..255a34d
--- /dev/null
+++ b/ui/admin-ui3/src/api/cwgl/payableBillManagement.ts
@@ -0,0 +1,67 @@
+import request,{download,requestType} from "@/utils/request";
+import {BaseEntityInterface} from "@/utils/globalInterface";
+export interface PayableBillManagementI extends BaseEntityInterface{
+            id ?:  number   ,            systemNo ?:  string   ,            billName ?:  string   ,            supplierName ?:  string   ,            isInternalSettlement ?:  string   ,            internalSettlementUnit ?:  string   ,            documentCount ?:  number   ,            totalAmount ?:  string   ,            currency ?:  string   ,            discountAmount ?:  string   ,            paidAmount ?:  string   ,            pendingAmount ?:  string   ,            exchangeRate ?:  string   ,            cnyAmount ?:  string   ,            periodType ?:  string   ,            businessStartDate ?:  string   ,            businessEndDate ?:  string   ,            billingStartDate ?:  string   ,            billingEndDate ?:  string   ,            billGenerateDate ?:  string   ,            billSendDate ?:  string   ,            billDueDate ?:  string   ,            status ?:  string   ,            remark ?:  string   ,            createBy ?:  string   ,            createTime ?:  string   ,            updateBy ?:  string   ,            updateTime ?:  string   ,            deleted ?:  number       }
+
+
+/**
+ * 鏌ヨ搴斾粯璐﹀崟绠$悊鍒楄〃
+ */
+export const listPayableBillManagement:requestType = (query) => {
+    return request({
+        url: '/cwgl/payableBillManagement/list',
+        method:'get',
+        params:query
+    })
+}
+/**
+ * 鏌ヨ搴斾粯璐﹀崟绠$悊璇︾粏
+ */
+export const getPayableBillManagement:requestType = (id) => {
+    return request({
+        url: '/cwgl/payableBillManagement/' + id,
+        method:'get'
+    })
+}
+
+/**
+ * 鏂板搴斾粯璐﹀崟绠$悊
+ */
+export const addPayableBillManagement:requestType = (data) => {
+    return request({
+        url: '/cwgl/payableBillManagement',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ * 淇敼搴斾粯璐﹀崟绠$悊
+ */
+export const updatePayableBillManagement:requestType = (data) => {
+    return request({
+        url: '/cwgl/payableBillManagement',
+        method: 'put',
+        data
+    })
+}
+
+/**
+ * 鍒犻櫎搴斾粯璐﹀崟绠$悊
+ */
+export const delPayableBillManagement:requestType = (id) => {
+    return request({
+        url: '/cwgl/payableBillManagement/' + id,
+        method: 'delete'
+    })
+}
+
+
+/**
+ * 瀵煎嚭搴斾粯璐﹀崟绠$悊
+ */
+export const exportPayableBillManagement:requestType = (query) => {
+    return new Promise<any>(()=>{
+        download('/cwgl/payableBillManagement/export',query);
+    })
+}
diff --git a/ui/admin-ui3/src/api/cwgl/payableBillSettlementDetail.ts b/ui/admin-ui3/src/api/cwgl/payableBillSettlementDetail.ts
new file mode 100644
index 0000000..79f7994
--- /dev/null
+++ b/ui/admin-ui3/src/api/cwgl/payableBillSettlementDetail.ts
@@ -0,0 +1,67 @@
+import request,{download,requestType} from "@/utils/request";
+import {BaseEntityInterface} from "@/utils/globalInterface";
+export interface PayableBillSettlementDetailI extends BaseEntityInterface{
+            id ?:  number   ,            billId ?:  number   ,            settlementMethod ?:  string   ,            paymentBank ?:  string   ,            paymentBankAccount ?:  string   ,            supplierReceivingAccount ?:  string   ,            supplierReceivingBank ?:  string   ,            paymentDate ?:  string   ,            paymentAmount ?:  string   ,            remainingPendingAmount ?:  string   ,            remark ?:  string   ,            createBy ?:  string   ,            createTime ?:  string   ,            updateBy ?:  string   ,            updateTime ?:  string   ,            deleted ?:  number       }
+
+
+/**
+ * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏鍒楄〃
+ */
+export const listPayableBillSettlementDetail:requestType = (query) => {
+    return request({
+        url: '/cwgl/payableBillSettlementDetail/list',
+        method:'get',
+        params:query
+    })
+}
+/**
+ * 鏌ヨ搴斾粯璐﹀崟缁撶畻鏄庣粏璇︾粏
+ */
+export const getPayableBillSettlementDetail:requestType = (id) => {
+    return request({
+        url: '/cwgl/payableBillSettlementDetail/' + id,
+        method:'get'
+    })
+}
+
+/**
+ * 鏂板搴斾粯璐﹀崟缁撶畻鏄庣粏
+ */
+export const addPayableBillSettlementDetail:requestType = (data) => {
+    return request({
+        url: '/cwgl/payableBillSettlementDetail',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ * 淇敼搴斾粯璐﹀崟缁撶畻鏄庣粏
+ */
+export const updatePayableBillSettlementDetail:requestType = (data) => {
+    return request({
+        url: '/cwgl/payableBillSettlementDetail',
+        method: 'put',
+        data
+    })
+}
+
+/**
+ * 鍒犻櫎搴斾粯璐﹀崟缁撶畻鏄庣粏
+ */
+export const delPayableBillSettlementDetail:requestType = (id) => {
+    return request({
+        url: '/cwgl/payableBillSettlementDetail/' + id,
+        method: 'delete'
+    })
+}
+
+
+/**
+ * 瀵煎嚭搴斾粯璐﹀崟缁撶畻鏄庣粏
+ */
+export const exportPayableBillSettlementDetail:requestType = (query) => {
+    return new Promise<any>(()=>{
+        download('/cwgl/payableBillSettlementDetail/export',query);
+    })
+}
diff --git a/ui/admin-ui3/src/api/cwgl/receivableBillManagement.ts b/ui/admin-ui3/src/api/cwgl/receivableBillManagement.ts
new file mode 100644
index 0000000..b85b6d1
--- /dev/null
+++ b/ui/admin-ui3/src/api/cwgl/receivableBillManagement.ts
@@ -0,0 +1,67 @@
+import request,{download,requestType} from "@/utils/request";
+import {BaseEntityInterface} from "@/utils/globalInterface";
+export interface ReceivableBillManagementI extends BaseEntityInterface{
+            id ?:  number   ,            systemNo ?:  string   ,            billName ?:  string   ,            customerName ?:  string   ,            isInternalSettlement ?:  string   ,            internalSettlementUnit ?:  string   ,            documentCount ?:  number   ,            totalAmount ?:  string   ,            currency ?:  string   ,            discountAmount ?:  string   ,            receivedAmount ?:  string   ,            pendingAmount ?:  string   ,            exchangeRate ?:  string   ,            cnyAmount ?:  string   ,            periodType ?:  string   ,            businessStartDate ?:  string   ,            businessEndDate ?:  string   ,            billingStartDate ?:  string   ,            billingEndDate ?:  string   ,            billGenerateDate ?:  string   ,            billSendDate ?:  string   ,            billDueDate ?:  string   ,            status ?:  string   ,            remark ?:  string   ,            createBy ?:  string   ,            createTime ?:  string   ,            updateBy ?:  string   ,            updateTime ?:  string   ,            deleted ?:  number       }
+
+
+/**
+ * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃
+ */
+export const listReceivableBillManagement:requestType = (query) => {
+    return request({
+        url: '/cwgl/receivableBillManagement/list',
+        method:'get',
+        params:query
+    })
+}
+/**
+ * 鏌ヨ搴旀敹璐﹀崟绠$悊璇︾粏
+ */
+export const getReceivableBillManagement:requestType = (id) => {
+    return request({
+        url: '/cwgl/receivableBillManagement/' + id,
+        method:'get'
+    })
+}
+
+/**
+ * 鏂板搴旀敹璐﹀崟绠$悊
+ */
+export const addReceivableBillManagement:requestType = (data) => {
+    return request({
+        url: '/cwgl/receivableBillManagement',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ * 淇敼搴旀敹璐﹀崟绠$悊
+ */
+export const updateReceivableBillManagement:requestType = (data) => {
+    return request({
+        url: '/cwgl/receivableBillManagement',
+        method: 'put',
+        data
+    })
+}
+
+/**
+ * 鍒犻櫎搴旀敹璐﹀崟绠$悊
+ */
+export const delReceivableBillManagement:requestType = (id) => {
+    return request({
+        url: '/cwgl/receivableBillManagement/' + id,
+        method: 'delete'
+    })
+}
+
+
+/**
+ * 瀵煎嚭搴旀敹璐﹀崟绠$悊
+ */
+export const exportReceivableBillManagement:requestType = (query) => {
+    return new Promise<any>(()=>{
+        download('/cwgl/receivableBillManagement/export',query);
+    })
+}
diff --git a/ui/admin-ui3/src/api/cwgl/receivableBillSettlementDetail.ts b/ui/admin-ui3/src/api/cwgl/receivableBillSettlementDetail.ts
new file mode 100644
index 0000000..df1e01f
--- /dev/null
+++ b/ui/admin-ui3/src/api/cwgl/receivableBillSettlementDetail.ts
@@ -0,0 +1,67 @@
+import request,{download,requestType} from "@/utils/request";
+import {BaseEntityInterface} from "@/utils/globalInterface";
+export interface ReceivableBillSettlementDetailI extends BaseEntityInterface{
+            id ?:  number   ,            billId ?:  number   ,            settlementMethod ?:  string   ,            customerBank ?:  string   ,            customerBankAccount ?:  string   ,            receivingBankAccount ?:  string   ,            receivingBank ?:  string   ,            receiptDate ?:  string   ,            receiptAmount ?:  string   ,            remainingPendingAmount ?:  string   ,            remark ?:  string   ,            createBy ?:  string   ,            createTime ?:  string   ,            updateBy ?:  string   ,            updateTime ?:  string   ,            deleted ?:  number       }
+
+
+/**
+ * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏鍒楄〃
+ */
+export const listReceivableBillSettlementDetail:requestType = (query) => {
+    return request({
+        url: '/cwgl/receivableBillSettlementDetail/list',
+        method:'get',
+        params:query
+    })
+}
+/**
+ * 鏌ヨ搴旀敹璐﹀崟缁撶畻鏄庣粏璇︾粏
+ */
+export const getReceivableBillSettlementDetail:requestType = (id) => {
+    return request({
+        url: '/cwgl/receivableBillSettlementDetail/' + id,
+        method:'get'
+    })
+}
+
+/**
+ * 鏂板搴旀敹璐﹀崟缁撶畻鏄庣粏
+ */
+export const addReceivableBillSettlementDetail:requestType = (data) => {
+    return request({
+        url: '/cwgl/receivableBillSettlementDetail',
+        method: 'post',
+        data
+    })
+}
+
+/**
+ * 淇敼搴旀敹璐﹀崟缁撶畻鏄庣粏
+ */
+export const updateReceivableBillSettlementDetail:requestType = (data) => {
+    return request({
+        url: '/cwgl/receivableBillSettlementDetail',
+        method: 'put',
+        data
+    })
+}
+
+/**
+ * 鍒犻櫎搴旀敹璐﹀崟缁撶畻鏄庣粏
+ */
+export const delReceivableBillSettlementDetail:requestType = (id) => {
+    return request({
+        url: '/cwgl/receivableBillSettlementDetail/' + id,
+        method: 'delete'
+    })
+}
+
+
+/**
+ * 瀵煎嚭搴旀敹璐﹀崟缁撶畻鏄庣粏
+ */
+export const exportReceivableBillSettlementDetail:requestType = (query) => {
+    return new Promise<any>(()=>{
+        download('/cwgl/receivableBillSettlementDetail/export',query);
+    })
+}
diff --git a/ui/admin-ui3/src/views/cwgl/payableBillManagement/index.vue b/ui/admin-ui3/src/views/cwgl/payableBillManagement/index.vue
new file mode 100644
index 0000000..13858fb
--- /dev/null
+++ b/ui/admin-ui3/src/views/cwgl/payableBillManagement/index.vue
@@ -0,0 +1,245 @@
+<template>
+  <basicContainer >
+    <avue-crud
+        :option="option"
+        :table-loading="pageF.loading"
+        :data="tableData"
+        :page="page"
+        :permission="permissionList"
+        :before-open="beforeOpen"
+        v-model="form"
+        ref="crudRef"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
+        @refresh-change="refreshChange"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @on-load="onLoad"
+    >
+      <template #menu-left>
+        <el-button
+            type="success"
+            icon="Edit"
+            :disabled="pageF.single"
+            v-hasPermi="['cwgl:payableBillManagement:edit']"
+            @click="handleUpdate">淇敼
+        </el-button>
+        <el-button
+            type="danger"
+            icon="Delete"
+            :disabled="pageF.multiple"
+            @click="handleDelete"
+            v-hasPermi="['cwgl:payableBillManagement:remove']"
+        >鍒犻櫎
+        </el-button>
+        <el-button
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            v-hasPermi="['cwgl:payableBillManagement:export']"
+        >瀵煎嚭
+        </el-button>
+      </template>
+    </avue-crud>
+  </basicContainer>
+</template>
+
+<script setup name="payableBillManagement" lang="ts">
+  import {PayableBillManagementI,addPayableBillManagement, delPayableBillManagement, exportPayableBillManagement, getPayableBillManagement, listPayableBillManagement, updatePayableBillManagement} from "@/api/cwgl/payableBillManagement";
+  import useCurrentInstance from "@/utils/useCurrentInstance";
+  import {computed,reactive, ref, toRefs} from "vue";
+  import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+  import {usePagePlus} from "@/hooks/usePagePlus";
+  import {hasPermission} from "@/utils/permissionUtils";
+
+  const { proxy } = useCurrentInstance();
+  const crudRef = ref();
+
+  const permissionList = computed(()=>{
+    return {
+      addBtn: hasPermission(["cwgl:payableBillManagement:add"]),
+      delBtn: hasPermission(["cwgl:payableBillManagement:remove"]),
+      editBtn: hasPermission(["cwgl:payableBillManagement:edit"]),
+      viewBtn: hasPermission(["cwgl:payableBillManagement:query"]),
+    }
+  })
+
+  const data = reactive({
+    form:<PayableBillManagementI>{},
+    queryParams:<PayableBillManagementI&PageQueryInterface>{},
+    page: <PagesInterface>{
+      pageSize: 10,
+      total: 0,
+      currentPage: 1,
+    },
+    selectionList:[],
+  })
+  const {queryParams,form,page,selectionList} = toRefs(data);
+  const option = ref({
+    pageKey: 'PayableBillManagement',
+    rowKey: 'id',
+    column: {
+                                id: {
+          label: 'ID',
+                            },
+                                systemNo: {
+          label: '绯荤粺缂栧彿',
+                                rules: [
+              {
+                required: true,
+                message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billName: {
+          label: '璐﹀崟鍚嶇О',
+                                rules: [
+              {
+                required: true,
+                message: "璐﹀崟鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                supplierName: {
+          label: '渚涘簲鍟嗗悕绉�',
+                                rules: [
+              {
+                required: true,
+                message: "渚涘簲鍟嗗悕绉颁笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                isInternalSettlement: {
+          label: '鏄惁鍐呴儴缁撶畻',
+                                rules: [
+              {
+                required: true,
+                message: "鏄惁鍐呴儴缁撶畻涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                internalSettlementUnit: {
+          label: '鍐呴儴缁撶畻鍗曚綅',
+                            },
+                                documentCount: {
+          label: '鍗曟嵁鏁伴噺',
+                            },
+                                totalAmount: {
+          label: '搴旂粨绠楅噾棰�',
+                            },
+                                currency: {
+          label: '甯佸埗',
+                            },
+                                discountAmount: {
+          label: '鍑忓厤閲戦',
+                            },
+                                paidAmount: {
+          label: '宸蹭粯閲戦',
+                            },
+                                pendingAmount: {
+          label: '寰呬粯閲戦',
+                            },
+                                exchangeRate: {
+          label: '姹囩巼',
+                            },
+                                cnyAmount: {
+          label: '浜烘皯甯侀噾棰�',
+                            },
+                                periodType: {
+          label: '鍛ㄦ湡绫诲瀷',
+                                rules: [
+              {
+                required: true,
+                message: "鍛ㄦ湡绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+                 }
+            ],                  },
+                                businessStartDate: {
+          label: '涓氬姟鏈熼棿寮�濮嬫棩鏈�',
+                                rules: [
+              {
+                required: true,
+                message: "涓氬姟鏈熼棿寮�濮嬫棩鏈熶笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                businessEndDate: {
+          label: '涓氬姟鏈熼棿缁撴潫鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "涓氬姟鏈熼棿缁撴潫鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billingStartDate: {
+          label: '璐︽湡寮�濮嬫棩鏈�',
+                                rules: [
+              {
+                required: true,
+                message: "璐︽湡寮�濮嬫棩鏈熶笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                billingEndDate: {
+          label: '璐︽湡缁撴潫鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "璐︽湡缁撴潫鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billGenerateDate: {
+          label: '璐﹀崟鐢熸垚鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "璐﹀崟鐢熸垚鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billSendDate: {
+          label: '璐﹀崟鍙戦�佹棩鏈�',
+                            },
+                                billDueDate: {
+          label: '璐﹀崟鍒版湡鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "璐﹀崟鍒版湡鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                status: {
+          label: '鐘舵��',
+                            },
+                                remark: {
+          label: '澶囨敞',
+                      type: 'textarea', minRows: 3, maxRows: 5,
+                            },
+                                createBy: {
+          label: '鍒涘缓浜�',
+                            },
+                                createTime: {
+          label: '鍒涘缓鏃堕棿',
+                            },
+                                updateBy: {
+          label: '鏇存柊浜�',
+                            },
+                                updateTime: {
+          label: '鏇存柊鏃堕棿',
+                            },
+                                deleted: {
+          label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
+                            },
+          }
+  })
+
+  const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
+    searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
+    form:form,
+    option:option,
+    queryParams:queryParams,
+    idKey:'id',
+    page:page.value,
+    getListApi:listPayableBillManagement,
+    getDetailApi:getPayableBillManagement,
+    exportApi:exportPayableBillManagement,
+    deleteApi:delPayableBillManagement,
+    addApi:addPayableBillManagement,
+    updateApi:updatePayableBillManagement,
+    handleUpdateFunc:()=>{
+      crudRef.value.rowEdit(selectionList.value[0]);
+    },
+    handleSelectionChangeFunc:(selection:any)=>{
+      selectionList.value = selection;
+    }
+  })
+
+
+</script>
diff --git a/ui/admin-ui3/src/views/cwgl/payableBillSettlementDetail/index.vue b/ui/admin-ui3/src/views/cwgl/payableBillSettlementDetail/index.vue
new file mode 100644
index 0000000..c0dbbab
--- /dev/null
+++ b/ui/admin-ui3/src/views/cwgl/payableBillSettlementDetail/index.vue
@@ -0,0 +1,177 @@
+<template>
+  <basicContainer >
+    <avue-crud
+        :option="option"
+        :table-loading="pageF.loading"
+        :data="tableData"
+        :page="page"
+        :permission="permissionList"
+        :before-open="beforeOpen"
+        v-model="form"
+        ref="crudRef"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
+        @refresh-change="refreshChange"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @on-load="onLoad"
+    >
+      <template #menu-left>
+        <el-button
+            type="success"
+            icon="Edit"
+            :disabled="pageF.single"
+            v-hasPermi="['cwgl:payableBillSettlementDetail:edit']"
+            @click="handleUpdate">淇敼
+        </el-button>
+        <el-button
+            type="danger"
+            icon="Delete"
+            :disabled="pageF.multiple"
+            @click="handleDelete"
+            v-hasPermi="['cwgl:payableBillSettlementDetail:remove']"
+        >鍒犻櫎
+        </el-button>
+        <el-button
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            v-hasPermi="['cwgl:payableBillSettlementDetail:export']"
+        >瀵煎嚭
+        </el-button>
+      </template>
+    </avue-crud>
+  </basicContainer>
+</template>
+
+<script setup name="payableBillSettlementDetail" lang="ts">
+  import {PayableBillSettlementDetailI,addPayableBillSettlementDetail, delPayableBillSettlementDetail, exportPayableBillSettlementDetail, getPayableBillSettlementDetail, listPayableBillSettlementDetail, updatePayableBillSettlementDetail} from "@/api/cwgl/payableBillSettlementDetail";
+  import useCurrentInstance from "@/utils/useCurrentInstance";
+  import {computed,reactive, ref, toRefs} from "vue";
+  import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+  import {usePagePlus} from "@/hooks/usePagePlus";
+  import {hasPermission} from "@/utils/permissionUtils";
+
+  const { proxy } = useCurrentInstance();
+  const crudRef = ref();
+
+  const permissionList = computed(()=>{
+    return {
+      addBtn: hasPermission(["cwgl:payableBillSettlementDetail:add"]),
+      delBtn: hasPermission(["cwgl:payableBillSettlementDetail:remove"]),
+      editBtn: hasPermission(["cwgl:payableBillSettlementDetail:edit"]),
+      viewBtn: hasPermission(["cwgl:payableBillSettlementDetail:query"]),
+    }
+  })
+
+  const data = reactive({
+    form:<PayableBillSettlementDetailI>{},
+    queryParams:<PayableBillSettlementDetailI&PageQueryInterface>{},
+    page: <PagesInterface>{
+      pageSize: 10,
+      total: 0,
+      currentPage: 1,
+    },
+    selectionList:[],
+  })
+  const {queryParams,form,page,selectionList} = toRefs(data);
+  const option = ref({
+    pageKey: 'PayableBillSettlementDetail',
+    rowKey: 'id',
+    column: {
+                                id: {
+          label: 'ID',
+                            },
+                                billId: {
+          label: '搴斾粯璐﹀崟ID',
+                                rules: [
+              {
+                required: true,
+                message: "搴斾粯璐﹀崟ID涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                settlementMethod: {
+          label: '缁撶畻鏂瑰紡',
+                                rules: [
+              {
+                required: true,
+                message: "缁撶畻鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                paymentBank: {
+          label: '浠樻璐︽埛寮�鎴疯',
+                            },
+                                paymentBankAccount: {
+          label: '浠樻璐︽埛閾惰璐﹀彿',
+                            },
+                                supplierReceivingAccount: {
+          label: '渚涘簲鍟嗘敹娆鹃摱琛岃处鎴�',
+                            },
+                                supplierReceivingBank: {
+          label: '渚涘簲鍟嗘敹娆捐处鎴峰紑鎴疯',
+                            },
+                                paymentDate: {
+          label: '浠樻鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "浠樻鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                paymentAmount: {
+          label: '浠樻閲戦',
+                                rules: [
+              {
+                required: true,
+                message: "浠樻閲戦涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                remainingPendingAmount: {
+          label: '浠樻鍚庡緟浠橀噾棰�',
+                            },
+                                remark: {
+          label: '澶囨敞',
+                      type: 'textarea', minRows: 3, maxRows: 5,
+                            },
+                                createBy: {
+          label: '鍒涘缓浜�',
+                            },
+                                createTime: {
+          label: '鍒涘缓鏃堕棿',
+                            },
+                                updateBy: {
+          label: '鏇存柊浜�',
+                            },
+                                updateTime: {
+          label: '鏇存柊鏃堕棿',
+                            },
+                                deleted: {
+          label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
+                            },
+          }
+  })
+
+  const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
+    searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
+    form:form,
+    option:option,
+    queryParams:queryParams,
+    idKey:'id',
+    page:page.value,
+    getListApi:listPayableBillSettlementDetail,
+    getDetailApi:getPayableBillSettlementDetail,
+    exportApi:exportPayableBillSettlementDetail,
+    deleteApi:delPayableBillSettlementDetail,
+    addApi:addPayableBillSettlementDetail,
+    updateApi:updatePayableBillSettlementDetail,
+    handleUpdateFunc:()=>{
+      crudRef.value.rowEdit(selectionList.value[0]);
+    },
+    handleSelectionChangeFunc:(selection:any)=>{
+      selectionList.value = selection;
+    }
+  })
+
+
+</script>
diff --git a/ui/admin-ui3/src/views/cwgl/receivableBillManagement/index.vue b/ui/admin-ui3/src/views/cwgl/receivableBillManagement/index.vue
new file mode 100644
index 0000000..5a0b088
--- /dev/null
+++ b/ui/admin-ui3/src/views/cwgl/receivableBillManagement/index.vue
@@ -0,0 +1,245 @@
+<template>
+  <basicContainer >
+    <avue-crud
+        :option="option"
+        :table-loading="pageF.loading"
+        :data="tableData"
+        :page="page"
+        :permission="permissionList"
+        :before-open="beforeOpen"
+        v-model="form"
+        ref="crudRef"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
+        @refresh-change="refreshChange"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @on-load="onLoad"
+    >
+      <template #menu-left>
+        <el-button
+            type="success"
+            icon="Edit"
+            :disabled="pageF.single"
+            v-hasPermi="['cwgl:receivableBillManagement:edit']"
+            @click="handleUpdate">淇敼
+        </el-button>
+        <el-button
+            type="danger"
+            icon="Delete"
+            :disabled="pageF.multiple"
+            @click="handleDelete"
+            v-hasPermi="['cwgl:receivableBillManagement:remove']"
+        >鍒犻櫎
+        </el-button>
+        <el-button
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            v-hasPermi="['cwgl:receivableBillManagement:export']"
+        >瀵煎嚭
+        </el-button>
+      </template>
+    </avue-crud>
+  </basicContainer>
+</template>
+
+<script setup name="receivableBillManagement" lang="ts">
+  import {ReceivableBillManagementI,addReceivableBillManagement, delReceivableBillManagement, exportReceivableBillManagement, getReceivableBillManagement, listReceivableBillManagement, updateReceivableBillManagement} from "@/api/cwgl/receivableBillManagement";
+  import useCurrentInstance from "@/utils/useCurrentInstance";
+  import {computed,reactive, ref, toRefs} from "vue";
+  import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+  import {usePagePlus} from "@/hooks/usePagePlus";
+  import {hasPermission} from "@/utils/permissionUtils";
+
+  const { proxy } = useCurrentInstance();
+  const crudRef = ref();
+
+  const permissionList = computed(()=>{
+    return {
+      addBtn: hasPermission(["cwgl:receivableBillManagement:add"]),
+      delBtn: hasPermission(["cwgl:receivableBillManagement:remove"]),
+      editBtn: hasPermission(["cwgl:receivableBillManagement:edit"]),
+      viewBtn: hasPermission(["cwgl:receivableBillManagement:query"]),
+    }
+  })
+
+  const data = reactive({
+    form:<ReceivableBillManagementI>{},
+    queryParams:<ReceivableBillManagementI&PageQueryInterface>{},
+    page: <PagesInterface>{
+      pageSize: 10,
+      total: 0,
+      currentPage: 1,
+    },
+    selectionList:[],
+  })
+  const {queryParams,form,page,selectionList} = toRefs(data);
+  const option = ref({
+    pageKey: 'ReceivableBillManagement',
+    rowKey: 'id',
+    column: {
+                                id: {
+          label: 'ID',
+                            },
+                                systemNo: {
+          label: '绯荤粺缂栧彿',
+                                rules: [
+              {
+                required: true,
+                message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billName: {
+          label: '璐﹀崟鍚嶇О',
+                                rules: [
+              {
+                required: true,
+                message: "璐﹀崟鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                customerName: {
+          label: '瀹㈡埛鍚嶇О',
+                                rules: [
+              {
+                required: true,
+                message: "瀹㈡埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                isInternalSettlement: {
+          label: '鏄惁鍐呴儴缁撶畻',
+                                rules: [
+              {
+                required: true,
+                message: "鏄惁鍐呴儴缁撶畻涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                internalSettlementUnit: {
+          label: '鍐呴儴缁撶畻鍗曚綅',
+                            },
+                                documentCount: {
+          label: '鍗曟嵁鏁伴噺',
+                            },
+                                totalAmount: {
+          label: '搴旂粨绠楅噾棰�',
+                            },
+                                currency: {
+          label: '甯佸埗',
+                            },
+                                discountAmount: {
+          label: '鍑忓厤閲戦',
+                            },
+                                receivedAmount: {
+          label: '宸叉敹閲戦',
+                            },
+                                pendingAmount: {
+          label: '寰呮敹閲戦',
+                            },
+                                exchangeRate: {
+          label: '姹囩巼',
+                            },
+                                cnyAmount: {
+          label: '浜烘皯甯侀噾棰�',
+                            },
+                                periodType: {
+          label: '鍛ㄦ湡绫诲瀷',
+                                rules: [
+              {
+                required: true,
+                message: "鍛ㄦ湡绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+                 }
+            ],                  },
+                                businessStartDate: {
+          label: '涓氬姟鏈熼棿寮�濮嬫棩鏈�',
+                                rules: [
+              {
+                required: true,
+                message: "涓氬姟鏈熼棿寮�濮嬫棩鏈熶笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                businessEndDate: {
+          label: '涓氬姟鏈熼棿缁撴潫鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "涓氬姟鏈熼棿缁撴潫鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billingStartDate: {
+          label: '璐︽湡寮�濮嬫棩鏈�',
+                                rules: [
+              {
+                required: true,
+                message: "璐︽湡寮�濮嬫棩鏈熶笉鑳戒负绌�", trigger: "blur" }
+            ],                  },
+                                billingEndDate: {
+          label: '璐︽湡缁撴潫鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "璐︽湡缁撴潫鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billGenerateDate: {
+          label: '璐﹀崟鐢熸垚鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "璐﹀崟鐢熸垚鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                billSendDate: {
+          label: '璐﹀崟鍙戦�佹棩鏈�',
+                            },
+                                billDueDate: {
+          label: '璐﹀崟鍒版湡鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "璐﹀崟鍒版湡鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                status: {
+          label: '鐘舵��(draft:鑽夌;generated:宸茬敓鎴�;sent:宸插彂閫�;partial_paid:閮ㄥ垎鏀舵;paid:宸叉敹娆�;cancelled:宸插彇娑�)',
+                            },
+                                remark: {
+          label: '澶囨敞',
+                      type: 'textarea', minRows: 3, maxRows: 5,
+                            },
+                                createBy: {
+          label: '鍒涘缓浜�',
+                            },
+                                createTime: {
+          label: '鍒涘缓鏃堕棿',
+                            },
+                                updateBy: {
+          label: '鏇存柊浜�',
+                            },
+                                updateTime: {
+          label: '鏇存柊鏃堕棿',
+                            },
+                                deleted: {
+          label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
+                            },
+          }
+  })
+
+  const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
+    searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
+    form:form,
+    option:option,
+    queryParams:queryParams,
+    idKey:'id',
+    page:page.value,
+    getListApi:listReceivableBillManagement,
+    getDetailApi:getReceivableBillManagement,
+    exportApi:exportReceivableBillManagement,
+    deleteApi:delReceivableBillManagement,
+    addApi:addReceivableBillManagement,
+    updateApi:updateReceivableBillManagement,
+    handleUpdateFunc:()=>{
+      crudRef.value.rowEdit(selectionList.value[0]);
+    },
+    handleSelectionChangeFunc:(selection:any)=>{
+      selectionList.value = selection;
+    }
+  })
+
+
+</script>
diff --git a/ui/admin-ui3/src/views/cwgl/receivableBillSettlementDetail/index.vue b/ui/admin-ui3/src/views/cwgl/receivableBillSettlementDetail/index.vue
new file mode 100644
index 0000000..1ecc263
--- /dev/null
+++ b/ui/admin-ui3/src/views/cwgl/receivableBillSettlementDetail/index.vue
@@ -0,0 +1,177 @@
+<template>
+  <basicContainer >
+    <avue-crud
+        :option="option"
+        :table-loading="pageF.loading"
+        :data="tableData"
+        :page="page"
+        :permission="permissionList"
+        :before-open="beforeOpen"
+        v-model="form"
+        ref="crudRef"
+        @row-update="rowUpdate"
+        @row-save="rowSave"
+        @refresh-change="refreshChange"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @on-load="onLoad"
+    >
+      <template #menu-left>
+        <el-button
+            type="success"
+            icon="Edit"
+            :disabled="pageF.single"
+            v-hasPermi="['cwgl:receivableBillSettlementDetail:edit']"
+            @click="handleUpdate">淇敼
+        </el-button>
+        <el-button
+            type="danger"
+            icon="Delete"
+            :disabled="pageF.multiple"
+            @click="handleDelete"
+            v-hasPermi="['cwgl:receivableBillSettlementDetail:remove']"
+        >鍒犻櫎
+        </el-button>
+        <el-button
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            v-hasPermi="['cwgl:receivableBillSettlementDetail:export']"
+        >瀵煎嚭
+        </el-button>
+      </template>
+    </avue-crud>
+  </basicContainer>
+</template>
+
+<script setup name="receivableBillSettlementDetail" lang="ts">
+  import {ReceivableBillSettlementDetailI,addReceivableBillSettlementDetail, delReceivableBillSettlementDetail, exportReceivableBillSettlementDetail, getReceivableBillSettlementDetail, listReceivableBillSettlementDetail, updateReceivableBillSettlementDetail} from "@/api/cwgl/receivableBillSettlementDetail";
+  import useCurrentInstance from "@/utils/useCurrentInstance";
+  import {computed,reactive, ref, toRefs} from "vue";
+  import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+  import {usePagePlus} from "@/hooks/usePagePlus";
+  import {hasPermission} from "@/utils/permissionUtils";
+
+  const { proxy } = useCurrentInstance();
+  const crudRef = ref();
+
+  const permissionList = computed(()=>{
+    return {
+      addBtn: hasPermission(["cwgl:receivableBillSettlementDetail:add"]),
+      delBtn: hasPermission(["cwgl:receivableBillSettlementDetail:remove"]),
+      editBtn: hasPermission(["cwgl:receivableBillSettlementDetail:edit"]),
+      viewBtn: hasPermission(["cwgl:receivableBillSettlementDetail:query"]),
+    }
+  })
+
+  const data = reactive({
+    form:<ReceivableBillSettlementDetailI>{},
+    queryParams:<ReceivableBillSettlementDetailI&PageQueryInterface>{},
+    page: <PagesInterface>{
+      pageSize: 10,
+      total: 0,
+      currentPage: 1,
+    },
+    selectionList:[],
+  })
+  const {queryParams,form,page,selectionList} = toRefs(data);
+  const option = ref({
+    pageKey: 'ReceivableBillSettlementDetail',
+    rowKey: 'id',
+    column: {
+                                id: {
+          label: 'ID',
+                            },
+                                billId: {
+          label: '搴旀敹璐﹀崟ID',
+                                rules: [
+              {
+                required: true,
+                message: "搴旀敹璐﹀崟ID涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                settlementMethod: {
+          label: '缁撶畻鏂瑰紡',
+                                rules: [
+              {
+                required: true,
+                message: "缁撶畻鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                customerBank: {
+          label: '瀹㈡埛寮�鎴疯',
+                            },
+                                customerBankAccount: {
+          label: '瀹㈡埛閾惰璐﹀彿',
+                            },
+                                receivingBankAccount: {
+          label: '鏀舵閾惰璐︽埛',
+                            },
+                                receivingBank: {
+          label: '鏀舵璐︽埛寮�鎴疯',
+                            },
+                                receiptDate: {
+          label: '鏀舵鏃ユ湡',
+                                rules: [
+              {
+                required: true,
+                message: "鏀舵鏃ユ湡涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                receiptAmount: {
+          label: '鏀舵閲戦',
+                                rules: [
+              {
+                required: true,
+                message: "鏀舵閲戦涓嶈兘涓虹┖", trigger: "blur" }
+            ],                  },
+                                remainingPendingAmount: {
+          label: '鏀舵鍚庡緟鏀堕噾棰�',
+                            },
+                                remark: {
+          label: '澶囨敞',
+                      type: 'textarea', minRows: 3, maxRows: 5,
+                            },
+                                createBy: {
+          label: '鍒涘缓浜�',
+                            },
+                                createTime: {
+          label: '鍒涘缓鏃堕棿',
+                            },
+                                updateBy: {
+          label: '鏇存柊浜�',
+                            },
+                                updateTime: {
+          label: '鏇存柊鏃堕棿',
+                            },
+                                deleted: {
+          label: '鍒犻櫎鏍囪(0:姝e父;1:鍒犻櫎)',
+                            },
+          }
+  })
+
+  const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
+    searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
+    form:form,
+    option:option,
+    queryParams:queryParams,
+    idKey:'id',
+    page:page.value,
+    getListApi:listReceivableBillSettlementDetail,
+    getDetailApi:getReceivableBillSettlementDetail,
+    exportApi:exportReceivableBillSettlementDetail,
+    deleteApi:delReceivableBillSettlementDetail,
+    addApi:addReceivableBillSettlementDetail,
+    updateApi:updateReceivableBillSettlementDetail,
+    handleUpdateFunc:()=>{
+      crudRef.value.rowEdit(selectionList.value[0]);
+    },
+    handleSelectionChangeFunc:(selection:any)=>{
+      selectionList.value = selection;
+    }
+  })
+
+
+</script>

--
Gitblit v1.8.0