diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java index 55db5b5..2fc87ea 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java @@ -101,6 +101,23 @@ public class CmsJobController extends BaseController return getDataTable(list); } + @ApiOperation("查询面试安排列表") + @PreAuthorize("@ss.hasPermi('cms:job:msyyList')") + @GetMapping("/msyyList") + public TableDataInfo msyyList(Job job,HttpServletRequest request) + { + if (RoleUtils.isCompanyAdmin()) { + Company company = companyService.queryCodeCompany(RoleUtils.getCurrentUseridCard()); + if(company==null){ + return getDataTable(new ArrayList<>()); + } + job.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null); + } + startPage(); + List list = jobService.selectMsyyHttpJobList(job,request); + return getDataTable(list); + } + /** * 获取岗位详细信息 */ diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java index a42e32b..8cf37b8 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java @@ -77,4 +77,7 @@ public interface JobMapper extends BaseMapper @InterceptorIgnore(blockAttack = "true") Long delRowWork(); + + + public List selectMsyyJobList(Job job); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java index 490146d..460f64b 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java @@ -105,6 +105,8 @@ public interface IJobService public List selectHttpJobList(Job job,HttpServletRequest request); + public List selectMsyyHttpJobList(Job job,HttpServletRequest request); + /** * 获取微信抓取的重复数据条数 * @param job 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 6b21d31..177e48a 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 @@ -1583,4 +1583,66 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe e.printStackTrace(); } } + + @Override + public List selectMsyyHttpJobList(Job job,HttpServletRequest request) + { + List jobs = jobMapper.selectMsyyJobList(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) + .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 fileUrl = file.getFileUrl().trim(); + String fullFileUrl = StringUtils.join(finalBaseFilePath, fileUrl); + 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(); + String jobIdSm4=SM4Utils.encryptEcb(SM4Constants.SM4_KET, String.valueOf(jobItemId)); + List jobFiles = fileGroupMap.getOrDefault(jobItemId, Collections.emptyList()); + List jobContent = jobContactGroupMap.getOrDefault(jobItemId, Collections.emptyList()); + jobItem.setFilesList(jobFiles); + jobItem.setJobContactList(jobContent); + jobItem.setEncryptJobId(jobIdSm4); + jobItem.setJobUrl(StringUtil.BASE_WW_GW+jobIdSm4); + } + }); + } + return jobs; + } } diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml index 1c9f364..619fc0a 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml @@ -436,4 +436,56 @@ delete from row_work + + \ No newline at end of file