From 2ee9e158e3129070f6b1fd953da1540f05d4f2b0 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 10 七月 2026 18:04:50 +0800
Subject: [PATCH] 修改报工

---
 src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

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..43680f9 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()
@@ -162,6 +183,25 @@
         return buildTemplateVo(template, nodeMap, approverMap);
     }
 
+    @Override
+    public ApprovalTemplateVo getEnabledTemplateByBusinessType(Long businessType) {
+        if (businessType == null) {
+            return null;
+        }
+        ApprovalTemplate template = this.getOne(
+                new LambdaQueryWrapper<ApprovalTemplate>()
+                        .eq(ApprovalTemplate::getDeleted, 0)
+                        .eq(ApprovalTemplate::getEnabled, 1)
+                        .eq(ApprovalTemplate::getBusinessType, businessType)
+                        .orderByDesc(ApprovalTemplate::getId)
+                        .last("limit 1")
+        );
+        if (template == null) {
+            return null;
+        }
+        return getApprovalTemplateVoById(template.getId());
+    }
+
     /**
      * 鎵归噺濉厖妯℃澘鑺傜偣鍙婅妭鐐瑰鎵逛汉锛岄伩鍏嶅惊鐜煡搴撱��
      */
@@ -221,6 +261,12 @@
                 .collect(Collectors.toList());
 
         templateVo.setNodes(nodeVos);
+        // 鏌ヨ闄勪欢
+        templateVo.setStorageBlobDTOs(
+                fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(
+                        ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVAL_TEMPLATE, template.getId()
+                )
+        );
         return templateVo;
     }
 

--
Gitblit v1.9.3