岗位列表-添加岗位联系人

This commit is contained in:
sh
2025-12-04 19:30:51 +08:00
parent 879bd8c009
commit 6e5455ca25
3 changed files with 42 additions and 2 deletions

View File

@@ -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<JobContact> {
List<JobContact> getSelectList(JobContact jobContact);
int batchInsert(List<JobContact> list);
List<JobContact> selectByJobIds(@Param("jobIds") List<Long> longs);
}

View File

@@ -281,22 +281,39 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
List<Job> jobs = jobMapper.selectJobList(job);
if (CollectionUtils.isNotEmpty(jobs)) {
String baseFilePath = StringUtil.getFilePath(request);
baseFilePath = baseFilePath == null ? "" : baseFilePath;
List<Long> jobIds = jobs.stream().filter(Objects::nonNull)
.map(Job::getJobId).filter(Objects::nonNull)
.distinct().collect(Collectors.toList());
.collect(Collectors.toList());
//查询所有附件
List<File> allFiles = CollectionUtils.isNotEmpty(jobIds)
? Optional.ofNullable(fileMapper.selectFileListByBussinessIds(jobIds))
.orElseGet(Collections::emptyList)
: Collections.emptyList();
//查询所有联系人
List<JobContact> allJobContacts = CollectionUtils.isNotEmpty(jobIds)
? Optional.ofNullable(jobContactMapper.selectByJobIds(jobIds)).orElse(Collections.emptyList())
: Collections.emptyList();
//岗位联系人
Map<Long, List<JobContact>> 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<Long, List<File>> 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<JobMapper,Job> implements IJobSe
if (Objects.nonNull(jobItem)) {
Long jobItemId = jobItem.getJobId();
List<File> jobFiles = fileGroupMap.getOrDefault(jobItemId, Collections.emptyList());
List<JobContact> jobContent = jobContactGroupMap.getOrDefault(jobItemId, Collections.emptyList());
jobItem.setFilesList(jobFiles);
jobItem.setJobContactList(jobContent);
}
});
}

View File

@@ -55,4 +55,22 @@
</foreach>
</insert>
<select id="selectByJobIds" parameterType="java.util.List" resultMap="jobContactResult">
<include refid="JobContactVo"/>
<where> del_flag = '0'
<if test="jobIds != null and jobIds.size() > 0">
AND job_id IN (
<foreach collection="jobIds" item="jobId" separator=",">
<if test="jobId != null">
#{jobId}
</if>
</foreach>
)
</if>
<if test="jobIds == null or jobIds.size() == 0">
AND 1 = 0
</if>
</where>
</select>
</mapper>