1. 修复bug

topo_dev
xueqingkun 6 months ago
parent 7513c94b41
commit 4486b1540e

@ -47,7 +47,7 @@ public class EvidenceDirectory implements Serializable {
/** /**
* *
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime; private LocalDateTime createTime;
/** /**

@ -19,6 +19,12 @@ public class AtomicIndexDTO {
*/ */
private String indexName; private String indexName;
/**
*
*/
private String parentIndexName;
/** /**
* *
*/ */

@ -396,16 +396,19 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
} }
@Override @Override
@Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager")
public void initCaseEvidenceDirectory(String caseId, String caseType) { public void initCaseEvidenceDirectory(String caseId, String caseType) {
List<EvidenceCategoryDTO> evidenceCategoryDTOS = evidenceCategoryService.listCategoryTree(caseType); List<EvidenceCategoryDTO> evidenceCategoryTree = evidenceCategoryService.listCategoryTree(caseType);
List<EvidenceDirectoryDTO> evidenceDirectoryTree = evidenceDirectoryService.listDirectoryTree(caseId);
initCaseEvidenceDirectory(evidenceCategoryDTOS, caseId, null); initCaseEvidenceDirectory(evidenceCategoryTree,evidenceDirectoryTree,caseId, null);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager") @Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager")
public void refreshCaseEvidence() { public void refreshCaseEvidence() {
log.info("开始初始化案件的证据目录。=========>>>>");
List<ModelCase> list = modelCaseService.list(); List<ModelCase> list = modelCaseService.list();
List<CaseEvidence> allEvidence = super.list(); List<CaseEvidence> allEvidence = super.list();
@ -420,15 +423,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
"7", "5",/*视听资料*/ "7", "5",/*视听资料*/
"8", "6"/*勘验笔录*/); "8", "6"/*勘验笔录*/);
Set<String> findCaseIdSet = evidenceDirectoryService.list().stream().map(EvidenceDirectory::getCaseId).collect(Collectors.toSet());
for (ModelCase modelCase : list) { for (ModelCase modelCase : list) {
String caseType = modelCase.getCaseType(); String caseType = modelCase.getCaseType();
String id = modelCase.getId(); String id = modelCase.getId();
if (findCaseIdSet.contains(id)){
// 已经初始化一次的数据,不进行二次处理
continue;
}
// 开始初始化 // 开始初始化
initCaseEvidenceDirectory(id, caseType); initCaseEvidenceDirectory(id, caseType);
EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(listDirectoryTree(id)); EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(listDirectoryTree(id));
@ -478,6 +475,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
} }
} }
log.info("<<<<=======初始化案件的证据目录完成。案件总条数:{}", list.size());
} }
@ -1127,20 +1125,38 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
/** /**
* *
* *
* @param evidenceCategoryDTOS * @param evidenceCategoryTree
* @param caseId id * @param caseId id
* @param parentId id * @param evidenceDirectoryTree id
*/
/**
*
* @param evidenceCategoryTree
* @param evidenceDirectoryTree
* @param caseId id
* @param parentId id
*/ */
private void initCaseEvidenceDirectory(List<EvidenceCategoryDTO> evidenceCategoryDTOS, String caseId, String parentId) { private void initCaseEvidenceDirectory(List<EvidenceCategoryDTO> evidenceCategoryTree, List<EvidenceDirectoryDTO> evidenceDirectoryTree,String caseId,String parentId) {
for (EvidenceCategoryDTO evidenceCategoryDTO : evidenceCategoryDTOS) { if (null == evidenceDirectoryTree){
EvidenceDirectory evidenceDirectory = new EvidenceDirectory(); evidenceDirectoryTree = new ArrayList<>(1);
evidenceDirectory.setCaseId(caseId); }
evidenceDirectory.setDirectoryName(evidenceCategoryDTO.getCategoryName()); for (EvidenceCategoryDTO evidenceCategoryDTO : evidenceCategoryTree) {
evidenceDirectory.setCategoryId(evidenceCategoryDTO.getId()); List<EvidenceDirectoryDTO> directoryDTOS = evidenceDirectoryTree.stream().filter(evidenceDirectoryDTO -> evidenceDirectoryDTO.getCategoryId().equals(evidenceCategoryDTO.getId())).toList();
evidenceDirectory.setParentId(parentId); if (CollUtil.isEmpty(directoryDTOS)){
evidenceDirectoryService.save(evidenceDirectory); EvidenceDirectory evidenceDirectory = new EvidenceDirectory();
evidenceDirectory.setCaseId(caseId);
evidenceDirectory.setDirectoryName(evidenceCategoryDTO.getCategoryName());
evidenceDirectory.setCategoryId(evidenceCategoryDTO.getId());
evidenceDirectory.setParentId(parentId);
evidenceDirectoryService.save(evidenceDirectory);
EvidenceDirectoryDTO directoryDTO = new EvidenceDirectoryDTO(evidenceDirectory);
evidenceDirectoryTree.add(directoryDTO);
directoryDTOS = List.of(directoryDTO);
}
EvidenceDirectoryDTO parentDTO = CollUtil.getFirst(directoryDTOS);
if (CollUtil.isNotEmpty(evidenceCategoryDTO.getChild())) { if (CollUtil.isNotEmpty(evidenceCategoryDTO.getChild())) {
initCaseEvidenceDirectory(evidenceCategoryDTO.getChild(), caseId, evidenceDirectory.getId()); initCaseEvidenceDirectory(evidenceCategoryDTO.getChild(),parentDTO.getChild(),caseId,parentDTO.getId());
} }
} }
} }

