From 45fb0a749fe73156094c2400b825e0c4ec2f10bc Mon Sep 17 00:00:00 2001 From: wxyclub Date: Tue, 24 Oct 2023 22:11:52 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E4=BC=81=E6=A0=87=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E7=A8=BF=E6=96=87=E4=BB=B6=E5=87=BA=E7=8E=B0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E9=87=8D=E5=A4=8D=EF=BC=8C=E7=BC=96=E5=86=99=E5=8E=BB?= =?UTF-8?q?=E9=87=8D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SarBussStandFileController.java | 8 +++ .../service/ISarBussStandFileService.java | 2 + .../impl/SarBussStandFileServiceImpl.java | 55 +++++++++++++++++++ 3 files changed, 65 insertions(+) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/controller/SarBussStandFileController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/controller/SarBussStandFileController.java index 5984cd8e..d9e266bf 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/controller/SarBussStandFileController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/controller/SarBussStandFileController.java @@ -83,4 +83,12 @@ public class SarBussStandFileController extends BaseController //非在线编辑文件可转换pdf return sarBussStandFileEOService.batchUpdateSarBussFileMQ(); } + + + @ApiOperation(value = "企标发布稿重复问题,去重处理") + @GetMapping("/batchUpdateSarBussFileRepeat") + public ResponseMessage batchUpdateSarBussFileRepeat() throws Exception { + String result = sarBussStandFileEOService.batchUpdateSarBussFileRepeat(); + return Result.success(result); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/ISarBussStandFileService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/ISarBussStandFileService.java index 56c2d4f9..9225ee69 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/ISarBussStandFileService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/ISarBussStandFileService.java @@ -21,4 +21,6 @@ public interface ISarBussStandFileService extends IService { ResponseMessage> batchUpdateSarBussFile(); ResponseMessage> batchUpdateSarBussFileMQ(); + + String batchUpdateSarBussFileRepeat(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/impl/SarBussStandFileServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/impl/SarBussStandFileServiceImpl.java index 339249e0..bc40f93a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/impl/SarBussStandFileServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandFile/service/impl/SarBussStandFileServiceImpl.java @@ -7,11 +7,15 @@ import com.adc.da.common.UseModuleEnum; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.mq.CreateOnlineEditingFileMQService; +import com.adc.da.slrs.sarBussStandAttrInfo.entity.SarBussStandAttrInfo; +import com.adc.da.slrs.sarBussStandAttrInfo.service.ISarBussStandAttrInfoService; import com.adc.da.slrs.sarBussStandFile.entity.SarBussStandFile; import com.adc.da.slrs.sarBussStandFile.dao.SarBussStandFileDao; import com.adc.da.slrs.sarBussStandFile.service.ISarBussStandFileService; import com.adc.da.slrs.sarBussionessStand.service.impl.SarBussionessStandServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -20,7 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; /** *

@@ -47,6 +56,9 @@ public class SarBussStandFileServiceImpl extends ServiceImpl selectFileByAttId(String attId) throws Exception{ return sarStandFileEODao.selectFileByAttId(attId); @@ -140,4 +152,47 @@ public class SarBussStandFileServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SarBussStandAttrInfo::getValidFlag,"0"); + wrapper.isNotNull(SarBussStandAttrInfo::getFbgbuss); + wrapper.ne(SarBussStandAttrInfo::getFbgbuss,""); + wrapper.select(SarBussStandAttrInfo::getStandId,SarBussStandAttrInfo::getFbgbuss); + List allStand = standAttrInfoService.list(wrapper); + // 转换为Map + Map fbBussMap = new HashMap<>(); + allStand.forEach(each -> fbBussMap.put(each.getStandId(),each.getFbgbuss())); + // 循环每条数据 + for (Map.Entry entry : fbBussMap.entrySet()) { + // 把发布告文件做分割 + List attIdList = Arrays.asList(entry.getValue().split(",")); + // 根据发布稿文件查询发布告的具体信息,获取原文件名 + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(SarBussStandFile::getValidFlag,"0"); + wrapper1.in(SarBussStandFile::getAttId, attIdList); + List sarBussStandFileList = sarStandFileEODao.selectList(wrapper1); + // 对文件名做去重 + List collect = sarBussStandFileList.stream() + .filter(distinctByKey(SarBussStandFile::getFileName)) +// .sorted(Comparator.comparing(SarBussStandFile::getCreationTime)) + .collect(Collectors.toList()); + // 如果长度不相等,说明执行了去重,需要修改,重新放回企标详情表中 + String fbgbuss = collect.stream().map(SarBussStandFile::getAttId).collect(Collectors.joining(",")); + if (fbgbuss.length() != entry.getValue().length()) { + LambdaUpdateWrapper wrapper2 = new LambdaUpdateWrapper<>(); + wrapper2.eq(SarBussStandAttrInfo::getStandId,entry.getKey()); + wrapper2.set(SarBussStandAttrInfo::getFbgbuss,fbgbuss); + standAttrInfoService.update(wrapper2); + logger.info("出现重复的企标:"+ entry.getKey() + ",去重后发布稿包含:" + fbgbuss + "---去重前发布稿包含:" + entry.getValue()); + } + } + return "去重成功"; + } + public static Predicate distinctByKey(Function keyExtractor) { + Set seen = ConcurrentHashMap.newKeySet(); + return t -> seen.add(keyExtractor.apply(t)); + } }