From ae39e7428d9157617f0453680ecfa069d4c09ef4 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Fri, 25 Oct 2024 13:56:33 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E8=AF=81=E6=8D=AE?= =?UTF-8?q?=E6=94=B9=E9=80=A0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../police/dto/CaseEvidenceDetailDTO.java | 11 ++++----- .../police/dto/EvidenceDirectoryDTO.java | 1 + .../service/EvidenceDirectoryService.java | 4 ++++ .../service/impl/CaseEvidenceServiceImpl.java | 9 +++++++- .../impl/EvidenceDirectoryServiceImpl.java | 23 ++++++++++++++++--- 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java b/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java index db83630..c8960a1 100644 --- a/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java +++ b/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java @@ -108,6 +108,8 @@ public class CaseEvidenceDetailDTO { } this.fileId = caseEvidence.getFileId(); this.directoryId = caseEvidence.getDirectoryId(); + this.updateTime = caseEvidence.getUpdateTime(); + this.evidenceFormat = caseEvidence.getFileType(); } this.fileList = fileList; } @@ -152,14 +154,9 @@ public class CaseEvidenceDetailDTO { * 设置文件格式 如果目录等级为1、2,则目录格式未文件。 如果目录等级为3,则文件格式为文件夹 * @param directory */ - public void setEvidenceFormatValue(EvidenceDirectoryDTO directory,boolean ifFile){ - - if (ifFile){ - this.evidenceFormat = CollUtil.getFirst(this.fileList).getFileType(); - return; - } + public void setEvidenceFormatValue(EvidenceDirectoryDTO directory){ - if (null == directory){ + if (StrUtil.isNotEmpty(this.evidenceFormat) || null == directory){ return; } if (1 == directory.getLevel() || 2 == directory.getLevel()){ diff --git a/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java b/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java index fafd577..c07f087 100644 --- a/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java +++ b/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java @@ -59,6 +59,7 @@ public class EvidenceDirectoryDTO { public EvidenceDirectoryDTO() { } public EvidenceDirectoryDTO(List children) { + this.child = children; } public EvidenceDirectoryDTO(EvidenceDirectory directory){ diff --git a/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java b/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java index 0d6fd6b..0b49056 100644 --- a/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java +++ b/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java @@ -7,6 +7,8 @@ import com.supervision.police.dto.EvidenceDirectoryDTO; import com.supervision.police.dto.EvidenceFileDTO; import java.util.List; +import java.util.function.Consumer; +import java.util.function.Supplier; /** * @author Administrator @@ -45,4 +47,6 @@ public interface EvidenceDirectoryService extends IService { * @return 目录提示词 */ List listCategoryPrompt(String caseId); + + void removeDirectoryIf(String directoryId, Supplier condition); } diff --git a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java index 58d7828..3a3b852 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -133,6 +133,13 @@ public class CaseEvidenceServiceImpl extends ServiceImpl evidenceDirectoryS = listDirectoryTree(caseId); + EvidenceDirectoryDTO directoryDTO = new EvidenceDirectoryDTO(evidenceDirectoryS); + EvidenceDirectoryDTO directory = directoryDTO.findDirectory(caseEvidence.getDirectoryId()); + evidenceDirectoryService.removeDirectoryIf(directory.getId(),()->directory.getLevel() == 3); caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId()); } } else { @@ -196,7 +203,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl> fileMap = fileInfoList.stream().collect(Collectors.groupingBy(EvidenceFileDTO::getDirectoryId)); + + // 避免出现重复数据 + Set fileIds = new HashSet<>(); + Map> fileMap = fileInfoList.stream().filter(item->{ + if (fileIds.contains(item.getFileId())){ + return false; + } + fileIds.add(item.getFileId()); + return true; + }).collect(Collectors.groupingBy(EvidenceFileDTO::getDirectoryId)); for (EvidenceDirectoryDTO directoryDTO : directoryDTOS) { //directoryDTO.appendChildDirectory(); directoryDTO.appendChildFile(fileMap); @@ -73,6 +82,14 @@ public class EvidenceDirectoryServiceImpl extends ServiceImpl condition) { + + if (condition.get()){ + this.removeById(directoryId); + } + } }