From aaaf29f017c707a7da6065f9f928f005b960d858 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 30 六月 2026 13:21:20 +0800
Subject: [PATCH] 销项发票页面新增录入发票功能

---
 src/main/java/com/ruoyi/account/service/impl/sales/AccountInvoiceApplicationServiceImpl.java |    5 +++++
 src/main/java/com/ruoyi/account/service/sales/AccountInvoiceApplicationService.java          |    2 ++
 src/main/java/com/ruoyi/account/controller/sales/AccountInvoiceApplicationController.java    |    8 ++++++++
 src/main/java/com/ruoyi/account/mapper/sales/AccountInvoiceApplicationMapper.java            |    2 ++
 src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml                  |   21 +++++++++++++++++++++
 5 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/account/controller/sales/AccountInvoiceApplicationController.java b/src/main/java/com/ruoyi/account/controller/sales/AccountInvoiceApplicationController.java
index 00b490f..699f57c 100644
--- a/src/main/java/com/ruoyi/account/controller/sales/AccountInvoiceApplicationController.java
+++ b/src/main/java/com/ruoyi/account/controller/sales/AccountInvoiceApplicationController.java
@@ -16,6 +16,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -41,6 +42,13 @@
         return R.ok(listPage);
     }
 
+    @GetMapping("/getAccountInvoiceApplicationList")
+    @Log(title = "鏍规嵁瀹㈡埛id鏌ヨ寮�绁ㄧ敵璇峰彴璐�", businessType = BusinessType.OTHER)
+    @Operation(summary = "璐㈠姟绠$悊--寮�绁ㄧ敵璇峰彴璐�")
+    public R<List<AccountInvoiceApplicationVo>> getAccountInvoiceApplicationList(@RequestParam Integer customerId){
+        return R.ok(accountInvoiceApplicationService.getAccountInvoiceApplicationList(customerId));
+    }
+
     @GetMapping("/getOutboundBatchesByCustomer")
     @Log(title = "鏍规嵁瀹㈡埛鏌ヨ鍑哄簱鍗曞彿(寮�绁ㄧ敵璇�)", businessType = BusinessType.OTHER)
     @Operation(summary = "璐㈠姟绠$悊--鏍规嵁瀹㈡埛鏌ヨ鍑哄簱鍗曞彿(寮�绁ㄧ敵璇�)")
diff --git a/src/main/java/com/ruoyi/account/mapper/sales/AccountInvoiceApplicationMapper.java b/src/main/java/com/ruoyi/account/mapper/sales/AccountInvoiceApplicationMapper.java
index 463f178..c37a31f 100644
--- a/src/main/java/com/ruoyi/account/mapper/sales/AccountInvoiceApplicationMapper.java
+++ b/src/main/java/com/ruoyi/account/mapper/sales/AccountInvoiceApplicationMapper.java
@@ -29,4 +29,6 @@
 
     //鍒ゆ柇璇ュ嚭搴撹褰曟槸鍚︽湁寮�绁ㄧ敵璇�
     boolean existsByStockOutRecordId(@Param("stockOutRecordIds") List<Long> stockOutRecordIds);
+
+    List<AccountInvoiceApplicationVo> selectAccountInvoiceApplicationList(@Param("customerId") Integer customerId);
 }
diff --git a/src/main/java/com/ruoyi/account/service/impl/sales/AccountInvoiceApplicationServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/sales/AccountInvoiceApplicationServiceImpl.java
index 74cec42..c88ede2 100644
--- a/src/main/java/com/ruoyi/account/service/impl/sales/AccountInvoiceApplicationServiceImpl.java
+++ b/src/main/java/com/ruoyi/account/service/impl/sales/AccountInvoiceApplicationServiceImpl.java
@@ -91,6 +91,11 @@
         return removeBatchByIds(ids);
     }
 
+    @Override
+    public List<AccountInvoiceApplicationVo> getAccountInvoiceApplicationList(Integer customerId) {
+        return accountInvoiceApplicationMapper.selectAccountInvoiceApplicationList(customerId);
+    }
+
     private String genInvoiceApplicationNo() {
         return "KP" + LocalDateTime.now().format(CODE_TIME_FORMATTER) + new Random().nextInt(10);
     }
diff --git a/src/main/java/com/ruoyi/account/service/sales/AccountInvoiceApplicationService.java b/src/main/java/com/ruoyi/account/service/sales/AccountInvoiceApplicationService.java
index 7f55ba5..d2cefc1 100644
--- a/src/main/java/com/ruoyi/account/service/sales/AccountInvoiceApplicationService.java
+++ b/src/main/java/com/ruoyi/account/service/sales/AccountInvoiceApplicationService.java
@@ -30,4 +30,6 @@
     void exportAccountInvoiceApplication(HttpServletResponse response, AccountInvoiceApplicationDto accountInvoiceApplicationDto);
 
     boolean deleteAccountInvoiceApplication(List<Long> ids);
+
+    List<AccountInvoiceApplicationVo> getAccountInvoiceApplicationList(Integer customerId);
 }
diff --git a/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml b/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml
index 3c74a44..4121614 100644
--- a/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml
+++ b/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml
@@ -72,5 +72,26 @@
             </foreach>
         )
     </select>
+    <select id="selectAccountInvoiceApplicationList"
+            resultType="com.ruoyi.account.bean.vo.sales.AccountInvoiceApplicationVo">
+        select
+            *
+        from (
+            select aia.*,
+            asi.id AS sales_invoice_id,
+            asi.status AS sales_invoice_status,
+            c.customer_name,
+            GROUP_CONCAT(sour.outbound_batches SEPARATOR ',') AS outboundBatches
+            from account_invoice_application aia
+            left join customer c on aia.customer_id = c.id
+            left join stock_out_record sour on FIND_IN_SET(sour.id, aia.stock_out_record_ids) > 0
+            left join account_sales_invoice asi on aia.id = asi.account_invoice_application_id
+            GROUP BY aia.id
+        )A
+        WHERE A.customer_id = #{customerId}
+        AND (COALESCE(A.sales_invoice_id,'') = '' OR A.sales_invoice_status = 1)
+        AND A.status = 1
+        order by A.id desc
+    </select>
 
 </mapper>

--
Gitblit v1.9.3