From ab1a58211470fcc2b93e3b5082e516409c79e11b Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期一, 01 六月 2026 17:07:35 +0800
Subject: [PATCH] fix: 审批管理附件问题修复
---
src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java | 27 +++++++++++++++++++++++++++
src/main/java/com/ruoyi/approve/bean/vo/ApprovalTemplateVo.java | 3 +++
src/main/java/com/ruoyi/approve/bean/dto/ApprovalTemplateDto.java | 3 +++
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java | 3 ++-
4 files changed, 35 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/bean/dto/ApprovalTemplateDto.java b/src/main/java/com/ruoyi/approve/bean/dto/ApprovalTemplateDto.java
index 35952a5..668bc8c 100644
--- a/src/main/java/com/ruoyi/approve/bean/dto/ApprovalTemplateDto.java
+++ b/src/main/java/com/ruoyi/approve/bean/dto/ApprovalTemplateDto.java
@@ -1,6 +1,7 @@
package com.ruoyi.approve.bean.dto;
import com.ruoyi.approve.pojo.ApprovalTemplate;
+import com.ruoyi.basic.dto.StorageBlobDTO;
import lombok.Data;
import java.util.List;
@@ -9,4 +10,6 @@
public class ApprovalTemplateDto extends ApprovalTemplate {
private List<ApprovalTemplateNodeDto> nodes;
+
+ private List<StorageBlobDTO> storageBlobDTOs;
}
diff --git a/src/main/java/com/ruoyi/approve/bean/vo/ApprovalTemplateVo.java b/src/main/java/com/ruoyi/approve/bean/vo/ApprovalTemplateVo.java
index 2793293..84a6904 100644
--- a/src/main/java/com/ruoyi/approve/bean/vo/ApprovalTemplateVo.java
+++ b/src/main/java/com/ruoyi/approve/bean/vo/ApprovalTemplateVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.approve.bean.vo;
import com.ruoyi.approve.pojo.ApprovalTemplate;
+import com.ruoyi.basic.dto.StorageBlobVO;
import lombok.Data;
import java.util.List;
@@ -11,4 +12,6 @@
private List<ApprovalTemplateNodeVo> nodes;
private String createdUserName;
+
+ private List<StorageBlobVO> storageBlobDTOs;
}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java
index 6a48121..a0b07d5 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java
@@ -18,10 +18,15 @@
import com.ruoyi.approve.pojo.ApprovalTemplateNodeApprover;
import com.ruoyi.approve.service.ApprovalTemplateNodeService;
import com.ruoyi.approve.service.ApprovalTemplateService;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.enums.ApplicationTypeEnum;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.utils.FileUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.Comparator;
@@ -43,6 +48,7 @@
private final ApprovalTemplateMapper approvalTemplateMapper;
private final ApprovalTemplateNodeService approvalTemplateNodeService;
private final ApprovalTemplateNodeApproverMapper approvalTemplateNodeApproverMapper;
+ private final FileUtil fileUtil;
@Override
public IPage<ApprovalTemplateVo> listPage(Page<ApprovalTemplateVo> page, ApprovalTemplateDto approvalTemplateDto) {
@@ -63,6 +69,11 @@
new LambdaQueryWrapper<ApprovalTemplateNodeApprover>()
.eq(ApprovalTemplateNodeApprover::getTemplateId, approvalTemplateDto.getId())
);
+ // 淇濆瓨闄勪欢
+ List<StorageBlobDTO> storageBlobDTOs = approvalTemplateDto.getStorageBlobDTOs();
+ if (!CollectionUtils.isEmpty(storageBlobDTOs)) {
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVAL_TEMPLATE, approvalTemplateDto.getId(), storageBlobDTOs);
+ }
return approvalTemplateNodeService.saveApprovalTemplateNode(
approvalTemplateDto.getId(),
approvalTemplateDto.getNodes()
@@ -80,6 +91,16 @@
new LambdaQueryWrapper<ApprovalTemplateNodeApprover>()
.eq(ApprovalTemplateNodeApprover::getTemplateId, approvalTemplateDto.getId())
);
+ // 淇濆瓨闄勪欢锛堜細鍏堝垹闄ゆ棫闄勪欢锛�
+ List<StorageBlobDTO> storageBlobDTOs = approvalTemplateDto.getStorageBlobDTOs();
+ if (!CollectionUtils.isEmpty(storageBlobDTOs)) {
+ fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVAL_TEMPLATE, approvalTemplateDto.getId(), storageBlobDTOs);
+ } else {
+ // 濡傛灉鍓嶇浼犵┖鏁扮粍锛屽垹闄ゆ棫闄勪欢
+ fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(
+ ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVAL_TEMPLATE, approvalTemplateDto.getId()
+ );
+ }
return approvalTemplateNodeService.saveApprovalTemplateNode(
approvalTemplateDto.getId(),
approvalTemplateDto.getNodes()
@@ -221,6 +242,12 @@
.collect(Collectors.toList());
templateVo.setNodes(nodeVos);
+ // 鏌ヨ闄勪欢
+ templateVo.setStorageBlobDTOs(
+ fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(
+ ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVAL_TEMPLATE, template.getId()
+ )
+ );
return templateVo;
}
diff --git a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
index 506a9d8..b0c01bb 100644
--- a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -201,7 +201,8 @@
ENTERPRISE_NEWS("enterprise_news"),
APPROVAL_INSTANCE("approval_instance"),
ACCOUNT_INVOICE_APPLICATION("account_invoice_application"),
- ACCOUNT_PURCHASE_INVOICE("account_purchase_invoice");
+ ACCOUNT_PURCHASE_INVOICE("account_purchase_invoice"),
+ APPROVAL_TEMPLATE("approval_template");
private final String type;
RecordTypeEnum(String type) { this.type = type; }
--
Gitblit v1.9.3