提取不到结果时不用给property赋值

topo_dev
DESKTOP-DDTUS3E\yaxin 6 months ago
parent d11af4edb9
commit 4031e7ebda

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -57,7 +58,7 @@ public class CaseEvidence implements Serializable {
* *
*/ */
@TableField(typeHandler = NotePromptExtractAttributesTypeHandler.class) @TableField(typeHandler = NotePromptExtractAttributesTypeHandler.class)
private List<NotePromptExtractAttributesDto> property; private List<NotePromptExtractAttributesDto> property = new ArrayList<>();
/** /**
* *

@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -124,22 +123,21 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
@Override @Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public boolean deleteEvidence(String evidenceId,String fileId) { public boolean deleteEvidence(String evidenceId, String fileId) {
CaseEvidence caseEvidence = super.getOptById(evidenceId).orElseThrow(() -> new IllegalArgumentException("证据信息不存在")); CaseEvidence caseEvidence = super.getOptById(evidenceId).orElseThrow(() -> new IllegalArgumentException("证据信息不存在"));
if (StrUtil.isEmpty(fileId)){ if (StrUtil.isEmpty(fileId)) {
boolean remove = super.lambdaUpdate().eq(CaseEvidence::getId, evidenceId).remove(); boolean remove = super.lambdaUpdate().eq(CaseEvidence::getId, evidenceId).remove();
if (remove) { if (remove) {
evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId).remove(); evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId).remove();
caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId()); caseStatusManageService.whenUpdateEvidence(caseEvidence.getCaseId());
} }
}else { } else {
evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId) evidenceFileService.lambdaUpdate().eq(EvidenceFile::getEvidenceId, evidenceId)
.eq(EvidenceFile::getFileId, fileId).remove(); .eq(EvidenceFile::getFileId, fileId).remove();
} }
return true; return true;
} }
@ -201,12 +199,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
} }
private IPage<EvidenceFileDTO> pageListCaseEvidence(EvidenceDirectoryDTO queryDirectory, private IPage<EvidenceFileDTO> pageListCaseEvidence(EvidenceDirectoryDTO queryDirectory,
String caseId, String directoryId, String evidenceName, String caseId, String directoryId, String evidenceName,
Page<CaseEvidence> page) { Page<CaseEvidence> page) {
if ( null == queryDirectory || queryDirectory.getLevel() != 3){ if (null == queryDirectory || queryDirectory.getLevel() != 3) {
/*if (null != queryDirectory && CollUtil.isEmpty(queryDirectory.listAllFileId())){ /*if (null != queryDirectory && CollUtil.isEmpty(queryDirectory.listAllFileId())){
return PageDTO.of(page.getCurrent(), page.getSize(), 0); return PageDTO.of(page.getCurrent(), page.getSize(), 0);
@ -219,10 +216,10 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
.like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName) .like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName)
.orderBy(true, false, CaseEvidence::getUpdateTime) .orderBy(true, false, CaseEvidence::getUpdateTime)
.page(page).convert(EvidenceFileDTO::new); .page(page).convert(EvidenceFileDTO::new);
}else { } else {
// 三级目录查询证据文件 // 三级目录查询证据文件
return evidenceFileService.pageListFileInfo( return evidenceFileService.pageListFileInfo(
null, caseId,evidenceName,List.of(directoryId), Page.of(page.getCurrent(), page.getSize())); null, caseId, evidenceName, List.of(directoryId), Page.of(page.getCurrent(), page.getSize()));
} }
} }
@ -282,8 +279,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
long attrStart = System.currentTimeMillis(); long attrStart = System.currentTimeMillis();
llmExtractDto.setPrompt(notePrompt.getPrompt()); llmExtractDto.setPrompt(notePrompt.getPrompt());
llmExtractDto.setExtractAttributes(notePrompt.getExtractAttributes()); llmExtractDto.setExtractAttributes(notePrompt.getExtractAttributes());
llmExtractDto = llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto)).get(0); List<LLMExtractDto> llmExtractDtos = llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto));
caseEvidence.setProperty(llmExtractDto.getExtractAttributes()); if (!llmExtractDtos.isEmpty()) {
llmExtractDto = llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto)).get(0);
caseEvidence.setProperty(llmExtractDto.getExtractAttributes());
}
log.info("属性提取完成。更新证据处理状态为【属性提取完成】。属性:【{}】。耗时:【{}】", caseEvidence.getProperty(), System.currentTimeMillis() - attrStart); log.info("属性提取完成。更新证据处理状态为【属性提取完成】。属性:【{}】。耗时:【{}】", caseEvidence.getProperty(), System.currentTimeMillis() - attrStart);
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_ATTR_EXTRACT_OK); caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_ATTR_EXTRACT_OK);
updateById(caseEvidence); updateById(caseEvidence);
@ -442,25 +442,25 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList); ((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList);
for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) { for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) {
if (StrUtil.equalsAny(caseEvidenceDetailDTO.getUpdateStatus(),"-1","1")){ if (StrUtil.equalsAny(caseEvidenceDetailDTO.getUpdateStatus(), "-1", "1")) {
boolean match = caseEvidenceDetailDTO.getFileList().stream().allMatch(file -> StrUtil.equals(file.getUpdateStatus(), "1")); boolean match = caseEvidenceDetailDTO.getFileList().stream().allMatch(file -> StrUtil.equals(file.getUpdateStatus(), "1"));
if(match){ if (match) {
// 需要分析ocr识别+标题提取) // 需要分析ocr识别+标题提取)
log.info("ocrAndExtract:开始调用evidenceAnalysis接口...证据id:{},证据名:{}",caseEvidenceDetailDTO.getId(), caseEvidenceDetailDTO.getEvidenceName()); log.info("ocrAndExtract:开始调用evidenceAnalysis接口...证据id:{},证据名:{}", caseEvidenceDetailDTO.getId(), caseEvidenceDetailDTO.getEvidenceName());
xxlJobService.executeTaskByJobHandler("evidenceAnalysis", caseEvidenceDetailDTO.getId()); xxlJobService.executeTaskByJobHandler("evidenceAnalysis", caseEvidenceDetailDTO.getId());
}else { } else {
log.info("ocrAndExtract:单独识别ocr数据"); log.info("ocrAndExtract:单独识别ocr数据");
boolean success = false; boolean success = false;
for (EvidenceFileDTO evidenceFileDTO : caseEvidenceDetailDTO.getFileList()) { for (EvidenceFileDTO evidenceFileDTO : caseEvidenceDetailDTO.getFileList()) {
success = ocrEvidenceService.submitOrcTask(evidenceFileDTO.getFileId()); success = ocrEvidenceService.submitOrcTask(evidenceFileDTO.getFileId());
if (!success){ if (!success) {
this.lambdaUpdate().eq(CaseEvidence::getId, evidenceFileDTO.getEvidenceId()) this.lambdaUpdate().eq(CaseEvidence::getId, evidenceFileDTO.getEvidenceId())
.set(CaseEvidence::getProcessStatus, EvidenceConstants.PROCESS_STATUS_FAILED).update(); .set(CaseEvidence::getProcessStatus, EvidenceConstants.PROCESS_STATUS_FAILED).update();
break; break;
} }
} }
if (success){ if (success) {
this.lambdaUpdate().eq(CaseEvidence::getId, caseEvidenceDetailDTO.getId()) this.lambdaUpdate().eq(CaseEvidence::getId, caseEvidenceDetailDTO.getId())
.set(CaseEvidence::getProcessStatus, EvidenceConstants.PROCESS_STATUS_SUCCESS).update(); .set(CaseEvidence::getProcessStatus, EvidenceConstants.PROCESS_STATUS_SUCCESS).update();
} }
@ -611,7 +611,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
for (EvidenceDirectoryDTO directoryDTO : verifyEvidenceReqVO.getEvidenceDirectoryList()) { for (EvidenceDirectoryDTO directoryDTO : verifyEvidenceReqVO.getEvidenceDirectoryList()) {
CaseEvidence evidenceInfo = directoryDTO.getEvidenceInfo(); CaseEvidence evidenceInfo = directoryDTO.getEvidenceInfo();
List<EvidenceFileDTO> fileInfoList = directoryDTO.getFileInfoList(); List<EvidenceFileDTO> fileInfoList = directoryDTO.getFileInfoList();
if (CollUtil.isNotEmpty(fileInfoList) && evidenceInfo != null){ if (CollUtil.isNotEmpty(fileInfoList) && evidenceInfo != null) {
for (EvidenceFileDTO fileInfo : fileInfoList) { for (EvidenceFileDTO fileInfo : fileInfoList) {
fileInfo.setEvidenceInfo(evidenceInfo); fileInfo.setEvidenceInfo(evidenceInfo);
} }
@ -660,7 +660,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
List<CategoryPromptDTO> categoryPromptDTOS = evidenceDirectoryService.listCategoryPrompt(caseId); List<CategoryPromptDTO> categoryPromptDTOS = evidenceDirectoryService.listCategoryPrompt(caseId);
Map<String, CaseEvidence> caseEvidenceMap = caseEvidenceList.stream().collect(Collectors.toMap(CaseEvidence::getId, Function.identity())); Map<String, CaseEvidence> caseEvidenceMap = caseEvidenceList.stream().collect(Collectors.toMap(CaseEvidence::getId, Function.identity()));
Map<String, CategoryPromptDTO> categoryPromptMap = categoryPromptDTOS.stream().collect(Collectors.toMap(CategoryPromptDTO::getDirectoryId,k->k,(v1,v2)->v1)); Map<String, CategoryPromptDTO> categoryPromptMap = categoryPromptDTOS.stream().collect(Collectors.toMap(CategoryPromptDTO::getDirectoryId, k -> k, (v1, v2) -> v1));
Iterator<EvidenceDirectoryDTO> iterator = evidenceDirectoryDTOS.iterator(); Iterator<EvidenceDirectoryDTO> iterator = evidenceDirectoryDTOS.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@ -711,7 +711,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
EvidenceDirectoryDTO parentDirectory = null; EvidenceDirectoryDTO parentDirectory = null;
for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) { for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) {
parentDirectory = evidenceDirectoryDTO.findDirectory(CollUtil.getFirst(directoryIdList)); parentDirectory = evidenceDirectoryDTO.findDirectory(CollUtil.getFirst(directoryIdList));
if (null != parentDirectory){ if (null != parentDirectory) {
break; break;
} }
} }
@ -720,7 +720,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
long count = evidenceDirectoryService.lambdaQuery().eq(EvidenceDirectory::getParentId, parentDirectory.getId()) long count = evidenceDirectoryService.lambdaQuery().eq(EvidenceDirectory::getParentId, parentDirectory.getId())
.list().stream() .list().stream()
.filter(d -> StrUtil.contains(d.getDirectoryName(), evidenceDirectory.getDirectoryName())).count(); .filter(d -> StrUtil.contains(d.getDirectoryName(), evidenceDirectory.getDirectoryName())).count();
if (count > 0){ if (count > 0) {
evidenceDirectory.setDirectoryName(evidenceDirectory.getDirectoryName() + (count + 1)); evidenceDirectory.setDirectoryName(evidenceDirectory.getDirectoryName() + (count + 1));
} }
@ -809,11 +809,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
caseEvidenceDetailDTOS.add(caseEvidenceDetailDTO); caseEvidenceDetailDTOS.add(caseEvidenceDetailDTO);
} }
} }
if (directory.getLevel() == 3){ if (directory.getLevel() == 3) {
// 不会存在需要创建目录的场景 // 不会存在需要创建目录的场景
CaseEvidence caseEvidence = super.lambdaQuery().eq(CaseEvidence::getDirectoryId, directory.getId()).one(); CaseEvidence caseEvidence = super.lambdaQuery().eq(CaseEvidence::getDirectoryId, directory.getId()).one();
CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO(); CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO();
if (null != caseEvidence){ if (null != caseEvidence) {
caseEvidenceDetailDTO.setId(caseEvidence.getId()); caseEvidenceDetailDTO.setId(caseEvidence.getId());
} }

Loading…
Cancel
Save