From c7a252cc254f7f4fe998cd3a4764e14d52552958 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期六, 25 四月 2026 16:50:56 +0800
Subject: [PATCH] 添加相关接口附件信息

---
 src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java |    6 +++++-
 src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java                                  |    4 +++-
 src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java                            |    3 +++
 src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java                             |    2 ++
 src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java               |   15 ++++++++++-----
 src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java                              |    3 ++-
 6 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java b/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
index 5c8b7c6..e05ce2e 100644
--- a/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
@@ -6,7 +6,10 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ruoyi.basic.dto.StorageBlobVO;
+import com.ruoyi.basic.enums.RecordTypeEnum;
 import com.ruoyi.basic.service.CustomerFollowUpFileService;
+import com.ruoyi.basic.utils.FileUtil;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.projectManagement.mapper.PlanMapper;
 import com.ruoyi.projectManagement.mapper.PlanNodeMapper;
@@ -40,6 +43,7 @@
     private final CustomerFollowUpFileService customerFollowUpFileService;
 
     private final PlanNodeMapper planNodeMapper;
+    private final FileUtil fileUtil;
 
     @Lazy
     @Autowired
@@ -49,9 +53,8 @@
     @Transactional(rollbackFor = Exception.class)
     public void savePlan(SavePlanVo savePlanVo) {
         Plan plan = BeanUtil.copyProperties(savePlanVo, Plan.class);
-        // 闄勪欢澶勭悊 , 鎷兼帴
-        String attachments = String.join(",", Optional.ofNullable(savePlanVo.getAttachmentIds()).orElse(Collections.emptyList()));
-        plan.setAttachment(attachments);
+        // 闄勪欢澶勭悊
+        fileUtil.saveStorageAttachmentByRecordTypeAndRecordId("", RecordTypeEnum.PLAN, savePlanVo.getId(), savePlanVo.getStorageBlobDTOs());
         if (savePlanVo.getId() == null) {
             planMapper.insert(plan);
         } else {
@@ -136,12 +139,14 @@
         IPage<Plan> planIPage = planMapper.selectPlanPage(searchPlanVo);
         IPage<PlanVo> resultPage = planIPage.convert(plan -> BeanUtil.copyProperties(plan, PlanVo.class));
         // 鏂囦欢鑾峰彇
-        customerFollowUpFileService.fillAttachment(resultPage.getRecords(), PlanVo::getAttachment, PlanVo::setAttachmentList);
         Map<Long, List<PlanNodeVo>> collect = getPlanNodeByPlanIds(resultPage.getRecords().stream().map(PlanVo::getId).collect(Collectors.toList()))
                 .stream()
                 .map(it -> BeanUtil.copyProperties(it, PlanNodeVo.class))
                 .collect(Collectors.groupingBy(PlanNodeVo::getProjectManagementPlanId, Collectors.toList()));
-        resultPage.getRecords().forEach(planVo -> planVo.setPlanNodeList(collect.getOrDefault(planVo.getId(), Collections.emptyList())));
+        resultPage.getRecords().forEach(planVo -> {
+            planVo.setPlanNodeList(collect.getOrDefault(planVo.getId(), Collections.emptyList()));
+            planVo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.PLAN, planVo.getId()));
+        });
         return resultPage;
     }
 
diff --git a/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java b/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java
index ed20a61..2025777 100644
--- a/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java
+++ b/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ruoyi.basic.dto.StorageBlobVO;
 import com.ruoyi.basic.enums.RecordTypeEnum;
 import com.ruoyi.basic.service.CustomerFollowUpFileService;
 import com.ruoyi.basic.utils.FileUtil;
@@ -158,7 +159,10 @@
         List<InfoStageDto> listByInfoId = getListDtoByInfoId(infoId);
         List<InfoStageVo> infoStageVos = BeanUtil.copyToList(listByInfoId, InfoStageVo.class);
         // 澶勭悊闄勪欢
-        customerFollowUpFileService.fillAttachment(infoStageVos, InfoStageVo::getAttachment, InfoStageVo::setAttachmentList);
+        for (InfoStageVo infoStageVo : infoStageVos) {
+            List<StorageBlobVO> storageBlobVOs = fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.INFO_STAGE, infoStageVo.getId());
+            infoStageVo.setStorageBlobVOs(storageBlobVOs != null ? storageBlobVOs : new ArrayList<>());
+        }
         return infoStageVos;
     }
 
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java b/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java
index 8be6a2d..71d7ee5 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java
@@ -1,5 +1,6 @@
 package com.ruoyi.projectManagement.vo;
 
+import com.ruoyi.basic.dto.StorageBlobVO;
 import com.ruoyi.common.vo.SimpleFileVo;
 import com.ruoyi.projectManagement.dto.InfoStageDto;
 import lombok.AllArgsConstructor;
@@ -21,4 +22,5 @@
 public class InfoStageVo extends InfoStageDto implements java.io.Serializable {
 
     private List<SimpleFileVo> attachmentList; // 闄勪欢鍒楄〃
+    private List<StorageBlobVO> storageBlobVOs;
 }
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java b/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
index 492435e..6cba06b 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
@@ -2,6 +2,8 @@
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
 import com.ruoyi.common.vo.SimpleFileVo;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -44,5 +46,5 @@
     private LocalDateTime updateTime;
 
     private List<PlanNodeVo> planNodeList;
-
+    private List<StorageBlobVO> storageBlobVOs;
 }
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java b/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
index f3ce9df..e1042b2 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
@@ -1,6 +1,7 @@
 package com.ruoyi.projectManagement.vo;
 
 
+import com.ruoyi.basic.dto.StorageBlobDTO;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -32,5 +33,5 @@
     @Valid
     private List<SavePlanNodeVo> savePlanNodeList;
 
-
+    private List<StorageBlobDTO> storageBlobDTOs;
 }
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java b/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
index 3a29444..efe2bc5 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
@@ -1,12 +1,15 @@
 package com.ruoyi.projectManagement.vo;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @author buhuazhen

--
Gitblit v1.9.3