From 6e5455ca25d3021d4e7b09de33b70a5ad1f3f70a Mon Sep 17 00:00:00 2001 From: sh Date: Thu, 4 Dec 2025 19:30:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E5=88=97=E8=A1=A8-=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B2=97=E4=BD=8D=E8=81=94=E7=B3=BB=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/cms/mapper/JobContactMapper.java | 3 +++ .../cms/service/impl/JobServiceImpl.java | 23 +++++++++++++++++-- .../resources/mapper/app/JobContactMapper.xml | 18 +++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java index c18e69f..867866f 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobContactMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.cms.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.cms.domain.JobContact; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,4 +18,6 @@ public interface JobContactMapper extends BaseMapper { List getSelectList(JobContact jobContact); int batchInsert(List list); + + List selectByJobIds(@Param("jobIds") 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 e1a9b38..8469013 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 @@ -281,22 +281,39 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe List jobs = jobMapper.selectJobList(job); if (CollectionUtils.isNotEmpty(jobs)) { String baseFilePath = StringUtil.getFilePath(request); + baseFilePath = baseFilePath == null ? "" : baseFilePath; List jobIds = jobs.stream().filter(Objects::nonNull) .map(Job::getJobId).filter(Objects::nonNull) - .distinct().collect(Collectors.toList()); + .collect(Collectors.toList()); + //查询所有附件 List allFiles = CollectionUtils.isNotEmpty(jobIds) ? Optional.ofNullable(fileMapper.selectFileListByBussinessIds(jobIds)) .orElseGet(Collections::emptyList) : Collections.emptyList(); + //查询所有联系人 + List allJobContacts = CollectionUtils.isNotEmpty(jobIds) + ? Optional.ofNullable(jobContactMapper.selectByJobIds(jobIds)).orElse(Collections.emptyList()) + : Collections.emptyList(); + //岗位联系人 + Map> jobContactGroupMap = allJobContacts.stream() + .filter(Objects::nonNull) + .filter(contact -> Objects.nonNull(contact.getJobId())) + .collect(Collectors.groupingBy( + JobContact::getJobId, + Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList) + )); + //附件分组 + String finalBaseFilePath = baseFilePath; 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()); + String fileUrl = file.getFileUrl().trim(); + String fullFileUrl = StringUtils.join(finalBaseFilePath, fileUrl); file.setFileUrl(fullFileUrl); }) .collect(Collectors.groupingBy( @@ -308,7 +325,9 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe if (Objects.nonNull(jobItem)) { Long jobItemId = jobItem.getJobId(); List jobFiles = fileGroupMap.getOrDefault(jobItemId, Collections.emptyList()); + List jobContent = jobContactGroupMap.getOrDefault(jobItemId, Collections.emptyList()); jobItem.setFilesList(jobFiles); + jobItem.setJobContactList(jobContent); } }); } diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml index 9814e24..e22e1d8 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/JobContactMapper.xml @@ -55,4 +55,22 @@ + +