Commit f597c9c3 by qiuchaofei

1修改返回结果,表嵌套字段。字段级关系独立一个map

parent cf1af814
package com.keymobile.metadata.metadataRelation.pojo.returnBean;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReturnNode {
......@@ -15,10 +17,21 @@ public class ReturnNode {
private String cnName;
private String dataPath;
private Map<String ,String> attributeMaps = new HashMap<>();
private Map<String ,String> relationMaps = new HashMap<>();
public List<ReturnNode> getChildren() {
return children;
}
public void setChildren(List<ReturnNode> children) {
this.children = children;
}
private List<ReturnNode> children = new ArrayList<>();
public Map<String, String> getRelationMaps() {
return relationMaps;
}
......
......@@ -18,6 +18,15 @@ public class ReturnReslult {
this.count = count;
}
public List<ReturnEdge> getChildrenEdges() {
return childrenEdges;
}
public void setChildrenEdges(List<ReturnEdge> childrenEdges) {
this.childrenEdges = childrenEdges;
}
private List<ReturnEdge> childrenEdges = new ArrayList<>();
private List<ReturnEdge> edges = new ArrayList<>();
......
......@@ -456,6 +456,7 @@ public class TableServiceImpl implements ITableService {
long timeStart = System.currentTimeMillis();
Map<String,ReturnNode> returnNodeMap = new HashMap<>();
Map<String,ReturnEdge> returnEdgeMap = new HashMap<>();
Map<String,ReturnEdge> childrenEdgeMap = new HashMap<>();
Neo4jConfig neo4jConfig = new Neo4jConfig();
Driver neo4jConnection = neo4jConfig.getNeo4jConnection();
......@@ -556,11 +557,11 @@ public class TableServiceImpl implements ITableService {
}
}
int respossitoryCount= 0;
int respossitoryTime= 0;
Map<String,String> withRelationColumns = new HashMap<>();
long time101 = System.currentTimeMillis();
List<Neo4jColumn> neo4jColumns = neo4jTableRepository.getColumnByTableId(tableId);
long time102 = System.currentTimeMillis();
......@@ -568,7 +569,7 @@ public class TableServiceImpl implements ITableService {
respossitoryCount++;
for(Neo4jColumn neo4jColumn:neo4jColumns){
String currentColumnId = neo4jColumn.getMetadataId();
withRelationColumns.put(currentColumnId,"");
String targetColumncypher = "match (m:Neo4jColumn{metadataId:\""+currentColumnId+"\"})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m2)-[r:流向]->(m1) return m1";
long time30=System.currentTimeMillis();
......@@ -595,15 +596,17 @@ public class TableServiceImpl implements ITableService {
returnNode.setCnName(metaData.getCnName());
returnNode.setType("Column");
returnNode.setDataPath(metaData.getPath());
returnNodeMap.put(returnNode.getId(),returnNode);
// returnNodeMap.put(returnNode.getId(),returnNode);
withRelationColumns.put(returnNode.getId(),"");
ReturnEdge returnEdge = new ReturnEdge();
String edgeId = currentColumnId+"_"+returnNode.getId();
returnEdge.setFromId(currentColumnId);
returnEdge.setToId(returnNode.getId());
returnEdge.setType("To");
returnEdge.setEdgeId(edgeId);
returnEdgeMap.put(edgeId,returnEdge);
childrenEdgeMap.put(edgeId,returnEdge);
}
}
}
......@@ -634,19 +637,19 @@ public class TableServiceImpl implements ITableService {
returnNode.setType("Column");
returnNodeMap.put(returnNode.getId(),returnNode);
withRelationColumns.put(returnNode.getId(),"");
ReturnEdge returnEdge = new ReturnEdge();
String edgeId =returnNode.getId() +"_"+currentColumnId;
returnEdge.setFromId(returnNode.getId() );
returnEdge.setToId(currentColumnId);
returnEdge.setType("To");
returnEdge.setEdgeId(edgeId);
returnEdgeMap.put(edgeId,returnEdge);
childrenEdgeMap.put(edgeId,returnEdge);
}
}
}
}
Map<String,ReturnNode> noRelationColumns = new HashMap<>();
for(Object obj: tableIdMap.keySet()){
String currentTableId = (String)obj;
......@@ -656,6 +659,10 @@ public class TableServiceImpl implements ITableService {
StatementResult table2CoumnResult = session.run(table2CoumnCypher);
long time104 = System.currentTimeMillis();
runCypherTime += (time104 - time103);
ReturnNode currentTableNode = returnNodeMap.get(currentTableId);
while(table2CoumnResult.hasNext()){
Record record = table2CoumnResult.next();
List<Value> values = record.values();
......@@ -671,24 +678,24 @@ public class TableServiceImpl implements ITableService {
}
String columnId = metaData.getMetadataId();
if(!returnNodeMap.containsKey(columnId)){
ReturnNode returnNode = new ReturnNode();
returnNode.setId(metaData.getMetadataId());
returnNode.setName(metaData.getName());
returnNode.setCnName(metaData.getCnName());
returnNode.setDataPath(metaData.getPath());
ReturnNode returnNode = new ReturnNode();
returnNode.setId(metaData.getMetadataId());
returnNode.setName(metaData.getName());
returnNode.setCnName(metaData.getCnName());
returnNode.setDataPath(metaData.getPath());
if(!withRelationColumns.containsKey(columnId)){
returnNode.setDataPath("noRelation");
returnNode.setType("Column");
noRelationColumns.put(columnId ,returnNode);
}
ReturnEdge returnEdge = new ReturnEdge();
String edgeId = currentTableId+"_"+columnId;
returnEdge.setEdgeId(edgeId);
returnEdge.setFromId(currentTableId);
returnEdge.setToId(columnId);
returnEdge.setType("Composition");
returnEdgeMap.put(edgeId,returnEdge);
returnNode.setType("Column");
currentTableNode.getChildren().add(returnNode);
// ReturnEdge returnEdge = new ReturnEdge();
// String edgeId = currentTableId+"_"+columnId;
// returnEdge.setEdgeId(edgeId);
// returnEdge.setFromId(currentTableId);
// returnEdge.setToId(columnId);
// returnEdge.setType("Composition");
// returnEdgeMap.put(edgeId,returnEdge);
}
}
}
......@@ -698,9 +705,9 @@ public class TableServiceImpl implements ITableService {
ReturnNode returnNode = returnNodeMap.get(obj);
returnReslult.getNodes().add(returnNode);
}
for(Object obj:noRelationColumns.keySet()){
ReturnNode returnNode = noRelationColumns.get(obj);
returnReslult.getNodes().add(returnNode);
for(Object obj:childrenEdgeMap.keySet()){
ReturnEdge returnEdge = childrenEdgeMap.get(obj);
returnReslult.getChildrenEdges().add(returnEdge);
}
for(Object obj:returnEdgeMap.keySet()){
ReturnEdge returnEdge = returnEdgeMap.get(obj);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment