From 6adda93d5d5d413d597d0d2bc0f18ccbec3955d2 Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 3 Dec 2025 16:15:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=B2=97=E4=BD=8D=E5=88=97?= =?UTF-8?q?=E8=A1=A8-=E8=BF=94=E5=9B=9E=E9=99=84=E4=BB=B6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/cms/mapper/FileMapper.java | 2 ++ .../cms/service/impl/JobServiceImpl.java | 34 +++++++++++++++++++ .../main/resources/mapper/app/FileMapper.xml | 13 +++++++ 3 files changed, 49 insertions(+) diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java index 2fcb287..181c211 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java @@ -22,4 +22,6 @@ public interface FileMapper extends BaseMapper public List selectFileList(File file); public int updateBussinessids(@Param("longs") List longs,@Param("newBussinessid") Long bussinessid); + + public List selectFileListByBussinessIds(@Param("longs") List longs); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java index 907d58e..1e6982c 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java @@ -30,6 +30,7 @@ import com.ruoyi.common.utils.SiteSecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.spring.SpringUtils; +import org.apache.commons.collections4.CollectionUtils; import org.dromara.easyes.core.biz.EsPageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -251,6 +252,39 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe public List selectJobList(Job job) { List jobs = jobMapper.selectJobList(job); + if (CollectionUtils.isNotEmpty(jobs)) { + String baseFilePath = StringUtil.getFilePath(); + + List jobIds = jobs.stream().filter(Objects::nonNull) + .map(Job::getJobId).filter(Objects::nonNull) + .distinct().collect(Collectors.toList()); + + List allFiles = CollectionUtils.isNotEmpty(jobIds) + ? Optional.ofNullable(fileMapper.selectFileListByBussinessIds(jobIds)) + .orElseGet(Collections::emptyList) + : Collections.emptyList(); + + Map> fileGroupMap = allFiles.stream() + .filter(Objects::nonNull) + .filter(file -> Objects.nonNull(file.getBussinessid())) + .filter(file -> StringUtils.isNotBlank(file.getFileUrl())) + .peek(file -> { + String fullFileUrl = StringUtils.join(baseFilePath, file.getFileUrl().trim()); + file.setFileUrl(fullFileUrl); + }) + .collect(Collectors.groupingBy( + File::getBussinessid, + Collectors.collectingAndThen(Collectors.toList(),Collections::unmodifiableList) + )); + + jobs.forEach(jobItem -> { + if (Objects.nonNull(jobItem)) { + Long jobItemId = jobItem.getJobId(); + List jobFiles = fileGroupMap.getOrDefault(jobItemId, Collections.emptyList()); + jobItem.setFilesList(jobFiles); + } + }); + } return jobs; } diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml index a2e4fb3..a6db6c0 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml @@ -49,4 +49,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file