From 0fe02ff1a919ed96d35fb3037add744b4a52f6c4 Mon Sep 17 00:00:00 2001 From: sh Date: Thu, 4 Dec 2025 20:59:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98=E5=B2=97?= =?UTF-8?q?=E4=BD=8D-=E4=BF=9D=E5=AD=98=E8=81=94=E7=B3=BB=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/service/impl/JobServiceImpl.java | 85 ++++++++++++++----- 1 file changed, 64 insertions(+), 21 deletions(-) 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 8469013..120a1bf 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 @@ -421,32 +421,75 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe int i=jobMapper.updateById(job); //修改岗位联系人列表 if(i>0){ - LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate() - .eq(JobContact::getJobId, job.getJobId()) - .set(JobContact::getDelFlag, Constants.Del_FLAG_DELETE); - - JobContact emptyEntity = new JobContact(); - jobContactMapper.update(emptyEntity, updateWrapper); - List jobContactList = job.getJobContactList() != null ? job.getJobContactList() : Collections.emptyList(); - List insertList = jobContactList.stream() - .filter(Objects::nonNull).map(x -> { - JobContact jobContact = new JobContact(); - jobContact.setJobId(job.getJobId()); - return jobContact; - }).collect(Collectors.toList()); - if (!insertList.isEmpty()) { - jobContactMapper.batchInsert(insertList); - } + // 处理联系人 + handleJobContact(job); //添加附件 - List filesList = job.getFilesList() != null ? job.getFilesList() : Collections.emptyList(); - List longs = filesList.stream().filter(Objects::nonNull).map(File::getBussinessid).collect(Collectors.toList()); - if(!longs.isEmpty()){ - fileMapper.updateBussinessids(longs,job.getJobId()); - } + handleJobFile(job); } return i; } + /** + * 处理联系人 + * @param job + */ + private void handleJobContact(Job job) { + List jobContactList = Optional.ofNullable(job.getJobContactList()).orElse(Collections.emptyList()); + if (CollectionUtils.isEmpty(jobContactList)) { + return; + } + List insertList = new ArrayList<>(); + List updateList = new ArrayList<>(); + + for (JobContact originContact : jobContactList) { + if (originContact == null) { + continue; + } + + JobContact targetContact = new JobContact(); + targetContact.setJobId(job.getJobId()); + targetContact.setContactPerson(originContact.getContactPerson()); + targetContact.setContactPersonPhone(originContact.getContactPersonPhone()); + targetContact.setPosition(originContact.getPosition()); + + if (originContact.getId() == null) { + insertList.add(targetContact); + } else { + targetContact.setId(originContact.getId()); + updateList.add(targetContact); + } + } + + if (!CollectionUtils.isEmpty(insertList)) { + jobContactMapper.batchInsert(insertList); + } + + if (!CollectionUtils.isEmpty(updateList)) { + updateList.forEach(contact -> { + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate() + .eq(JobContact::getId, contact.getId()); + jobContactMapper.update(contact, updateWrapper); + }); + } + } + + /** + * 处理附件 + * @param job + */ + private void handleJobFile(Job job) { + List filesList = Optional.ofNullable(job.getFilesList()).orElse(Collections.emptyList()); + List fileIds = filesList.stream() + .filter(Objects::nonNull) + .map(File::getBussinessid) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (!CollectionUtils.isEmpty(fileIds)) { + fileMapper.updateBussinessids(fileIds, job.getJobId()); + } + } + /** * 批量删除岗位 *