Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
neo4jRelation
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qiuchaofei
neo4jRelation
Commits
83265731
Commit
83265731
authored
Jun 22, 2022
by
qiuchaofei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.不同步字段,2 需要字段时从repo获取,3系统id获取系统
parent
5e21c932
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
142 additions
and
9 deletions
+142
-9
MetaDataController.java
...adata/metadataRelation/controller/MetaDataController.java
+6
-0
RelationalGraphController.java
...etadataRelation/controller/RelationalGraphController.java
+2
-2
IMetadataService.java
...e/metadata/metadataRelation/service/IMetadataService.java
+1
-0
ISystemService.java
...ile/metadata/metadataRelation/service/ISystemService.java
+1
-0
MetadataServiceImpl.java
...ta/metadataRelation/service/impl/MetadataServiceImpl.java
+5
-2
SystemServiceImpl.java
...data/metadataRelation/service/impl/SystemServiceImpl.java
+114
-0
TableServiceImpl.java
...adata/metadataRelation/service/impl/TableServiceImpl.java
+13
-5
No files found.
src/main/java/com/keymobile/metadata/metadataRelation/controller/MetaDataController.java
View file @
83265731
...
...
@@ -374,6 +374,12 @@ public class MetaDataController {
}
@ApiOperation
(
tags
=
""
,
value
=
"获取系统总图"
)
@RequestMapping
(
path
=
"/getSystemGraphBySystemId"
,
method
=
RequestMethod
.
GET
)
public
ReturnReslult
getSystemGraphBySystemId
(
String
systemId
){
return
systemService
.
getSystemBySystemId
(
systemId
);
}
private
String
getParentId
(
String
neo4jId
,
Map
<
String
,
String
>
child2Parent
)
{
String
parentId
=
neo4jId
;
...
...
src/main/java/com/keymobile/metadata/metadataRelation/controller/RelationalGraphController.java
View file @
83265731
...
...
@@ -243,7 +243,7 @@ public class RelationalGraphController {
return
returnReslult
;
}
//表的分析,链路分析,表与其他表的上下游关系,其他表可以继续下钻,并且可以收缩。
@ApiOperation
(
tags
=
""
,
value
=
"传入表的id,返回表的上下游一层关系。"
)
@ApiOperation
(
tags
=
""
,
value
=
"
全链分析,
传入表的id,返回表的上下游一层关系。"
)
@RequestMapping
(
path
=
"/getRelationTablesTableId"
,
method
=
RequestMethod
.
GET
)
public
Map
<
String
,
List
<
ReturnNode
>>
getRelationTablesTableId
(
String
tableId
){
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
...
...
@@ -310,7 +310,7 @@ public class RelationalGraphController {
}
//表的分析,关系分析--表与模型,表与质量,表与标准,表与作业的关系
@ApiOperation
(
tags
=
""
,
value
=
"传入表的id,返回与表相关的模型,标准,质量,资产,作业等对象"
)
@ApiOperation
(
tags
=
""
,
value
=
"
关系分析,
传入表的id,返回与表相关的模型,标准,质量,资产,作业等对象"
)
@RequestMapping
(
path
=
"/getRelationObjectByTableId"
,
method
=
RequestMethod
.
GET
)
public
Map
<
String
,
List
<
ReturnNode
>>
getRelationObjectByTableId
(
String
tableId
){
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/IMetadataService.java
View file @
83265731
...
...
@@ -112,4 +112,5 @@ public interface IMetadataService {
void
syschro1104Relations
(
String
catalogName
);
void
syschroTable2TableRelations
(
String
catalogName
);
}
src/main/java/com/keymobile/metadata/metadataRelation/service/ISystemService.java
View file @
83265731
...
...
@@ -18,4 +18,5 @@ public interface ISystemService {
//从环境id拿到系统
Map
<
String
,
ReturnNode
>
getSystemByEnvId
(
String
envId
);
ReturnReslult
getSystemBySystemId
(
String
systemId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/MetadataServiceImpl.java
View file @
83265731
...
...
@@ -1512,7 +1512,9 @@ public class MetadataServiceImpl implements IMetadataService {
saveAllProcedureByBatch
(
catalogName
,
compositionRelationList
,
neo4jSchemaMap
,
neo4jSchema
.
getMetadataId
());
//专门做字段解析,批量获取字段,进行组装。
saveAllColumnByBatch
(
catalogName
,
compositionRelationList
,
neo4jTableIdMap
,
neo4jSchema
.
getMetadataId
());
// saveAllColumnByBatch(catalogName,compositionRelationList,neo4jTableIdMap,neo4jSchema.getMetadataId());
// Neo4jSchema neo4jSchemaList = neo4jSchemaRepository.findNeo4jSchemaByMetadataId(neo4jSchema.getMetadataId());
// if(neo4jSchemaList==null ){
//// neo4jSchemaRepository.save(neo4jSchema);
...
...
@@ -2439,6 +2441,7 @@ public class MetadataServiceImpl implements IMetadataService {
}
private
String
getTargetColumnId
(
String
targetTableId
,
String
targetColumn
)
{
String
targetColumnId
=
""
;
List
<
Neo4jColumn
>
targetColumnList
=
neo4jTableRepository
.
getColumnByTableId
(
targetTableId
);
...
...
@@ -2545,7 +2548,7 @@ public class MetadataServiceImpl implements IMetadataService {
}
dependencyRelation
.
setStart
(
startNode
);
dependencyRelation
.
setEnd
(
endNode
);
dependencyRelationMap
.
put
(
sourceId
+
"_"
+
targetId
,
dependencyRelation
);
//
dependencyRelationMap.put(sourceId+"_"+targetId,dependencyRelation);
//从idpath 找出父节点id
String
sourceIdPath
=
relation
.
getString
(
"sourceIdPath"
);
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/SystemServiceImpl.java
View file @
83265731
...
...
@@ -4,17 +4,22 @@ import com.keymobile.metadata.metadataRelation.pojo.MetaData;
import
com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jETLJob
;
import
com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jSchema
;
import
com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jSystem
;
import
com.keymobile.metadata.metadataRelation.pojo.returnBean.MetaModel
;
import
com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnEdge
;
import
com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnNode
;
import
com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnReslult
;
import
com.keymobile.metadata.metadataRelation.respository.metadata.Neo4jSystemRepository
;
import
com.keymobile.metadata.metadataRelation.service.ISystemService
;
import
com.keymobile.metadata.metadataRelation.util.Neo4jTool
;
import
com.keymobile.metadata.metadataRelation.util.SchemaLayerObject
;
import
org.apache.commons.lang.StringUtils
;
import
org.neo4j.driver.v1.Record
;
import
org.neo4j.driver.v1.Session
;
import
org.neo4j.driver.v1.StatementResult
;
import
org.neo4j.driver.v1.Value
;
import
org.neo4j.driver.v1.types.Node
;
import
org.neo4j.driver.v1.types.Path
;
import
org.neo4j.driver.v1.types.Relationship
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -29,6 +34,7 @@ public class SystemServiceImpl implements ISystemService {
@Autowired
private
Session
neo4jSession
;
private
String
SystemModelEqual
=
"System="
;
/**
* @param systemId
...
...
@@ -209,4 +215,112 @@ public class SystemServiceImpl implements ISystemService {
}
return
systemMap
;
}
@Override
public
ReturnReslult
getSystemBySystemId
(
String
systemId
)
{
ReturnReslult
returnReslult
=
new
ReturnReslult
();
String
cypher
=
"match data=(na:softplatform)<-[r]->(nb:softplatform) return data "
;
StatementResult
statementResult
=
neo4jSession
.
run
(
cypher
);
Map
<
Long
,
ReturnNode
>
nodesMap
=
new
HashMap
<>();
Map
<
String
,
MetaModel
>
metaModelMap
=
new
HashMap
<>();
Map
<
String
,
ReturnEdge
>
returnEdgeMap
=
new
HashMap
<>();
int
size
=
300
;
while
(
statementResult
.
hasNext
())
{
Record
record
=
statementResult
.
next
();
List
<
Value
>
values
=
record
.
values
();
for
(
Value
value
:
values
)
{
if
(
value
.
type
().
name
().
equals
(
"PATH"
))
{
Path
p
=
value
.
asPath
();
Iterable
<
Node
>
nodes
=
p
.
nodes
();
getNodesMapFromNeo4jSystem
(
nodesMap
,
metaModelMap
,
nodes
);
Iterable
<
Relationship
>
relationships
=
p
.
relationships
();
getRelationFromneo4jRelationSystem
(
returnEdgeMap
,
nodesMap
,
relationships
);
}
}
}
for
(
Object
object:
nodesMap
.
keySet
()){
ReturnNode
node
=
nodesMap
.
get
(
object
);
returnReslult
.
getNodes
().
add
(
node
);
}
for
(
Object
object:
returnEdgeMap
.
keySet
()){
ReturnEdge
returnEdge
=
returnEdgeMap
.
get
(
object
);
returnReslult
.
getEdges
().
add
(
returnEdge
);
}
returnReslult
.
setMetaModelMap
(
metaModelMap
);
return
returnReslult
;
}
private
void
getRelationFromneo4jRelationSystem
(
Map
<
String
,
ReturnEdge
>
returnEdgeMap
,
Map
<
Long
,
ReturnNode
>
nodesMap
,
Iterable
<
Relationship
>
relationships
)
{
for
(
Relationship
relationship
:
relationships
)
{
Long
startID
=
relationship
.
startNodeId
();
Long
endID
=
relationship
.
endNodeId
();
String
rType
=
relationship
.
type
();
/**
* asMap 相当于 节点的properties属性信息
*/
// relationship.id();
//
String
xieyi
=
""
+
relationship
.
asMap
().
get
(
"协议"
);
String
yewuleibie
=
""
+
relationship
.
asMap
().
get
(
"业务类别"
);
String
shujujiegou
=
""
+
relationship
.
asMap
().
get
(
"数据结构"
);
String
yewushuoming
=
""
+
relationship
.
asMap
().
get
(
"业务说明"
);
String
startMetaId
=
""
;
String
endMetaId
=
""
;
if
(
nodesMap
.
containsKey
(
startID
))
{
startMetaId
=
nodesMap
.
get
(
startID
).
getId
();
}
if
(
nodesMap
.
containsKey
(
endID
))
{
endMetaId
=
nodesMap
.
get
(
endID
).
getId
();
}
if
(!
StringUtils
.
isBlank
(
startMetaId
)
&&
!
StringUtils
.
isBlank
(
endMetaId
)){
ReturnEdge
edge
=
new
ReturnEdge
();
String
edgeId
=
""
+
relationship
.
id
();
edge
.
setEdgeId
(
edgeId
);
edge
.
setFromId
(
startMetaId
);
edge
.
setToId
(
endMetaId
);
edge
.
setType
(
rType
);
edge
.
getAttributeMaps
().
put
(
"协议"
,
xieyi
);
edge
.
getAttributeMaps
().
put
(
"业务类别"
,
yewuleibie
);
edge
.
getAttributeMaps
().
put
(
"数据结构"
,
shujujiegou
);
edge
.
getAttributeMaps
().
put
(
"业务说明"
,
yewushuoming
);
returnEdgeMap
.
put
(
edgeId
,
edge
);
}
}
}
private
void
getNodesMapFromNeo4jSystem
(
Map
<
Long
,
ReturnNode
>
nodesMap
,
Map
<
String
,
MetaModel
>
metaModelMap
,
Iterable
<
Node
>
nodes
)
{
for
(
Node
node
:
nodes
)
{
Map
<
String
,
Object
>
stringObjectMap
=
node
.
asMap
();
Neo4jSystem
neo4jSystem
=
new
Neo4jSystem
();
Neo4jTool
.
transMap2Bean
(
stringObjectMap
,
neo4jSystem
);
// metaDataList.add(data);
if
(
neo4jSystem
.
getMetadataId
()
==
null
){
neo4jSystem
.
setMetadataId
(
SystemModelEqual
+
neo4jSystem
.
getName
());
}
ReturnNode
returnNode
=
new
ReturnNode
();
returnNode
.
setId
(
neo4jSystem
.
getMetadataId
());
returnNode
.
setName
(
neo4jSystem
.
getName
());
returnNode
.
getAttributeMaps
().
put
(
"内外部系统"
,
""
+
stringObjectMap
.
get
(
"内外部系统"
));
returnNode
.
getAttributeMaps
().
put
(
"行"
,
""
+
stringObjectMap
.
get
(
"行"
));
returnNode
.
getAttributeMaps
().
put
(
"列"
,
""
+
stringObjectMap
.
get
(
"列"
));
returnNode
.
setType
(
"Neo4jSystem"
);
nodesMap
.
put
(
node
.
id
(),
returnNode
);
}
}
}
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/TableServiceImpl.java
View file @
83265731
...
...
@@ -90,13 +90,13 @@ public class TableServiceImpl implements ITableService {
List
<
ReturnNode
>
qualityList
=
new
ArrayList
<>();
try
{
//从表获取字段:
List
<
Neo4jColumn
>
neo4jColumnList
=
neo4jTableRepository
.
getColumnByTableId
(
tableId
);
List
<
Map
<
String
,
Object
>>
mapList
=
metadataRepoRemoteService
.
getChild
(
tableId
,
Arrays
.
asList
(
"Catalog,Server,ETLJob,ETLScript"
));
List
<
String
>
reportIdList
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
columnRemote:
mapList
){
String
metaId
=
""
+
columnRemote
.
get
(
"_id"
);
for
(
Neo4jColumn
neo4jColumn
:
neo4jColumnList
){
//
String
metaId
=
neo4jColumn
.
getMetadataId
();
// metaId = "Column=1=55d151b1ba484d0cbe3ccd7e9e2f0bfe";
Map
<
String
,
String
>
dataQualityRepost
=
dataQualityReportRemoteService
.
getDataAssetGraphInfoByMetadataId
(
metaId
);
if
(
dataQualityRepost
==
null
||
dataQualityRepost
.
size
()==
0
){
continue
;
...
...
@@ -113,6 +113,14 @@ public class TableServiceImpl implements ITableService {
returnNode
.
setAttributeMaps
(
dataQualityRepost
);
qualityList
.
add
(
returnNode
);
}
//neo4jTableRepository.getColumnByTableId(tableId);
// for(Neo4jColumn neo4jColumn :neo4jColumnList ){
// //
// String metaId =neo4jColumn.getMetadataId();
//// metaId = "Column=1=55d151b1ba484d0cbe3ccd7e9e2f0bfe";
//
// }
}
catch
(
Exception
e
){
logger
.
info
(
" 获取质量错误: "
+
e
.
getMessage
());
// e.printStackTrace();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment