提取不到结果时不用给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 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<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.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<CaseEvidenceMapper, Cas
@Override
@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("证据信息不存在"));
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<CaseEvidenceMapper, Cas
}
private IPage<EvidenceFileDTO> pageListCaseEvidence(EvidenceDirectoryDTO queryDirectory,
String caseId, String directoryId, String evidenceName,
Page<CaseEvidence> page) {
String caseId, String directoryId, String evidenceName,
Page<CaseEvidence> 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<CaseEvidenceMapper, Cas
.like(StrUtil.isNotEmpty(evidenceName), CaseEvidence::getEvidenceName, evidenceName)
.orderBy(true, false, CaseEvidence::getUpdateTime)
.page(page).convert(EvidenceFileDTO::new);
}else {
} else {
// 三级目录查询证据文件
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();
llmExtractDto.setPrompt(notePrompt.getPrompt());
llmExtractDto.setExtractAttributes(notePrompt.getExtractAttributes());
llmExtractDto = llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto)).get(0);
caseEvidence.setProperty(llmExtractDto.getExtractAttributes());
List<LLMExtractDto> 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<CaseEvidenceMapper, Cas
((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList);
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"));
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<CaseEvidenceMapper, Cas
for (EvidenceDirectoryDTO directoryDTO : verifyEvidenceReqVO.getEvidenceDirectoryList()) {
CaseEvidence evidenceInfo = directoryDTO.getEvidenceInfo();
List<EvidenceFileDTO> 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<CaseEvidenceMapper, Cas
List<CategoryPromptDTO> categoryPromptDTOS = evidenceDirectoryService.listCategoryPrompt(caseId);
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();
while (iterator.hasNext()) {
@ -711,7 +711,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
EvidenceDirectoryDTO parentDirectory = null;
for (EvidenceDirectoryDTO evidenceDirectoryDTO : evidenceDirectoryDTOS) {
parentDirectory = evidenceDirectoryDTO.findDirectory(CollUtil.getFirst(directoryIdList));
if (null != parentDirectory){
if (null != parentDirectory) {
break;
}
}
@ -720,7 +720,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
long count = evidenceDirectoryService.lambdaQuery().eq(EvidenceDirectory::getParentId, parentDirectory.getId())
.list().stream()
.filter(d -> 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<CaseEvidenceMapper, Cas
caseEvidenceDetailDTOS.add(caseEvidenceDetailDTO);
}
}
if (directory.getLevel() == 3){
if (directory.getLevel() == 3) {
// 不会存在需要创建目录的场景
CaseEvidence caseEvidence = super.lambdaQuery().eq(CaseEvidence::getDirectoryId, directory.getId()).one();
CaseEvidenceDetailDTO caseEvidenceDetailDTO = new CaseEvidenceDetailDTO();
if (null != caseEvidence){
if (null != caseEvidence) {
caseEvidenceDetailDTO.setId(caseEvidence.getId());
}

Loading…
Cancel
Save