From fc549d9fa0e6c4b930354b42c4b296716b91016c Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 6 Nov 2024 14:24:19 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../police/dto/CaseEvidenceDetailDTO.java | 5 ++++ .../police/dto/EvidenceDirectoryDTO.java | 24 +++++++++++++++++++ .../service/EvidenceDirectoryService.java | 13 ++++------ .../service/impl/CaseEvidenceServiceImpl.java | 17 +++++++++---- .../impl/EvidenceDirectoryServiceImpl.java | 24 +++++++++---------- 5 files changed, 56 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java b/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java index 16fe5c8..5382d0f 100644 --- a/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java +++ b/src/main/java/com/supervision/police/dto/CaseEvidenceDetailDTO.java @@ -88,6 +88,11 @@ public class CaseEvidenceDetailDTO { private int directoryLevel; + /** + * 目录名称路径 + */ + private String directoryNamePath; + public CaseEvidenceDetailDTO() { } diff --git a/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java b/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java index 8dc77b6..83ff6ac 100644 --- a/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java +++ b/src/main/java/com/supervision/police/dto/EvidenceDirectoryDTO.java @@ -55,6 +55,10 @@ public class EvidenceDirectoryDTO { private int level = -1; + /** + * 证据数量 + */ + private int evidenceCount; public EvidenceDirectoryDTO() { } @@ -308,4 +312,24 @@ public class EvidenceDirectoryDTO { return new ArrayList<>(1); } + + public void appendEvidenceCount(List caseEvidenceList) { + + if (CollUtil.isEmpty(caseEvidenceList)){ + return; + } + List directoryIds = this.listAllDirectory().stream().map(EvidenceDirectoryDTO::getId).collect(Collectors.toList()); + directoryIds.add(this.id); + long count = caseEvidenceList.stream().filter(caseEvidence -> + StrUtil.isNotEmpty(caseEvidence.getDirectoryId()) && directoryIds.contains(caseEvidence.getDirectoryId()) + ).count(); + this.evidenceCount = (int) count; + + if (CollUtil.isNotEmpty(this.child)){ + for (EvidenceDirectoryDTO directoryDTO : this.child) { + directoryDTO.appendEvidenceCount(caseEvidenceList); + } + } + + } } diff --git a/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java b/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java index 0b49056..0bd0f23 100644 --- a/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java +++ b/src/main/java/com/supervision/police/service/EvidenceDirectoryService.java @@ -1,5 +1,6 @@ package com.supervision.police.service; +import com.supervision.police.domain.CaseEvidence; import com.supervision.police.domain.EvidenceDirectory; import com.baomidou.mybatisplus.extension.service.IService; import com.supervision.police.dto.CategoryPromptDTO; @@ -7,7 +8,6 @@ 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; /** @@ -24,14 +24,6 @@ public interface EvidenceDirectoryService extends IService { */ List listDirectoryTree(String caseId); - /** - * 获取目录级别信息 - * @param directoryId 目录id - * @param evidenceDirectoryDTOS 案件目录列表 - * @return 目录级别信息 - */ - EvidenceDirectoryDTO findDirectoryById(String directoryId, List evidenceDirectoryDTOS); - /** * 追加文件信息 * @param directoryDTOS 目录信息列表树 @@ -41,6 +33,9 @@ public interface EvidenceDirectoryService extends IService { void appendFile(List directoryDTOS, List fileInfoList); + void appendEvidenceCount(List directoryDTOS, List caseEvidenceList); + + /** * 获取目录提示词 * @param caseId 案件id 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 dd591f1..1592c12 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -206,7 +206,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl evidenceDirectoryDTOS = listDirectoryTree(caseId); - EvidenceDirectoryDTO queryDirectory = evidenceDirectoryService.findDirectoryById(directoryId, evidenceDirectoryDTOS); + + EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(evidenceDirectoryDTOS); + EvidenceDirectoryDTO queryDirectory = rootDirectory.findDirectory(directoryId); IPage fileDTOIPage = pageListCaseEvidence(queryDirectory, caseId, directoryId, evidenceName, new Page<>(pageNum, pageSize)); @@ -220,7 +222,6 @@ public class CaseEvidenceServiceImpl extends ServiceImpl fileInfoList = evidenceFileService.listFileInfo(evidenceIds); Map> evidenceFileMap = fileInfoList.stream().collect(Collectors.groupingBy(EvidenceFileDTO::getEvidenceId)); List recordFileDTOS = fileOcrProcessService.queryFileList(fileInfoList.stream().map(EvidenceFileDTO::getFileId).toList()); - // 转换分页结果 //查询字典 List evidenceTypeDic = comDictionaryService.lambdaQuery().eq(ComDictionary::getType, "evidence_type").list(); @@ -230,11 +231,13 @@ public class CaseEvidenceServiceImpl extends ServiceImpl listDirectoryTree(String caseId) { Assert.notEmpty(caseId, "案件ID不能为空!"); + List evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId); - return evidenceDirectoryService.listDirectoryTree(caseId); + evidenceDirectoryService.appendEvidenceCount(evidenceDirectoryDTOS, + super.lambdaQuery().eq(CaseEvidence::getCaseId, caseId).list()); + return evidenceDirectoryDTOS; } @Override @@ -930,6 +936,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl(); } + EvidenceDirectoryDTO oldRootDirectory = new EvidenceDirectoryDTO(oldEvidenceDirectoryDTOS); List fileIdList = newDirectoryDTOS.stream().flatMap(directoryDTO -> directoryDTO.listAllFileId().stream()).toList(); Map fileMap = minioService.listMinioFile(fileIdList).stream() .collect(Collectors.toMap(MinioFile::getId, Function.identity())); @@ -939,7 +946,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl item.setDirectoryLevel(1)).collect(Collectors.toList()); } - @Override - public EvidenceDirectoryDTO findDirectoryById(String directoryId, - List evidenceDirectoryDTOS) { - - for (EvidenceDirectoryDTO directoryDTO : evidenceDirectoryDTOS) { - EvidenceDirectoryDTO directory = directoryDTO.findDirectory(directoryId); - if (null != directory){ - return directory; - } - } - return null; - } - @Override public void appendFile(List directoryDTOS, List fileInfoList) { @@ -76,6 +64,16 @@ public class EvidenceDirectoryServiceImpl extends ServiceImpl directoryDTOS, List caseEvidenceList) { + if (CollUtil.isEmpty(directoryDTOS) || CollUtil.isEmpty(caseEvidenceList)){ + return; + } + for (EvidenceDirectoryDTO directoryDTO : directoryDTOS) { + directoryDTO.appendEvidenceCount(caseEvidenceList); + } + } + @Override public List listCategoryPrompt(String caseId) { Assert.notEmpty(caseId,"案件id不能为空!");