From 5aa3a1b81f5f96dee74592297ab921599e1e57e0 Mon Sep 17 00:00:00 2001 From: sh Date: Mon, 29 Jun 2026 22:08:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=9D=A2=E8=AF=95=E5=AE=89?= =?UTF-8?q?=E6=8E=92=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/cms/CmsJobController.java | 17 +++++ .../java/com/ruoyi/cms/mapper/JobMapper.java | 3 + .../com/ruoyi/cms/service/IJobService.java | 2 + .../cms/service/impl/JobServiceImpl.java | 62 +++++++++++++++++++ .../main/resources/mapper/app/JobMapper.xml | 52 ++++++++++++++++ 5 files changed, 136 insertions(+) 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