@ -91,6 +91,8 @@ public class FileOcrProcessServiceImpl extends ServiceImpl<FileOcrProcessMapper,
fileOcrProcess.setStatus(OcrProcessStatus.UNPROCESS.getCode()); fileOcrProcess.setStatus(OcrProcessStatus.UNPROCESS.getCode());
super.updateById(fileOcrProcess); super.updateById(fileOcrProcess);
processList.add(fileOcrProcess); processList.add(fileOcrProcess);
}else {
log.info("submitOCR:文件id:{},识别状态为:{}跳过...", fileId,ocrProcessMap.get(fileId).getStatus());
} }
}else { }else {
FileOcrProcess fileOcrProcess = new FileOcrProcess(fileId, OcrProcessStatus.UNPROCESS.getCode()); FileOcrProcess fileOcrProcess = new FileOcrProcess(fileId, OcrProcessStatus.UNPROCESS.getCode());

@ -415,7 +415,7 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
List<ModelAtomicResult> atomicResultList = modelAtomicResultService.lambdaQuery().eq(ModelAtomicResult::getCaseId, caseId).list(); List<ModelAtomicResult> atomicResultList = modelAtomicResultService.lambdaQuery().eq(ModelAtomicResult::getCaseId, caseId).list();
List<String> list = atomicResultList.stream().map(ModelAtomicResult::getEvidenceId).filter(Objects::nonNull).map(v -> v.split(",")).flatMap(Arrays::stream).toList(); List<String> list = atomicResultList.stream().map(ModelAtomicResult::getEvidenceId).filter(Objects::nonNull).map(v -> v.split(",")).flatMap(Arrays::stream).toList();
List<CaseEvidence> caseEvidenceList = caseEvidenceService.listByIds(list); List<CaseEvidence> caseEvidenceList = CollUtil.isEmpty(list) ? new ArrayList<>() : caseEvidenceService.listByIds(list);
for (IndexDetail record : indexDetails) { for (IndexDetail record : indexDetails) {
if (StringUtils.isEmpty(record.getJudgeLogic())) { if (StringUtils.isEmpty(record.getJudgeLogic())) {
@ -439,6 +439,8 @@ public class ModelCaseServiceImpl extends ServiceImpl<ModelCaseMapper, ModelCase
List<ModelAtomicResult> filterAtomicResultList = atomicResultList.stream().filter(v -> StrUtil.equals(record.getIndexId(), v.getIndexId())).toList(); List<ModelAtomicResult> filterAtomicResultList = atomicResultList.stream().filter(v -> StrUtil.equals(record.getIndexId(), v.getIndexId())).toList();
List<EvidentIndexResultDTO> evidentResult = getEvidentResult(filterAtomicResultList, caseEvidenceList, rootDirectory); List<EvidentIndexResultDTO> evidentResult = getEvidentResult(filterAtomicResultList, caseEvidenceList, rootDirectory);
atomic.setEvidentResultList(evidentResult); atomic.setEvidentResultList(evidentResult);
atomic.setParentIndexName(record.getIndexName());
} }
record.setChildren(atomics); record.setChildren(atomics);

@ -74,6 +74,9 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
@Value("${case.evidence.table}") @Value("${case.evidence.table}")
private List<String> allowedTables; private List<String> allowedTables;
@Value("${case.atomic.query}")
private String queryTemplate;
@Override @Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public R<?> selectAll(ModelIndexReqVO modelIndex, Integer page, Integer size) { public R<?> selectAll(ModelIndexReqVO modelIndex, Integer page, Integer size) {
@ -229,6 +232,12 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
Assert.notNull(notePrompt, "提示词信息不存在"); Assert.notNull(notePrompt, "提示词信息不存在");
Assert.notEmpty(notePrompt.getEvidenceCategoryId(), "提示词分类为空"); Assert.notEmpty(notePrompt.getEvidenceCategoryId(), "提示词分类为空");
modelAtomicIndex.setCategoryId(notePrompt.getEvidenceCategoryId()); modelAtomicIndex.setCategoryId(notePrompt.getEvidenceCategoryId());
}else if (StringUtils.equals(IndexRuleConstants.OPERAND_TYPE_GRAPH, modelAtomicIndex.getIndexSource())) {
Assert.notEmpty(modelAtomicIndex.getPromptId(), "提示词id不能为空");
NotePrompt notePrompt = notePromptService.getBaseMapper().selectById(modelAtomicIndex.getPromptId());
Assert.notNull(notePrompt, "提示词信息不存在");
String query = promptGenerateGraphQuery(notePrompt, queryTemplate);
modelAtomicIndex.setQueryLang(query);
} }
} }
@ -246,6 +255,19 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
} }
} }
private String promptGenerateGraphQuery(NotePrompt prompt, String queryTemplate) {
if (null == prompt || !StrUtil.equals("2", prompt.getType())) {
return null;
}
return StrUtil.format(queryTemplate,
new HashMap<String, Object>() {{
put("startEntityType", prompt.getStartEntityType());
put("relType", prompt.getRelType());
put("endEntityType", prompt.getEndEntityType());
}});
}
@Override @Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public List<CaseAtomicIndexDTO> listCaseAtomicIndex(String caseId, String indexSource) { public List<CaseAtomicIndexDTO> listCaseAtomicIndex(String caseId, String indexSource) {
@ -382,7 +404,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
} }
List<NotePrompt> notePrompts = notePromptService.listByIds(promptIds); List<NotePrompt> notePrompts = notePromptService.listByIds(promptIds);
Map<String, String> dicMap = comDictionaryService.getDictionaryMapReverse("prompt_attribute_valuetype"); Map<String, String> dicMap = comDictionaryService.getDictionaryMap("prompt_attribute_valuetype");
for (Map.Entry<String, List<ValueCalculateScopeDTO>> entry : result.entrySet()) { for (Map.Entry<String, List<ValueCalculateScopeDTO>> entry : result.entrySet()) {
List<ValueCalculateScopeDTO> scopeDTOList = makeScopes(entry.getKey(), atomicIndexList, notePrompts, dicMap); List<ValueCalculateScopeDTO> scopeDTOList = makeScopes(entry.getKey(), atomicIndexList, notePrompts, dicMap);
@ -411,11 +433,11 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
return extractAttributes.stream().map(extractAttribute -> { return extractAttributes.stream().map(extractAttribute -> {
ValueCalculateScopeDTO valueCalculateScope = new ValueCalculateScopeDTO(); ValueCalculateScopeDTO valueCalculateScope = new ValueCalculateScopeDTO();
valueCalculateScope.setValue(extractAttribute.getAttrName()); valueCalculateScope.setValue(extractAttribute.getAttrName());
valueCalculateScope.setValueType(dicMap.get(extractAttribute.getAttrValueType())); valueCalculateScope.setValueType(extractAttribute.getAttrValueType());
valueCalculateScope.setValueTypeDesc(extractAttribute.getAttrValueType()); valueCalculateScope.setValueTypeDesc(dicMap.get(extractAttribute.getAttrValueType()));
valueCalculateScope.setOperatorList( valueCalculateScope.setOperatorList(
IndexRuleConstants.VALUE_TYPE_OPERATOR_MAPPING.get(valueCalculateScope.getValueType())); IndexRuleConstants.VALUE_TYPE_OPERATOR_MAPPING.get(extractAttribute.getAttrValueType()));
Map<String, String> map = IndexRuleConstants.VALUE_TYPE_AGGREGATE_MAPPING.get(valueCalculateScope.getValueType()); Map<String, String> map = IndexRuleConstants.VALUE_TYPE_AGGREGATE_MAPPING.getOrDefault(valueCalculateScope.getValueType(),new HashMap<>());
valueCalculateScope.setAggregateList(map.entrySet().stream().map(entry -> new Pair<>(entry.getKey(), entry.getValue())).toList()); valueCalculateScope.setAggregateList(map.entrySet().stream().map(entry -> new Pair<>(entry.getKey(), entry.getValue())).toList());
return valueCalculateScope; return valueCalculateScope;
}).toList(); }).toList();

@ -309,7 +309,7 @@ public class FuHsiApplicationTests {
@Test @Test
public void initCaseDirectory() { public void initCaseDirectory() {
caseEvidenceService.initCaseEvidenceDirectory("1823955210189000706", "1"); caseEvidenceService.initCaseEvidenceDirectory("1846389691251220482", "1");
System.out.println("222"); System.out.println("222");
} }

Loading…
Cancel
Save