From 57d2edaa2a564585258412170c4372d3da85f66f Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 14 五月 2026 13:34:48 +0800
Subject: [PATCH] feat(financial): 添加凭证功能的文件附件支持

---
 src/main/java/com/ruoyi/account/bean/dto/financial/FinVoucherDto.java             |    3 +++
 src/main/resources/application-dev.yml                                            |    2 +-
 src/main/java/com/ruoyi/account/bean/vo/financial/FinVoucherDetailVo.java         |    3 +++
 src/main/java/com/ruoyi/account/service/impl/financial/FinVoucherServiceImpl.java |    8 ++++++++
 src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java                           |    1 +
 5 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/account/bean/dto/financial/FinVoucherDto.java b/src/main/java/com/ruoyi/account/bean/dto/financial/FinVoucherDto.java
index c7c6258..3f90ea2 100644
--- a/src/main/java/com/ruoyi/account/bean/dto/financial/FinVoucherDto.java
+++ b/src/main/java/com/ruoyi/account/bean/dto/financial/FinVoucherDto.java
@@ -1,6 +1,7 @@
 package com.ruoyi.account.bean.dto.financial;
 
 import com.ruoyi.account.pojo.financial.FinVoucher;
+import com.ruoyi.basic.dto.StorageBlobDTO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -17,4 +18,6 @@
      * 鍑瘉鏄庣粏鍒嗗綍銆�
      */
     private List<FinVoucherEntryDto> entries;
+
+    private List<StorageBlobDTO> storageBlobDTOs;
 }
diff --git a/src/main/java/com/ruoyi/account/bean/vo/financial/FinVoucherDetailVo.java b/src/main/java/com/ruoyi/account/bean/vo/financial/FinVoucherDetailVo.java
index d1eab48..4b23545 100644
--- a/src/main/java/com/ruoyi/account/bean/vo/financial/FinVoucherDetailVo.java
+++ b/src/main/java/com/ruoyi/account/bean/vo/financial/FinVoucherDetailVo.java
@@ -2,6 +2,8 @@
 
 import com.ruoyi.account.pojo.financial.FinVoucher;
 import com.ruoyi.account.pojo.financial.FinVoucherEntry;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -18,4 +20,5 @@
      * 鍑瘉鍒嗗綍鍒楄〃銆�
      */
     private List<FinVoucherEntry> entries;
+    private List<StorageBlobVO> storageBlobVOList;
 }
diff --git a/src/main/java/com/ruoyi/account/service/impl/financial/FinVoucherServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/financial/FinVoucherServiceImpl.java
index 9e09020..b7548ef 100644
--- a/src/main/java/com/ruoyi/account/service/impl/financial/FinVoucherServiceImpl.java
+++ b/src/main/java/com/ruoyi/account/service/impl/financial/FinVoucherServiceImpl.java
@@ -15,6 +15,9 @@
 import com.ruoyi.account.pojo.financial.FinVoucher;
 import com.ruoyi.account.pojo.financial.FinVoucherEntry;
 import com.ruoyi.account.service.financial.FinVoucherService;
+import com.ruoyi.basic.enums.ApplicationTypeEnum;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.utils.FileUtil;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import lombok.RequiredArgsConstructor;
@@ -38,6 +41,7 @@
 
     private final FinVoucherEntryMapper finVoucherEntryMapper;
     private final AccountSubjectMapper accountSubjectMapper;
+    private final FileUtil fileUtil;
 
     @Override
     public IPage<FinVoucher> pageList(Page<FinVoucher> page, FinVoucherPageDto queryDto) {
@@ -80,6 +84,8 @@
         }
         save(voucher);
         saveEntries(voucher.getId(), validEntries);
+        // 5. 淇濆瓨閿�鍞彴璐﹂檮浠�
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.FIN_VOUCHER, voucher.getId(), dto.getStorageBlobDTOs());
         return true;
     }
 
@@ -113,6 +119,7 @@
         deleteWrapper.eq(FinVoucherEntry::getVoucherId, voucher.getId());
         finVoucherEntryMapper.delete(deleteWrapper);
         saveEntries(voucher.getId(), validEntries);
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.FIN_VOUCHER, voucher.getId(), dto.getStorageBlobDTOs());
         return true;
     }
 
@@ -159,6 +166,7 @@
         FinVoucherDetailVo vo = new FinVoucherDetailVo();
         BeanUtils.copyProperties(voucher, vo);
         vo.setEntries(entries);
+        vo.setStorageBlobVOList(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.FIN_VOUCHER, id));
         return vo;
     }
 
diff --git a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
index 9c63efb..ef7e57c 100644
--- a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -204,6 +204,7 @@
     SALES_REFUND_AMOUNT_ORDER("sales_refund_amount_order"),
     SALES_RECEIPT_RETURN("sales_receipt_return"),
     ACCOUNT_EXPENSE("account_expense"),
+    FIN_VOUCHER("fin_voucher"),
     ACCOUNT_FILE("account_file");
 
     private final String type;
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index bda6bcf..6d34f6b 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -260,7 +260,7 @@
   upload-dir: D:/ruoyi/prod/uploads # 姝e紡鐩綍 鍚庢湡鍒犻櫎
   path: D:/ruoyi/prod/uploads # 涓婁紶鐩綍
   urlPrefix: /common # 閾炬帴鍓嶇紑
-  domain: http://127.0.0.1:7005 # 鍩熷悕鍓嶇紑
+  domain: http://127.0.0.1:7006 # 鍩熷悕鍓嶇紑
   expired: 120 # 杩囨湡鏃堕棿(鍗曚綅:鍒嗛挓)
   useLimit: 10 # 浣跨敤娆℃暟
   compress: true # 鏄惁鍘嬬缉

--
Gitblit v1.9.3