From 4486b1540e3b702f164305bb8589579e350ad213 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Tue, 5 Nov 2024 09:16:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../police/domain/EvidenceDirectory.java | 2 +- .../police/dto/AtomicIndexDTO.java | 6 +++ .../service/impl/CaseEvidenceServiceImpl.java | 54 ++++++++++++------- .../impl/FileOcrProcessServiceImpl.java | 2 + .../service/impl/ModelCaseServiceImpl.java | 4 +- .../service/impl/ModelIndexServiceImpl.java | 32 +++++++++-- .../demo/FuHsiApplicationTests.java | 2 +- 7 files changed, 75 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/supervision/police/domain/EvidenceDirectory.java b/src/main/java/com/supervision/police/domain/EvidenceDirectory.java index cd37142..eee3d1f 100644 --- a/src/main/java/com/supervision/police/domain/EvidenceDirectory.java +++ b/src/main/java/com/supervision/police/domain/EvidenceDirectory.java @@ -47,7 +47,7 @@ public class EvidenceDirectory implements Serializable { /** * 创建时间 */ - @TableField(fill = FieldFill.INSERT_UPDATE) + @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** diff --git a/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java b/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java index 9e74de7..38943f9 100644 --- a/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java +++ b/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java @@ -19,6 +19,12 @@ public class AtomicIndexDTO { */ private String indexName; + + /** + * 父级指标名称 + */ + private String parentIndexName; + /** * 分值 */ 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 9d979e4..9d4ed6c 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -396,16 +396,19 @@ public class CaseEvidenceServiceImpl extends ServiceImpl evidenceCategoryDTOS = evidenceCategoryService.listCategoryTree(caseType); + List evidenceCategoryTree = evidenceCategoryService.listCategoryTree(caseType); + List evidenceDirectoryTree = evidenceDirectoryService.listDirectoryTree(caseId); - initCaseEvidenceDirectory(evidenceCategoryDTOS, caseId, null); + initCaseEvidenceDirectory(evidenceCategoryTree,evidenceDirectoryTree,caseId, null); } @Override @Transactional(rollbackFor = Exception.class, transactionManager = "dataSourceTransactionManager") public void refreshCaseEvidence() { + log.info("开始初始化案件的证据目录。=========>>>>"); List list = modelCaseService.list(); List allEvidence = super.list(); @@ -420,15 +423,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl findCaseIdSet = evidenceDirectoryService.list().stream().map(EvidenceDirectory::getCaseId).collect(Collectors.toSet()); - for (ModelCase modelCase : list) { String caseType = modelCase.getCaseType(); String id = modelCase.getId(); - if (findCaseIdSet.contains(id)){ - // 已经初始化一次的数据,不进行二次处理 - continue; - } // 开始初始化 initCaseEvidenceDirectory(id, caseType); EvidenceDirectoryDTO rootDirectory = new EvidenceDirectoryDTO(listDirectoryTree(id)); @@ -478,6 +475,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl evidenceCategoryDTOS, String caseId, String parentId) { - for (EvidenceCategoryDTO evidenceCategoryDTO : evidenceCategoryDTOS) { - EvidenceDirectory evidenceDirectory = new EvidenceDirectory(); - evidenceDirectory.setCaseId(caseId); - evidenceDirectory.setDirectoryName(evidenceCategoryDTO.getCategoryName()); - evidenceDirectory.setCategoryId(evidenceCategoryDTO.getId()); - evidenceDirectory.setParentId(parentId); - evidenceDirectoryService.save(evidenceDirectory); + private void initCaseEvidenceDirectory(List evidenceCategoryTree, List evidenceDirectoryTree,String caseId,String parentId) { + if (null == evidenceDirectoryTree){ + evidenceDirectoryTree = new ArrayList<>(1); + } + for (EvidenceCategoryDTO evidenceCategoryDTO : evidenceCategoryTree) { + List directoryDTOS = evidenceDirectoryTree.stream().filter(evidenceDirectoryDTO -> evidenceDirectoryDTO.getCategoryId().equals(evidenceCategoryDTO.getId())).toList(); + if (CollUtil.isEmpty(directoryDTOS)){ + 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())) { - initCaseEvidenceDirectory(evidenceCategoryDTO.getChild(), caseId, evidenceDirectory.getId()); + initCaseEvidenceDirectory(evidenceCategoryDTO.getChild(),parentDTO.getChild(),caseId,parentDTO.getId()); } } } diff --git a/src/main/java/com/supervision/police/service/impl/FileOcrProcessServiceImpl.java b/src/main/java/com/supervision/police/service/impl/FileOcrProcessServiceImpl.java index 8653aa9..3301487 100644 --- a/src/main/java/com/supervision/police/service/impl/FileOcrProcessServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/FileOcrProcessServiceImpl.java @@ -91,6 +91,8 @@ public class FileOcrProcessServiceImpl extends ServiceImpl atomicResultList = modelAtomicResultService.lambdaQuery().eq(ModelAtomicResult::getCaseId, caseId).list(); List list = atomicResultList.stream().map(ModelAtomicResult::getEvidenceId).filter(Objects::nonNull).map(v -> v.split(",")).flatMap(Arrays::stream).toList(); - List caseEvidenceList = caseEvidenceService.listByIds(list); + List caseEvidenceList = CollUtil.isEmpty(list) ? new ArrayList<>() : caseEvidenceService.listByIds(list); for (IndexDetail record : indexDetails) { if (StringUtils.isEmpty(record.getJudgeLogic())) { @@ -439,6 +439,8 @@ public class ModelCaseServiceImpl extends ServiceImpl filterAtomicResultList = atomicResultList.stream().filter(v -> StrUtil.equals(record.getIndexId(), v.getIndexId())).toList(); List evidentResult = getEvidentResult(filterAtomicResultList, caseEvidenceList, rootDirectory); atomic.setEvidentResultList(evidentResult); + + atomic.setParentIndexName(record.getIndexName()); } record.setChildren(atomics); diff --git a/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java index f19fb16..710b0d3 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelIndexServiceImpl.java @@ -74,6 +74,9 @@ public class ModelIndexServiceImpl extends ServiceImpl allowedTables; + @Value("${case.atomic.query}") + private String queryTemplate; + @Override @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) public R selectAll(ModelIndexReqVO modelIndex, Integer page, Integer size) { @@ -229,6 +232,12 @@ public class ModelIndexServiceImpl extends ServiceImpl() {{ + put("startEntityType", prompt.getStartEntityType()); + put("relType", prompt.getRelType()); + put("endEntityType", prompt.getEndEntityType()); + }}); + } + @Override @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) public List listCaseAtomicIndex(String caseId, String indexSource) { @@ -382,7 +404,7 @@ public class ModelIndexServiceImpl extends ServiceImpl notePrompts = notePromptService.listByIds(promptIds); - Map dicMap = comDictionaryService.getDictionaryMapReverse("prompt_attribute_valuetype"); + Map dicMap = comDictionaryService.getDictionaryMap("prompt_attribute_valuetype"); for (Map.Entry> entry : result.entrySet()) { List scopeDTOList = makeScopes(entry.getKey(), atomicIndexList, notePrompts, dicMap); @@ -411,11 +433,11 @@ public class ModelIndexServiceImpl extends ServiceImpl { ValueCalculateScopeDTO valueCalculateScope = new ValueCalculateScopeDTO(); valueCalculateScope.setValue(extractAttribute.getAttrName()); - valueCalculateScope.setValueType(dicMap.get(extractAttribute.getAttrValueType())); - valueCalculateScope.setValueTypeDesc(extractAttribute.getAttrValueType()); + valueCalculateScope.setValueType(extractAttribute.getAttrValueType()); + valueCalculateScope.setValueTypeDesc(dicMap.get(extractAttribute.getAttrValueType())); valueCalculateScope.setOperatorList( - IndexRuleConstants.VALUE_TYPE_OPERATOR_MAPPING.get(valueCalculateScope.getValueType())); - Map map = IndexRuleConstants.VALUE_TYPE_AGGREGATE_MAPPING.get(valueCalculateScope.getValueType()); + IndexRuleConstants.VALUE_TYPE_OPERATOR_MAPPING.get(extractAttribute.getAttrValueType())); + Map 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()); return valueCalculateScope; }).toList(); diff --git a/src/test/java/com/supervision/demo/FuHsiApplicationTests.java b/src/test/java/com/supervision/demo/FuHsiApplicationTests.java index c5b051c..66d54ec 100644 --- a/src/test/java/com/supervision/demo/FuHsiApplicationTests.java +++ b/src/test/java/com/supervision/demo/FuHsiApplicationTests.java @@ -309,7 +309,7 @@ public class FuHsiApplicationTests { @Test public void initCaseDirectory() { - caseEvidenceService.initCaseEvidenceDirectory("1823955210189000706", "1"); + caseEvidenceService.initCaseEvidenceDirectory("1846389691251220482", "1"); System.out.println("222"); }