From 09d3d31899bb346c6fe8ad5d89168730b5dfae4a Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 08 五月 2026 13:45:42 +0800
Subject: [PATCH] refactor(business): 重构业务机会和销售台账的文件管理功能

---
 src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java
index db25ba6..f686454 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/BusinessOpportunityServiceImpl.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.dto.BusinessDescriptionDto;
@@ -56,11 +55,41 @@
         LoginUser loginUser = SecurityUtils.getLoginUser();
         IPage<BusinessOpportunityDto> businessOpportunityDtoIPage = businessOpportunityMapper.listPage(page, businessOpportunityDto);
 
-        businessOpportunityDtoIPage.getRecords().forEach(item -> {
-            item.setBusinessCommonFiles(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.FILE, RecordTypeEnum.BUSINESS_OPPORTUNITY, item.getId()));
-            item.setBusinessDescription(businessDescriptionMapper.selectList(Wrappers.lambdaQuery(BusinessDescription.class)
-                    .eq(BusinessDescription::getBusinessOpportunityId, item.getId())
-                    .orderByDesc(BusinessDescription::getCreateTime)));
+        businessOpportunityDtoIPage.getRecords().forEach(opportunity -> {
+            ArrayList<StorageBlobVO> storageBlobVOS = new ArrayList<>();
+            // 鏌ヨ涓氬姟鎻忚堪鍒楄〃
+            List<BusinessDescription> businessDescriptions = businessDescriptionMapper.selectList(
+                    new LambdaQueryWrapper<BusinessDescription>()
+                            .eq(BusinessDescription::getBusinessOpportunityId, opportunity.getId())
+                            .orderByDesc(BusinessDescription::getCreateTime)
+            );
+
+            // 鏀堕泦姣忎釜涓氬姟鎻忚堪鐨勬枃浠�
+            if (businessDescriptions != null && !businessDescriptions.isEmpty()) {
+                businessDescriptions.forEach(description -> {
+                    List<StorageBlobVO> files = fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(
+                            ApplicationTypeEnum.FILE,
+                            RecordTypeEnum.BUSINESS_DESCRIPTION,
+                            Long.valueOf(description.getId())
+                    );
+                    if (files != null && !files.isEmpty()) {
+                        storageBlobVOS.addAll(files);
+                    }
+                });
+            }
+
+            // 鏌ヨ鍟嗘満涓昏〃鐨勬枃浠�
+            List<StorageBlobVO> opportunityFiles = fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(
+                    ApplicationTypeEnum.FILE,
+                    RecordTypeEnum.BUSINESS_OPPORTUNITY,
+                    opportunity.getId()
+            );
+            if (opportunityFiles != null && !opportunityFiles.isEmpty()) {
+                storageBlobVOS.addAll(opportunityFiles);
+            }
+
+            opportunity.setBusinessCommonFiles(storageBlobVOS);
+            opportunity.setBusinessDescription(businessDescriptions);
         });
         return businessOpportunityDtoIPage;
 
@@ -130,7 +159,8 @@
             unipushService.sendClientMessage(sysNoticeList);
         }
         int insert = businessDescriptionMapper.insert(businessDescription);
-        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.BUSINESS_DESCRIPTION, businessDescription.getBusinessOpportunityId(),  businessDescription.getStorageBlobDTOS());
+
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.BUSINESS_DESCRIPTION, Long.valueOf(businessDescription.getId()),  businessDescription.getBusinessCommonFiles());
 
         return insert > 0 ? R.ok() : R.fail();
     }

--
Gitblit v1.9.3