diff --git a/src/main/java/com/supervision/police/domain/CaseEvidence.java b/src/main/java/com/supervision/police/domain/CaseEvidence.java index 24ba7d5..6c89030 100644 --- a/src/main/java/com/supervision/police/domain/CaseEvidence.java +++ b/src/main/java/com/supervision/police/domain/CaseEvidence.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; @@ -57,7 +58,7 @@ public class CaseEvidence implements Serializable { * 属性 */ @TableField(typeHandler = NotePromptExtractAttributesTypeHandler.class) - private List property; + private List property = new ArrayList<>(); /** * 证据提供人 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 864f7d3..82c2e89 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -4,7 +4,6 @@ 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 cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -124,22 +123,21 @@ public class CaseEvidenceServiceImpl extends ServiceImpl new IllegalArgumentException("证据信息不存在")); - if (StrUtil.isEmpty(fileId)){ + if (StrUtil.isEmpty(fileId)) { boolean remove = super.lambdaUpdate().eq(CaseEvidence::getId, evidenceId).remove(); if (remove) { evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId).remove(); caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId()); } - }else { + } else { evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId) .eq(EvidenceFile::getFileId, fileId).remove(); } - return true; } @@ -201,12 +199,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl pageListCaseEvidence(EvidenceDirectoryDTO queryDirectory, - String caseId, String directoryId, String evidenceName, - Page page) { - + String caseId, String directoryId, String evidenceName, + Page page) { - if ( null == queryDirectory || queryDirectory.getLevel() != 3){ + if (null == queryDirectory || queryDirectory.getLevel() != 3) { /*if (null != queryDirectory && CollUtil.isEmpty(queryDirectory.listAllFileId())){ return PageDTO.of(page.getCurrent(), page.getSize(), 0); @@ -219,10 +216,10 @@ public class CaseEvidenceServiceImpl extends ServiceImpl llmExtractDtos = llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto)); + if (!llmExtractDtos.isEmpty()) { + llmExtractDto = llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto)).get(0); + caseEvidence.setProperty(llmExtractDto.getExtractAttributes()); + } log.info("属性提取完成。更新证据处理状态为【属性提取完成】。属性:【{}】。耗时:【{}】", caseEvidence.getProperty(), System.currentTimeMillis() - attrStart); caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_ATTR_EXTRACT_OK); updateById(caseEvidence); @@ -442,25 +442,25 @@ public class CaseEvidenceServiceImpl extends ServiceImpl StrUtil.equals(file.getUpdateStatus(), "1")); - if(match){ + if (match) { // 需要分析(ocr识别+标题提取) - log.info("ocrAndExtract:开始调用evidenceAnalysis接口...证据id:{},证据名:{}",caseEvidenceDetailDTO.getId(), caseEvidenceDetailDTO.getEvidenceName()); + log.info("ocrAndExtract:开始调用evidenceAnalysis接口...证据id:{},证据名:{}", caseEvidenceDetailDTO.getId(), caseEvidenceDetailDTO.getEvidenceName()); xxlJobService.executeTaskByJobHandler("evidenceAnalysis", caseEvidenceDetailDTO.getId()); - }else { + } else { log.info("ocrAndExtract:单独识别ocr数据"); boolean success = false; for (EvidenceFileDTO evidenceFileDTO : caseEvidenceDetailDTO.getFileList()) { success = ocrEvidenceService.submitOrcTask(evidenceFileDTO.getFileId()); - if (!success){ + if (!success) { this.lambdaUpdate().eq(CaseEvidence::getId, evidenceFileDTO.getEvidenceId()) .set(CaseEvidence::getProcessStatus, EvidenceConstants.PROCESS_STATUS_FAILED).update(); break; } } - if (success){ + if (success) { this.lambdaUpdate().eq(CaseEvidence::getId, caseEvidenceDetailDTO.getId()) .set(CaseEvidence::getProcessStatus, EvidenceConstants.PROCESS_STATUS_SUCCESS).update(); } @@ -611,7 +611,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl fileInfoList = directoryDTO.getFileInfoList(); - if (CollUtil.isNotEmpty(fileInfoList) && evidenceInfo != null){ + if (CollUtil.isNotEmpty(fileInfoList) && evidenceInfo != null) { for (EvidenceFileDTO fileInfo : fileInfoList) { fileInfo.setEvidenceInfo(evidenceInfo); } @@ -660,7 +660,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl categoryPromptDTOS = evidenceDirectoryService.listCategoryPrompt(caseId); Map caseEvidenceMap = caseEvidenceList.stream().collect(Collectors.toMap(CaseEvidence::getId, Function.identity())); - Map categoryPromptMap = categoryPromptDTOS.stream().collect(Collectors.toMap(CategoryPromptDTO::getDirectoryId,k->k,(v1,v2)->v1)); + Map categoryPromptMap = categoryPromptDTOS.stream().collect(Collectors.toMap(CategoryPromptDTO::getDirectoryId, k -> k, (v1, v2) -> v1)); Iterator iterator = evidenceDirectoryDTOS.iterator(); while (iterator.hasNext()) { @@ -711,7 +711,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl StrUtil.contains(d.getDirectoryName(), evidenceDirectory.getDirectoryName())).count(); - if (count > 0){ + if (count > 0) { evidenceDirectory.setDirectoryName(evidenceDirectory.getDirectoryName() + (count + 1)); } @@ -809,11 +809,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl