岗位列表-添加岗位联系人
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user