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; } 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; } 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; } 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; } 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; } 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