liyong
2026-05-08 09d3d31899bb346c6fe8ad5d89168730b5dfae4a
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();
    }