From 06f3c4f42d0e5e6c97038a2ed759065519052014 Mon Sep 17 00:00:00 2001 From: "DESKTOP-DDTUS3E\\yaxin" <daixiaoyi0622@gmail.com> Date: Wed, 23 Oct 2024 11:23:10 +0800 Subject: [PATCH] =?UTF-8?q?EvidenceCategory=E5=88=A0=E9=99=A4promptId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../police/domain/EvidenceCategory.java | 12 +- .../police/dto/EvidenceProcessDTO.java | 33 +-- .../service/impl/CaseEvidenceServiceImpl.java | 202 +++++++++--------- 3 files changed, 124 insertions(+), 123 deletions(-) diff --git a/src/main/java/com/supervision/police/domain/EvidenceCategory.java b/src/main/java/com/supervision/police/domain/EvidenceCategory.java index b070dee..6ac6321 100644 --- a/src/main/java/com/supervision/police/domain/EvidenceCategory.java +++ b/src/main/java/com/supervision/police/domain/EvidenceCategory.java @@ -1,16 +1,20 @@ package com.supervision.police.domain; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; -import lombok.Data; /** * 证据类别表 + * * @TableName evidence_category */ -@TableName(value ="evidence_category") +@TableName(value = "evidence_category") @Data public class EvidenceCategory implements Serializable { /** @@ -19,8 +23,6 @@ public class EvidenceCategory implements Serializable { @TableId private String id; - private String promptId; - /** * 编码 */ diff --git a/src/main/java/com/supervision/police/dto/EvidenceProcessDTO.java b/src/main/java/com/supervision/police/dto/EvidenceProcessDTO.java index 0f04784..06c7d5a 100644 --- a/src/main/java/com/supervision/police/dto/EvidenceProcessDTO.java +++ b/src/main/java/com/supervision/police/dto/EvidenceProcessDTO.java @@ -5,6 +5,7 @@ import cn.hutool.core.io.unit.DataSizeUtil; import cn.hutool.core.util.StrUtil; import com.supervision.common.constant.EvidenceConstants; import com.supervision.police.domain.EvidenceCategory; +import com.supervision.police.domain.NotePrompt; import lombok.Data; import java.util.List; @@ -77,50 +78,50 @@ public class EvidenceProcessDTO { this.evidenceId = caseEvidence.getId(); this.evidenceName = caseEvidence.getEvidenceName(); this.directoryId = caseEvidence.getDirectoryId(); - if (CollUtil.isNotEmpty(caseEvidence.getFileList())){ + if (CollUtil.isNotEmpty(caseEvidence.getFileList())) { this.attachmentName = caseEvidence.getFileList() .stream().map(EvidenceFileDTO::getFileName).collect(Collectors.joining(",")); Integer sum = caseEvidence.getFileList().stream().map(EvidenceFileDTO::getFileSize).reduce(0, Integer::sum); this.attachmentSize = DataSizeUtil.format(sum); } this.evidenceType = caseEvidence.getEvidenceType(); - if (StrUtil.isNotEmpty(caseEvidence.getProcessStatus())){ + if (StrUtil.isNotEmpty(caseEvidence.getProcessStatus())) { this.status = EvidenceConstants.PROCESS_STATUS_MAPPING.get(caseEvidence.getProcessStatus()); } } - public void setTemplateInfo(List<EvidenceDirectoryDTO> directoryList,List<EvidenceCategory> categoryList){ + public void setTemplateInfo(List<EvidenceDirectoryDTO> directoryList, List<EvidenceCategory> categoryList, List<NotePrompt> notePrompts) { - if (CollUtil.isEmpty(directoryList)){ + if (CollUtil.isEmpty(directoryList)) { return; } EvidenceDirectoryDTO directory = null; for (EvidenceDirectoryDTO directoryDTO : directoryList) { directory = directoryDTO.findDirectory(this.directoryId); - if (null != directory){ + if (null != directory) { break; } } - if (null == directory){ + if (null == directory) { return; } Map<String, EvidenceCategory> categoryMap = categoryList.stream().collect(Collectors.toMap(EvidenceCategory::getId, v -> v)); - EvidenceCategory category = categoryMap.get(directory.getCategoryId()); - if (null != category){ - this.templateId = category.getPromptId(); + NotePrompt notePrompt = notePrompts.stream().filter(v -> v.getEvidenceCategoryId().equals(category.getId())).findFirst().orElse(null); + if (null != category && notePrompt != null) { + this.templateId = notePrompt.getId(); this.templateName = category.getCategoryName(); - if (directory.getLevel()== 2){ + if (directory.getLevel() == 2) { this.evidenceTypeName = category.getCategoryName(); } - if (directory.getLevel() == 3){ + if (directory.getLevel() == 3) { String parentId = category.getParentId(); - if (StrUtil.isNotEmpty(parentId)){ + if (StrUtil.isNotEmpty(parentId)) { EvidenceCategory parentCategory = categoryMap.get(parentId); - if (null != parentCategory){ + if (null != parentCategory) { this.evidenceTypeName = StrUtil.join(" / ", parentCategory.getCategoryName(), category.getCategoryName()); } } @@ -129,11 +130,11 @@ public class EvidenceProcessDTO { } - public void setEvidenceTypeName(List<EvidenceCategory> categoryList){ - if (StrUtil.isNotEmpty(this.evidenceType)){ + public void setEvidenceTypeName(List<EvidenceCategory> categoryList) { + if (StrUtil.isNotEmpty(this.evidenceType)) { Map<String, EvidenceCategory> categoryMap = categoryList.stream().collect(Collectors.toMap(EvidenceCategory::getId, v -> v)); EvidenceCategory category = categoryMap.get(this.evidenceType); - if (null != category){ + if (null != category) { this.evidenceTypeName = category.getCategoryName(); } } 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 444b06f..f20f6c7 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -4,20 +4,18 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.common.constant.EvidenceConstants; import com.supervision.minio.domain.MinioFile; import com.supervision.minio.service.MinioService; -import com.supervision.police.dto.*; -import com.supervision.police.service.*; -import com.supervision.police.domain.CaseEvidence; -import com.supervision.police.domain.ComDictionary; -import com.supervision.police.domain.EvidenceFile; -import com.supervision.common.constant.EvidenceConstants; import com.supervision.police.domain.*; +import com.supervision.police.dto.*; import com.supervision.police.mapper.CaseEvidenceMapper; +import com.supervision.police.service.*; import com.supervision.police.vo.EvidenceDirectoryReqVO; import com.supervision.police.vo.VerifyEvidenceReqVO; import lombok.RequiredArgsConstructor; @@ -28,8 +26,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -150,7 +146,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) public List<CaseEvidenceDetailDTO> queryEvidenceList(String caseId, String batchNo) { List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = queryEvidenceList(caseId); - if (StrUtil.isNotEmpty(batchNo)){ + if (StrUtil.isNotEmpty(batchNo)) { for (CaseEvidenceDetailDTO evidenceDetail : caseEvidenceDetailDTOS) { List<EvidenceFileDTO> filter = evidenceDetail.getFileList().stream().filter(file -> StrUtil.equals(file.getBatchNo(), batchNo)).toList(); evidenceDetail.setFileList(filter); @@ -161,32 +157,32 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas @Override @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) - public IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, String directoryId,String evidenceName, Integer pageNum, Integer pageSize) { + public IPage<CaseEvidenceDetailDTO> pageListEvidence(String caseId, String directoryId, String evidenceName, Integer pageNum, Integer pageSize) { Assert.notEmpty(caseId, "案件id不能为空"); List<String> directoryIds = new ArrayList<>(); - if (StrUtil.isNotEmpty(directoryId)){ + if (StrUtil.isNotEmpty(directoryId)) { List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listDirectoryTree(caseId); EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(directoryId, evidenceDirectoryDTOS); - if (null != directory){ - if (directory.getLevel() == 1 || directory.getLevel() == 2){ + if (null != directory) { + if (directory.getLevel() == 1 || directory.getLevel() == 2) { directoryIds.addAll(directory.listAllFileId()); } } } IPage<CaseEvidence> caseEvidencePage = new Page<>(pageNum, pageSize); - if (StrUtil.isEmpty(directoryId) || CollUtil.isNotEmpty(directoryIds)){ + if (StrUtil.isEmpty(directoryId) || CollUtil.isNotEmpty(directoryIds)) { // 全部 或者一级目录 或者 二级目录查询证据 caseEvidencePage = super.lambdaQuery().eq(CaseEvidence::getCaseId, caseId) .in(CollUtil.isNotEmpty(directoryIds), CaseEvidence::getDirectoryId, directoryIds) .like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName) .orderBy(true, false, CaseEvidence::getUpdateTime) .page(new Page<>(pageNum, pageSize)); - }else { + } else { // 三级目录查询证据文件 List<CaseEvidence> list = this.lambdaQuery().eq(CaseEvidence::getDirectoryId, directoryId).list(); - if (CollUtil.isNotEmpty(list)){ + if (CollUtil.isNotEmpty(list)) { Page<EvidenceFileDTO> page = evidenceFileService.pageListFileInfo( list.stream().map(CaseEvidence::getId).toList(), Page.of(pageNum, pageSize)); caseEvidencePage = page.convert(file -> { @@ -270,9 +266,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas // 遍历OCR结果拼接ocrText并赋值给lLMExtractDto的text StringBuilder ocrText = new StringBuilder(); fileOcrProcesses.forEach(fileOcrProcess -> { - if (StrUtil.isNotEmpty(fileOcrProcess.getReviseText())){ + if (StrUtil.isNotEmpty(fileOcrProcess.getReviseText())) { ocrText.append(fileOcrProcess.getReviseText()); - }else { + } else { ocrText.append(fileOcrProcess.getOcrText()); } }); @@ -286,8 +282,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas updateById(caseEvidence); // 根据证据目录id查询提示词 EvidenceDirectory directory = evidenceDirectoryService.getById(caseEvidence.getDirectoryId()); - EvidenceCategory category = evidenceCategoryService.getById(directory.getCategoryId()); - NotePrompt notePrompt = notePromptService.getById(category.getPromptId()); + NotePrompt notePrompt = notePromptService.getOne(new QueryWrapper<NotePrompt>().eq("evidence_category_id", directory.getCategoryId())); if (notePrompt != null) { log.info("属性提取开始。"); long attrStart = System.currentTimeMillis(); @@ -318,42 +313,42 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas @Override public List<EvidenceCategoryDTO> listCategoryTree(String caseType) { - Assert.notEmpty(caseType,"案件类型不能为空!"); + Assert.notEmpty(caseType, "案件类型不能为空!"); return evidenceCategoryService.listCategoryTree(caseType); } @Override public List<EvidenceDirectoryDTO> listFileTree(String caseId) { - return listFileTree(caseId,null); + return listFileTree(caseId, null); } @Override public List<EvidenceDirectoryDTO> listFileTree(String caseId, String batchNo) { - Assert.notEmpty(caseId,"案件ID不能为空!"); + Assert.notEmpty(caseId, "案件ID不能为空!"); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId); - evidenceDirectoryService.appendFile(evidenceDirectoryDTOS, evidenceFileService.queryFileInfoList(caseId,batchNo)); + evidenceDirectoryService.appendFile(evidenceDirectoryDTOS, evidenceFileService.queryFileInfoList(caseId, batchNo)); return evidenceDirectoryDTOS; } @Override public List<EvidenceDirectoryDTO> listFileTree(String caseId, String batchNo, String evidenceId, String directoryId) { - Assert.notEmpty(caseId,"案件ID不能为空!"); + Assert.notEmpty(caseId, "案件ID不能为空!"); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId); evidenceDirectoryService.appendFile(evidenceDirectoryDTOS, - evidenceFileService.queryFileInfoList(caseId,batchNo, evidenceId, directoryId)); + evidenceFileService.queryFileInfoList(caseId, batchNo, evidenceId, directoryId)); return evidenceDirectoryDTOS; } @Override public List<EvidenceDirectoryDTO> listDirectoryTree(String caseId) { - Assert.notEmpty(caseId,"案件ID不能为空!"); + Assert.notEmpty(caseId, "案件ID不能为空!"); return evidenceDirectoryService.listDirectoryTree(caseId); } @@ -369,9 +364,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas @Override public Boolean updateDirectory(EvidenceDirectory evidenceDirectory) { - Assert.notEmpty(evidenceDirectory.getId(),"目录ID不能为空!"); + Assert.notEmpty(evidenceDirectory.getId(), "目录ID不能为空!"); - Assert.notEmpty(evidenceDirectory.getParentId(),"父级目录id不能为空"); + Assert.notEmpty(evidenceDirectory.getParentId(), "父级目录id不能为空"); return evidenceDirectoryService.lambdaUpdate() .set(EvidenceDirectory::getParentId, evidenceDirectory.getParentId()) @@ -408,13 +403,13 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) public Boolean removeDirectory(List<String> directoryIdList) { - if (CollUtil.isEmpty(directoryIdList)){ + if (CollUtil.isEmpty(directoryIdList)) { return false; } boolean success = evidenceDirectoryService.removeBatchByIds(directoryIdList); - if (success){ + if (success) { // 删除目录,意味着证据也要被删除 super.lambdaUpdate().eq(CaseEvidence::getDirectoryId, directoryIdList).remove(); evidenceFileService.lambdaUpdate().in(EvidenceFile::getDirectoryId, directoryIdList).remove(); @@ -426,6 +421,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas * 提取证据信息 * 1. 只对证据文件进行新增操作,不删除已有的文件 * 2. 如果第三级目录下已经存在文件,只新增证据文件,对证据进行ocr识别但不对证据进行重新提取操作 + * * @param caseId * @param evidenceFileDTOS 文件信息 */ @@ -441,14 +437,14 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas List<CaseEvidenceDetailDTO> operationalEvidenceList = findChangedEvidence(oldEvidences, newEvidences); - String batchId = ((CaseEvidenceService)AopContext.currentProxy()).updateCaseEvidence4NewTransaction(operationalEvidenceList); + String batchId = ((CaseEvidenceService) AopContext.currentProxy()).updateCaseEvidence4NewTransaction(operationalEvidenceList); List<EvidenceFileDTO> evidenceFileDTOList = operationalEvidenceList.stream() - .flatMap(evidenceDetailDTO -> evidenceDetailDTO.getFileList().stream().filter(file -> StrUtil.equals(file.getUpdateStatus(),"1"))).toList(); - ((CaseEvidenceService)AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList); + .flatMap(evidenceDetailDTO -> evidenceDetailDTO.getFileList().stream().filter(file -> StrUtil.equals(file.getUpdateStatus(), "1"))).toList(); + ((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList); for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) { - if (StrUtil.equals(caseEvidenceDetailDTO.getUpdateStatus(),"1")){ + if (StrUtil.equals(caseEvidenceDetailDTO.getUpdateStatus(), "1")) { // 需要分析(ocr识别+标题提取) xxlJobService.executeTaskByJobHandler("evidenceAnalysis", caseEvidenceDetailDTO.getId()); } @@ -460,23 +456,24 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas /** * 更新案件证据信息 note:这个方法中的事务是一个新的事务,不会与之前的事务保持原子操作 + * * @param caseEvidenceDetailDTOList 新旧证据信息 * @return */ @Override - @Transactional(transactionManager = "dataSourceTransactionManager",propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + @Transactional(transactionManager = "dataSourceTransactionManager", propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) public String updateCaseEvidence4NewTransaction(List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOList) { String batchNo = DateTime.now().toString("yyyyMMddHHmmss"); for (CaseEvidenceDetailDTO evidence : caseEvidenceDetailDTOList) { - if (evidence.getUpdateStatus().equals("1")){ + if (evidence.getUpdateStatus().equals("1")) { // 新增 CaseEvidence caseEvidence = evidence.toCaseEvidence(); caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_UNPROCESSED); this.save(caseEvidence); evidence.setId(caseEvidence.getId()); for (EvidenceFileDTO evidenceFileDTO : evidence.getFileList()) { - if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(),"1","2")){ + if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(), "1", "2")) { // 新增 EvidenceFile evidenceFile = new EvidenceFile(caseEvidence.getId(), evidenceFileDTO.getFileId()); evidenceFile.setDirectoryId(evidence.getDirectoryId()); @@ -495,9 +492,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas }*/ } - }else if (evidence.getUpdateStatus().equals("-1")){ + } else if (evidence.getUpdateStatus().equals("-1")) { for (EvidenceFileDTO evidenceFileDTO : evidence.getFileList()) { - if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(),"1","2")){ + if (StrUtil.equalsAny(evidenceFileDTO.getUpdateStatus(), "1", "2")) { // 新增 EvidenceFile evidenceFile = new EvidenceFile(evidence.getId(), evidenceFileDTO.getFileId()); evidenceFile.setDirectoryId(evidence.getDirectoryId()); @@ -517,36 +514,36 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } @Override - public List<EvidenceProcessDTO> listOcrAndExtract(String caseId,String batchNo) { + public List<EvidenceProcessDTO> listOcrAndExtract(String caseId, String batchNo) { Assert.notEmpty(caseId, "案件id不能为空"); ModelCase modelCase = modelCaseService.getById(caseId); Assert.notNull(modelCase, "案件不存在"); - List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = this.queryEvidenceList(caseId,batchNo); + List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = this.queryEvidenceList(caseId, batchNo); - if (CollUtil.isEmpty(caseEvidenceDetailDTOS)){ + if (CollUtil.isEmpty(caseEvidenceDetailDTOS)) { return new ArrayList<>(); } List<EvidenceProcessDTO> processDTOList = caseEvidenceDetailDTOS.stream() - .filter(evidenceDetail->CollUtil.isNotEmpty(evidenceDetail.getFileList())) + .filter(evidenceDetail -> CollUtil.isNotEmpty(evidenceDetail.getFileList())) .map(EvidenceProcessDTO::new).collect(Collectors.toList()); List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = evidenceDirectoryService.listDirectoryTree(caseId); List<EvidenceCategory> categoryList = evidenceCategoryService.lambdaQuery().eq(EvidenceCategory::getCaseType, modelCase.getCaseType()).list(); - + List<NotePrompt> notePrompts = notePromptService.list(); for (EvidenceProcessDTO evidenceProcessDTO : processDTOList) { - evidenceProcessDTO.setTemplateInfo(evidenceDirectoryDTOS, categoryList); + evidenceProcessDTO.setTemplateInfo(evidenceDirectoryDTOS, categoryList, notePrompts); evidenceProcessDTO.setEvidenceTypeName(categoryList); } return processDTOList; } @Override - public void verifyEvidence(List<EvidenceVerifyDTO> evidenceVerifyDTOS,String caseId,String batchNo) { + public void verifyEvidence(List<EvidenceVerifyDTO> evidenceVerifyDTOS, String caseId, String batchNo) { Assert.notEmpty(caseId, "案件id不能为空"); - if (CollUtil.isEmpty(evidenceVerifyDTOS)){ + if (CollUtil.isEmpty(evidenceVerifyDTOS)) { return; } - List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = queryEvidenceList(caseId,batchNo); + List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS = queryEvidenceList(caseId, batchNo); Map<String, List<EvidenceVerifyDTO>> evidenceMap = evidenceVerifyDTOS.stream().collect(Collectors.groupingBy(EvidenceVerifyDTO::getEvidenceId)); for (Map.Entry<String, List<EvidenceVerifyDTO>> entry : evidenceMap.entrySet()) { String evidenceId = entry.getKey(); @@ -557,7 +554,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas // 修改ocr内容 for (EvidenceVerifyDTO verifyDTO : value) { - if (StrUtil.isNotEmpty(verifyDTO.getOcrText())){ + if (StrUtil.isNotEmpty(verifyDTO.getOcrText())) { fileOcrProcessService.lambdaUpdate() .eq(FileOcrProcess::getFileId, verifyDTO.getFileId()) .set(FileOcrProcess::getReviseText, verifyDTO.getOcrText()).update(); @@ -565,7 +562,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } // 调整顺序 CaseEvidenceDetailDTO evidenceDetail = findEvidenceDetail(evidenceId, caseEvidenceDetailDTOS); - if (evidenceDetail != null){ + if (evidenceDetail != null) { List<String> list = value.stream().map(EvidenceVerifyDTO::getFileId).toList(); for (EvidenceFileDTO evidenceFileDTO : evidenceDetail.getFileList()) { evidenceFileDTO.setRank(findRank(list, evidenceFileDTO.getFileId())); @@ -603,19 +600,19 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } @Override - public List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo,String evidenceId) { + public List<EvidenceDirectoryDTO> evidenceDetails(String caseId, String batchNo, String evidenceId) { - List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listFileTree(caseId,batchNo,evidenceId,null); + List<EvidenceDirectoryDTO> evidenceDirectoryDTOS = listFileTree(caseId, batchNo, evidenceId, null); List<CaseEvidence> caseEvidenceList = this.lambdaQuery().eq(CaseEvidence::getCaseId, caseId).list(); // 强行翻译 Map<String, String> dictionaryMap = comDictionaryService.getDictionaryMapReverse("prompt_attribute_valuetype"); for (CaseEvidence caseEvidence : caseEvidenceList) { List<NotePromptExtractAttributesDto> property = caseEvidence.getProperty(); - if (CollUtil.isNotEmpty(property)){ + if (CollUtil.isNotEmpty(property)) { for (NotePromptExtractAttributesDto notePromptExtractAttributesDto : property) { String attrValueType = notePromptExtractAttributesDto.getAttrValueType(); - if (StrUtil.isNotEmpty(attrValueType) && dictionaryMap.containsKey(attrValueType)){ + if (StrUtil.isNotEmpty(attrValueType) && dictionaryMap.containsKey(attrValueType)) { notePromptExtractAttributesDto.setAttrValueType(dictionaryMap.get(attrValueType)); } } @@ -628,11 +625,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas Map<String, CategoryPromptDTO> categoryPromptMap = categoryPromptDTOS.stream().collect(Collectors.toMap(CategoryPromptDTO::getDirectoryId, Function.identity())); Iterator<EvidenceDirectoryDTO> iterator = evidenceDirectoryDTOS.iterator(); - while (iterator.hasNext()){ + while (iterator.hasNext()) { EvidenceDirectoryDTO evidenceDirectoryDTO = iterator.next(); evidenceDirectoryDTO.setFileEvidence(caseEvidenceMap, categoryPromptMap); evidenceDirectoryDTO.removeEmptyDirectory(); - if (CollUtil.isEmpty(evidenceDirectoryDTO.getChild()) && CollUtil.isEmpty(evidenceDirectoryDTO.getFileInfoList())){ + if (CollUtil.isEmpty(evidenceDirectoryDTO.getChild()) && CollUtil.isEmpty(evidenceDirectoryDTO.getFileInfoList())) { iterator.remove(); } } @@ -655,7 +652,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas String directoryName = category.getCategoryName() + provider; long count = directoryList.stream().filter(d -> StrUtil.contains(d.getDirectoryName(), provider)).count(); - if (count > 0){ + if (count > 0) { directoryName = directoryName + count; } return directoryName; @@ -668,7 +665,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas List<String> directoryIdList = null; for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) { directoryIdList = evidenceDirectoryDTO.findDirectoryIdList(evidenceDirectory.getCategoryId()); - if (CollUtil.isNotEmpty(directoryIdList)){ + if (CollUtil.isNotEmpty(directoryIdList)) { break; } } @@ -676,7 +673,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas EvidenceDirectoryDTO directory = null; for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) { directory = evidenceDirectoryDTO.findDirectory(CollUtil.getFirst(directoryIdList)); - if (null != directory){ + if (null != directory) { break; } } @@ -685,7 +682,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas long count = evidenceDirectoryService.lambdaQuery().eq(EvidenceDirectory::getParentId, directory.getId()) .list().stream() .filter(d -> StrUtil.contains(d.getDirectoryName(), evidenceDirectory.getDirectoryName())).count(); - if (count > 0){ + if (count > 0) { evidenceDirectory.setDirectoryName(evidenceDirectory.getDirectoryName() + count + 1); } @@ -699,15 +696,15 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } @Override - @Transactional(rollbackFor = Exception.class, propagation= Propagation.REQUIRES_NEW, transactionManager = "dataSourceTransactionManager") + @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW, transactionManager = "dataSourceTransactionManager") public void preSyncSubmitOCR(List<EvidenceFileDTO> evidenceFileList) { for (EvidenceFileDTO evidenceFileDTO : evidenceFileList) { - if (StrUtil.equalsAny(evidenceFileDTO.getFileType(),"doc","docx")){ + if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "doc", "docx")) { fileOcrProcessService.syncSubmitOCR(List.of(evidenceFileDTO.getFileId()), fileOcrProcessService::doWordCRTask); - }else if (StrUtil.equalsAny(evidenceFileDTO.getFileType(),"pdf")){ + } else if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "pdf")) { fileOcrProcessService.syncSubmitOCR(List.of(evidenceFileDTO.getFileId()), fileOcrProcessService::doPdfCRTask); - }else { + } else { fileOcrProcessService.syncSubmitOCR(List.of(evidenceFileDTO.getFileId()), fileOcrProcessService::doOCRTask); } } @@ -716,15 +713,15 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas private CaseEvidenceDetailDTO findEvidenceDetail(String evidenceId, List<CaseEvidenceDetailDTO> caseEvidenceDetailDTOS) { for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : caseEvidenceDetailDTOS) { - if (StrUtil.equals(caseEvidenceDetailDTO.getId(), evidenceId)){ + if (StrUtil.equals(caseEvidenceDetailDTO.getId(), evidenceId)) { return caseEvidenceDetailDTO; } } return null; } - private List<CaseEvidenceDetailDTO> toCaseCaseEvidenceDetailDTO(List<EvidenceDirectoryDTO> newDirectoryDTOS,List<EvidenceDirectoryDTO> oldEvidenceDirectoryDTOS) { - if (CollUtil.isEmpty(newDirectoryDTOS)){ + private List<CaseEvidenceDetailDTO> toCaseCaseEvidenceDetailDTO(List<EvidenceDirectoryDTO> newDirectoryDTOS, List<EvidenceDirectoryDTO> oldEvidenceDirectoryDTOS) { + if (CollUtil.isEmpty(newDirectoryDTOS)) { return new ArrayList<>(); } @@ -738,12 +735,12 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas String directoryId = evidenceFile.getId(); EvidenceDirectoryDTO directory = evidenceDirectoryService.findDirectoryById(directoryId, oldEvidenceDirectoryDTOS); - if (null == directory){ - log.warn("toCaseCaseEvidenceDetailDTO:目录id:{}不存在对应的目录分类信息",directoryId); + if (null == directory) { + log.warn("toCaseCaseEvidenceDetailDTO:目录id:{}不存在对应的目录分类信息", directoryId); continue; } - if (directory.getLevel() == 1 || directory.getLevel() == 2){ + if (directory.getLevel() == 1 || directory.getLevel() == 2) { for (String fileId : evidenceFile.getFileIdList()) { CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO(); caseEvidenceDetailDTO.setEvidenceType(directory.getCategoryId()); @@ -752,7 +749,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas evidenceFileDTO.setFileId(fileId); MinioFile minioFile = fileMap.get(fileId); - if (null != minioFile){ + if (null != minioFile) { // 证据名为文件名 caseEvidenceDetailDTO.setEvidenceName(minioFile.getFilename()); evidenceFileDTO.setFileType(minioFile.getFileType()); @@ -762,9 +759,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas caseEvidenceDetailDTOS.add(caseEvidenceDetailDTO); } } - if (directory.getLevel() == 3){ + if (directory.getLevel() == 3) { CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO(); - if (CollUtil.isNotEmpty(directory.getFileInfoList())){ + if (CollUtil.isNotEmpty(directory.getFileInfoList())) { String evidenceId = CollUtil.getFirst(directory.getFileInfoList()).getEvidenceId(); caseEvidenceDetailDTO.setId(evidenceId); } @@ -777,7 +774,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO(); evidenceFileDTO.setFileId(fileId); MinioFile minioFile = fileMap.get(fileId); - if (null != minioFile){ + if (null != minioFile) { evidenceFileDTO.setFileName(minioFile.getFilename()); evidenceFileDTO.setFileType(minioFile.getFileType()); } @@ -795,7 +792,8 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas /** * 查找发生改变的证据 - * @param oldEvidenceList 旧证据列表 + * + * @param oldEvidenceList 旧证据列表 * @param newEvidenceFileList 新证据列表 * @return 发生改变的证据 */ @@ -804,20 +802,20 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas List<CaseEvidenceDetailDTO> caseEvidence2DTOList = new ArrayList<>(); - if (CollUtil.isEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)){ + if (CollUtil.isEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)) { // 数据库中不存在数据,则全部新增 for (CaseEvidenceDetailDTO evidenceDetailDTO : newEvidenceFileList) { List<String> fileIds = evidenceDetailDTO.getFileList().stream().map(EvidenceFileDTO::getFileId).toList(); evidenceDetailDTO.setUpdateStatus("1"); for (EvidenceFileDTO evidenceFileDTO : evidenceDetailDTO.getFileList()) { evidenceFileDTO.setUpdateStatus("1"); - evidenceFileDTO.setRank(findRank(fileIds,evidenceFileDTO.getFileId())); + evidenceFileDTO.setRank(findRank(fileIds, evidenceFileDTO.getFileId())); } } caseEvidence2DTOList.addAll(newEvidenceFileList); } - if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isEmpty(newEvidenceFileList)){ + if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isEmpty(newEvidenceFileList)) { // 数据库中存在数据,没有新增数据 for (CaseEvidenceDetailDTO evidenceDetailDTO : oldEvidenceList) { evidenceDetailDTO.setUpdateStatus("0"); @@ -829,7 +827,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } - if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)){ + if (CollUtil.isNotEmpty(oldEvidenceList) && CollUtil.isNotEmpty(newEvidenceFileList)) { // 数据库中和新数据都存在 Map<String, EvidenceFileDTO> fileCache = Stream.of(newEvidenceFileList, oldEvidenceList) .flatMap(Collection::stream) @@ -839,21 +837,21 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas for (CaseEvidenceDetailDTO oldEvidence : oldEvidenceList) { boolean isFind = false; for (CaseEvidenceDetailDTO newEvidence : newEvidenceFileList) { - if (StrUtil.equals(oldEvidence.getId(),newEvidence.getId())){ + if (StrUtil.equals(oldEvidence.getId(), newEvidence.getId())) { isFind = true; oldEvidence.setUpdateStatus("-1"); List<String> oldFileIds = oldEvidence.getFileList().stream().map(EvidenceFileDTO::getFileId).toList(); List<String> newFileIds = newEvidence.getFileList().stream().map(EvidenceFileDTO::getFileId).toList(); - TupleIdRecord tupleIdRecord = compareFileList(newFileIds,oldFileIds); + TupleIdRecord tupleIdRecord = compareFileList(newFileIds, oldFileIds); List<EvidenceFileDTO> updateFileList = new ArrayList<>(); // 新增的文件顺序排在原有文件的后面 - int initOrder = oldFileIds.size() -1; + int initOrder = oldFileIds.size() - 1; for (String addFileId : tupleIdRecord.addFileList) { EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO(); evidenceFileDTO.setFileId(addFileId); evidenceFileDTO.setUpdateStatus("1"); - if (null != fileCache.get(addFileId)){ + if (null != fileCache.get(addFileId)) { evidenceFileDTO.setFileType(fileCache.get(addFileId).getFileType()); } @@ -864,7 +862,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO(); evidenceFileDTO.setFileId(deleteFileId); evidenceFileDTO.setUpdateStatus("0"); - if (null != fileCache.get(deleteFileId)){ + if (null != fileCache.get(deleteFileId)) { evidenceFileDTO.setFileType(fileCache.get(deleteFileId).getFileType()); } evidenceFileDTO.setRank(findRank(oldFileIds, deleteFileId)); @@ -875,7 +873,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas EvidenceFileDTO evidenceFileDTO = new EvidenceFileDTO(); evidenceFileDTO.setFileId(updateFileId); evidenceFileDTO.setUpdateStatus("2"); - if (null != fileCache.get(updateFileId)){ + if (null != fileCache.get(updateFileId)) { evidenceFileDTO.setFileType(fileCache.get(updateFileId).getFileType()); } evidenceFileDTO.setRank(findRank(oldFileIds, updateFileId)); @@ -886,7 +884,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas caseEvidence2DTOList.add(newEvidence); } } - if (!isFind){ + if (!isFind) { oldEvidence.setUpdateStatus("0"); caseEvidence2DTOList.add(oldEvidence); } @@ -894,7 +892,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas for (CaseEvidenceDetailDTO newEvidence : newEvidenceFileList) { - if (StrUtil.isEmpty(newEvidence.getId())){ + if (StrUtil.isEmpty(newEvidence.getId())) { newEvidence.setUpdateStatus("1"); List<String> newFileIds = newEvidence.getFileList().stream().map(EvidenceFileDTO::getFileId).toList(); for (EvidenceFileDTO evidenceFileDTO : newEvidence.getFileList()) { @@ -909,9 +907,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas return caseEvidence2DTOList; } - private int findRank(List<String> newFileIds,String fileId){ + private int findRank(List<String> newFileIds, String fileId) { for (int i = 0; i < newFileIds.size(); i++) { - if (newFileIds.get(i).equals(fileId)){ + if (newFileIds.get(i).equals(fileId)) { return i; } } @@ -919,15 +917,14 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } - - /** * 初始化案件证据目录 + * * @param evidenceCategoryDTOS 证据分类 - * @param caseId 案件id - * @param parentId 父级目录id + * @param caseId 案件id + * @param parentId 父级目录id */ - private void initCaseEvidenceDirectory(List<EvidenceCategoryDTO> evidenceCategoryDTOS, String caseId, String parentId) { + private void initCaseEvidenceDirectory(List<EvidenceCategoryDTO> evidenceCategoryDTOS, String caseId, String parentId) { for (EvidenceCategoryDTO evidenceCategoryDTO : evidenceCategoryDTOS) { EvidenceDirectory evidenceDirectory = new EvidenceDirectory(); evidenceDirectory.setCaseId(caseId); @@ -942,9 +939,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas } - /** * left 新增 right 删除 + * * @param newFileIdList * @param oldFileIdList * @return @@ -954,24 +951,25 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas List<String> deleteFileList = new ArrayList<>(); List<String> updateFileList = new ArrayList<>(); - if (CollUtil.isEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)){ + if (CollUtil.isEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)) { addFileList = newFileIdList; } - if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isEmpty(newFileIdList)){ + if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isEmpty(newFileIdList)) { deleteFileList = oldFileIdList; } - if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)){ + if (CollUtil.isNotEmpty(oldFileIdList) && CollUtil.isNotEmpty(newFileIdList)) { deleteFileList = oldFileIdList.stream().filter(fileId -> !newFileIdList.contains(fileId)).collect(Collectors.toList()); addFileList = newFileIdList.stream().filter(fileId -> !oldFileIdList.contains(fileId)).collect(Collectors.toList()); - updateFileList = oldFileIdList.stream().filter(newFileIdList::contains).collect(Collectors.toList()); + updateFileList = oldFileIdList.stream().filter(newFileIdList::contains).collect(Collectors.toList()); } - return new TupleIdRecord(addFileList,updateFileList, deleteFileList); + return new TupleIdRecord(addFileList, updateFileList, deleteFileList); } - record TupleIdRecord(List<String> addFileList ,List<String> updateFileList, List<String> deleteFileList){} + record TupleIdRecord(List<String> addFileList, List<String> updateFileList, List<String> deleteFileList) { + } }