|
|
|
@ -427,7 +427,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
Map<String, Object> parameters = new HashMap<>();
|
|
|
|
|
parameters.put("caseId", graphDebugDTO.getCaseId());
|
|
|
|
|
if (null != casePerson){
|
|
|
|
|
parameters.put("lawActor", casePerson.getId());
|
|
|
|
|
parameters.put("lawActor", casePerson.getName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 执行查询语句
|
|
|
|
@ -444,8 +444,10 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
graphDebugResVO.setRecordTitleList(records.get(0).keys());
|
|
|
|
|
}
|
|
|
|
|
graphDebugResVO.setRecordList(mapRecords(records));
|
|
|
|
|
graphDebugResVO.setGraphRelList(generateRelations(records));
|
|
|
|
|
graphDebugResVO.setGraphNodeList(generateNodes(records));
|
|
|
|
|
|
|
|
|
|
Pair<List<WebRelDTO>, List<Map<String, String>>> pair = this.neo4jService.mergeRecord(generateNodes(records), generateRelations(records));
|
|
|
|
|
graphDebugResVO.setGraphRelList(pair.getKey());
|
|
|
|
|
graphDebugResVO.setGraphNodeList(pair.getValue());
|
|
|
|
|
|
|
|
|
|
// 尝试转换为图形数据
|
|
|
|
|
return graphDebugResVO;
|
|
|
|
@ -481,16 +483,17 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return graphRelList;
|
|
|
|
|
Set<String> relIdSet = new HashSet<>();
|
|
|
|
|
return graphRelList.stream().filter(map -> relIdSet.add(StrUtil.join("-", map.getSource(), map.getTarget()))).toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<Map<String, Object>> generateNodes(List<Record> records) {
|
|
|
|
|
private List<Map<String, String>> generateNodes(List<Record> records) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> graphNodeList = records.stream().flatMap(record -> record.values().stream())
|
|
|
|
|
List<Map<String, String>> graphNodeList = records.stream().flatMap(record -> record.values().stream())
|
|
|
|
|
.filter(value -> value.type().name().equals("NODE")).map(value ->{
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
|
|
Node node = value.asNode();
|
|
|
|
|
map.put("id", String.valueOf(node.id()));
|
|
|
|
|
map.put("name", node.get("name").asString());
|
|
|
|
@ -518,7 +521,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
List<Record> extendRecord = neo4jService.executeCypher("MATCH (n) where id(n) in $nodeIds return n", Map.of("nodeIds", nodeIds));
|
|
|
|
|
if (CollUtil.isNotEmpty(extendRecord)){
|
|
|
|
|
graphNodeList.addAll(extendRecord.stream().flatMap(r -> r.values().stream()).map(r -> {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
|
|
map.put("id", String.valueOf(r.asNode().id()));
|
|
|
|
|
map.put("name", r.get("name").asString());
|
|
|
|
|
map.put("entityName", r.get("name").asString());
|
|
|
|
@ -528,7 +531,7 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Set<String> nodeIdSet = new HashSet<>();
|
|
|
|
|
return graphNodeList.stream().filter(map -> nodeIdSet.add((String) map.get("id"))).toList();
|
|
|
|
|
return graphNodeList.stream().filter(map -> nodeIdSet.add(map.get("id"))).toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<Map<String, Object>> mapRecords(List<Record> records) {
|
|
|
|
|