1. 优化功能

topo_dev
xueqingkun 6 months ago
parent e1cf5eeab7
commit fc549d9fa0

@ -88,6 +88,11 @@ public class CaseEvidenceDetailDTO {
private int directoryLevel;
/**
*
*/
private String directoryNamePath;
public CaseEvidenceDetailDTO() {
}

@ -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<CaseEvidence> caseEvidenceList) {
if (CollUtil.isEmpty(caseEvidenceList)){
return;
}
List<String> 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);
}
}
}
}

@ -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<EvidenceDirectory> {
*/
List<EvidenceDirectoryDTO> listDirectoryTree(String caseId);
/**
*
* @param directoryId id
* @param evidenceDirectoryDTOS
* @return
*/
EvidenceDirectoryDTO findDirectoryById(String directoryId, List<EvidenceDirectoryDTO> evidenceDirectoryDTOS);
/**
*
* @param directoryDTOS
@ -41,6 +33,9 @@ public interface EvidenceDirectoryService extends IService<EvidenceDirectory> {
void appendFile(List<EvidenceDirectoryDTO> directoryDTOS, List<EvidenceFileDTO> fileInfoList);
void appendEvidenceCount(List<EvidenceDirectoryDTO> directoryDTOS, List<CaseEvidence> caseEvidenceList);
/**
*
* @param caseId id

@ -206,7 +206,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
Assert.notEmpty(caseId, "案件id不能为空");
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(caseId);
EvidenceDirectoryDTO queryDirectory = evidenceDirectoryService.findDirectoryById(directoryId, evidenceDirectoryDTOS);
EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(evidenceDirectoryDTOS);
EvidenceDirectoryDTO queryDirectory = rootDirectory.findDirectory(directoryId);
IPage<EvidenceFileDTO> fileDTOIPage = pageListCaseEvidence(queryDirectory, caseId, directoryId,
evidenceName, new Page<>(pageNum, pageSize));
@ -220,7 +222,6 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
List<EvidenceFileDTO> fileInfoList = evidenceFileService.listFileInfo(evidenceIds);
Map<String, List<EvidenceFileDTO>> evidenceFileMap = fileInfoList.stream().collect(Collectors.groupingBy(EvidenceFileDTO::getEvidenceId));
List<RecordFileDTO> recordFileDTOS = fileOcrProcessService.queryFileList(fileInfoList.stream().map(EvidenceFileDTO::getFileId).toList());
// 转换分页结果
//查询字典
List<ComDictionary> evidenceTypeDic = comDictionaryService.lambdaQuery().eq(ComDictionary::getType, "evidence_type").list();
@ -230,11 +231,13 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
caseEvidenceDetailDTO.setEvidenceTypeDesc(
comDictionaryService.getName(evidenceTypeDic, "evidence_type", caseEvidence.getEvidenceType()));
caseEvidenceDetailDTO.setContentTypeValue(recordFileDTOS);
EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(caseEvidence.getDirectoryId(), evidenceDirectoryDTOS);
EvidenceDirectoryDTO directory = rootDirectory.findDirectory(caseEvidence.getDirectoryId());
caseEvidenceDetailDTO.setEvidenceFormatValue(directory);
if (null != queryDirectory && queryDirectory.getLevel() == 3 && StrUtil.isNotEmpty(caseEvidence.getFileName())){
caseEvidenceDetailDTO.setEvidenceName(caseEvidence.getFileName().split("\\.")[0]);
}
caseEvidenceDetailDTO.setDirectoryNamePath(StrUtil.join("/", rootDirectory.getDirectoryPath(caseEvidence.getDirectoryId())));
return caseEvidenceDetailDTO;
});
}
@ -392,8 +395,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
@Override
public List<EvidenceDirectoryDTO> listDirectoryTree(String caseId) {
Assert.notEmpty(caseId, "案件ID不能为空!");
List<EvidenceDirectoryDTO> 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<CaseEvidenceMapper, Cas
return new ArrayList<>();
}
EvidenceDirectoryDTO oldRootDirectory = new EvidenceDirectoryDTO(oldEvidenceDirectoryDTOS);
List<String> fileIdList = newDirectoryDTOS.stream().flatMap(directoryDTO -> directoryDTO.listAllFileId().stream()).toList();
Map<String, MinioFile> fileMap = minioService.listMinioFile(fileIdList).stream()
.collect(Collectors.toMap(MinioFile::getId, Function.identity()));
@ -939,7 +946,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
for (EvidenceDirectoryDTO evidenceFile : floatNewDirectoryDTOS) {
String directoryId = evidenceFile.getId();
EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(directoryId, oldEvidenceDirectoryDTOS);
EvidenceDirectoryDTO directory = oldRootDirectory.findDirectory(directoryId);
if (null == directory) {
log.warn("toCaseCaseEvidenceDetailDTO:目录id{}不存在对应的目录分类信息", directoryId);
continue;

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.police.domain.CaseEvidence;
import com.supervision.police.domain.EvidenceDirectory;
import com.supervision.police.dto.CategoryPromptDTO;
import com.supervision.police.dto.EvidenceDirectoryDTO;
@ -40,19 +41,6 @@ public class EvidenceDirectoryServiceImpl extends ServiceImpl<EvidenceDirectoryM
.peek(item -> item.setDirectoryLevel(1)).collect(Collectors.toList());
}
@Override
public EvidenceDirectoryDTO findDirectoryById(String directoryId,
List<EvidenceDirectoryDTO> evidenceDirectoryDTOS) {
for (EvidenceDirectoryDTO directoryDTO : evidenceDirectoryDTOS) {
EvidenceDirectoryDTO directory = directoryDTO.findDirectory(directoryId);
if (null != directory){
return directory;
}
}
return null;
}
@Override
public void appendFile(List<EvidenceDirectoryDTO> directoryDTOS, List<EvidenceFileDTO> fileInfoList) {
@ -76,6 +64,16 @@ public class EvidenceDirectoryServiceImpl extends ServiceImpl<EvidenceDirectoryM
}
@Override
public void appendEvidenceCount(List<EvidenceDirectoryDTO> directoryDTOS, List<CaseEvidence> caseEvidenceList) {
if (CollUtil.isEmpty(directoryDTOS) || CollUtil.isEmpty(caseEvidenceList)){
return;
}
for (EvidenceDirectoryDTO directoryDTO : directoryDTOS) {
directoryDTO.appendEvidenceCount(caseEvidenceList);
}
}
@Override
public List<CategoryPromptDTO> listCategoryPrompt(String caseId) {
Assert.notEmpty(caseId,"案件id不能为空!");

Loading…
Cancel
Save