Commit f926cff8 by qiuchaofei

1.区分关系的类型,2添加接口,返回所有的节点与关系。

parent 6f39b013
package com.keymobile.metadata.metadataRelation.respository; package com.keymobile.metadata.metadataRelation.respository;
import com.keymobile.metadata.metadataRelation.pojo.*; import com.keymobile.metadata.metadataRelation.pojo.BaseRelationship;
import org.springframework.data.neo4j.annotation.Query; import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository; import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
...@@ -10,73 +10,5 @@ import java.util.List; ...@@ -10,73 +10,5 @@ import java.util.List;
@Repository @Repository
public interface BaseRelationshipRepository extends Neo4jRepository<BaseRelationship,Long> { public interface BaseRelationshipRepository extends Neo4jRepository<BaseRelationship,Long> {
List<BaseRelationship> findBaseRelationshipsByName(String name);
@Query("MATCH p=(n:BaseNode)-[r:Ref]->(m:BaseNode) WHERE r.name=$name and n.name=$startName and m.name=$endName RETURN r")
List<BaseRelationship> findRelationshipByAllName(@Param("name") String name, @Param("startName") String startName, @Param("endName") String endName);
@Query("MATCH p=(n:BaseNode)-->() WHERE n.name=$startName RETURN p")
List<BaseRelationship> findRelationshipByStartName(@Param("startName") String startName);
@Query("MATCH p=(n:BaseNode)-[r:Ref]->(m:BaseNode) WHERE r.name=$name and n.name=$startName RETURN r")
List<BaseRelationship> findRelationshipByStartNameAndName(@Param("name") String name, @Param("startName") String startName);
@Query("MATCH p=(n:BaseNode)-->() WHERE n.name=$startName RETURN p")
List<BaseNode> findBaseNodeByStartName(@Param("startName") String startName);
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<CompositionRelation> findCompositionRelationship(@Param("startId") String startId, @Param("endId") String endId);
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<InputRelation> findInputRelationship(@Param("startId") String startId, @Param("endId") String endId);
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<OutputRelation> findOutputRelationship(@Param("startId") String startId, @Param("endId") String endId);
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<ExecuteRelation> findExecuteRelationship(@Param("startId") String startId, @Param("endId") String endId);
/**
* 添加input关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Input]->(target) return p")
List<BaseRelationship> addInputRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
/**
* 添加output关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Output]->(target) return p")
List<BaseRelationship> addOutRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
/**
* 添加excute关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Execute]->(target) return p")
List<BaseRelationship> addExecuteRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
/**
* 添加组合关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Composition]->(target) return p")
List<BaseRelationship> addConpositionRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
} }
package com.keymobile.metadata.metadataRelation.respository;
import com.keymobile.metadata.metadataRelation.pojo.CompositionRelation;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CompositionRelationRespository extends Neo4jRepository<CompositionRelation,Long> {
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<CompositionRelation> findCompositionRelationship(@Param("startId") String startId, @Param("endId") String endId);
/**
* 添加组合关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Composition]->(target) return p")
List<CompositionRelation> addConpositionRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
}
package com.keymobile.metadata.metadataRelation.respository;
import com.keymobile.metadata.metadataRelation.pojo.ExecuteRelation;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ExecuteRelationRepository extends Neo4jRepository<ExecuteRelation,Long> {
/**
* 添加excute关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Execute]->(target) return p")
List<ExecuteRelation> addExecuteRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<ExecuteRelation> findExecuteRelationship(@Param("startId") String startId, @Param("endId") String endId);
}
package com.keymobile.metadata.metadataRelation.respository;
import com.keymobile.metadata.metadataRelation.pojo.InputRelation;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface InputRelationReRepository extends Neo4jRepository<InputRelation,Long> {
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<InputRelation> findInputRelationship(@Param("startId") String startId, @Param("endId") String endId);
/**
* 添加input关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Input]->(target) return p")
List<InputRelation> addInputRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
}
package com.keymobile.metadata.metadataRelation.respository;
import com.keymobile.metadata.metadataRelation.pojo.OutputRelation;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface OutputRelationRepository extends Neo4jRepository<OutputRelation,Long> {
@Query("MATCH (n:MetaData{metadataId: $startId}),(n1:MetaData{metadataId: $endId}),p=(n)-[]-(n1) return p")
List<OutputRelation> findOutputRelationship(@Param("startId") String startId, @Param("endId") String endId);
/**
* 添加output关系
* @param sourceId
* @param targetId
* @return
*/
@Query("match (source:BaseNode),(target:BaseNode) where source.metadataId=$sourceId and target.metadataId=$targetId create p=(source)-[r:Output]->(target) return p")
List<OutputRelation> addOutRelation(@Param("sourceId") String sourceId, @Param("targetId") String targetId);
}
...@@ -3,6 +3,7 @@ package com.keymobile.metadata.metadataRelation.service; ...@@ -3,6 +3,7 @@ package com.keymobile.metadata.metadataRelation.service;
import com.keymobile.metadata.metadataRelation.pojo.BaseNode; import com.keymobile.metadata.metadataRelation.pojo.BaseNode;
import com.keymobile.metadata.metadataRelation.pojo.BaseRelationship; import com.keymobile.metadata.metadataRelation.pojo.BaseRelationship;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.Edge;
import java.util.List; import java.util.List;
......
package com.keymobile.metadata.metadataRelation.service.impl; package com.keymobile.metadata.metadataRelation.service.impl;
import com.keymobile.metadata.metadataRelation.pojo.BaseNode; import com.keymobile.metadata.metadataRelation.pojo.*;
import com.keymobile.metadata.metadataRelation.pojo.BaseRelationship; import com.keymobile.metadata.metadataRelation.pojo.returnBean.Edge;
import com.keymobile.metadata.metadataRelation.respository.BaseRelationshipRepository; import com.keymobile.metadata.metadataRelation.respository.*;
import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService; import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
public class BaseRelationshipServiceImpl implements IBaseRelationshipService { public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
@Autowired @Autowired
private BaseRelationshipRepository refRepository; BaseRelationshipRepository refRepository;
@Autowired
private CompositionRelationRespository compositionRelationRespository ;
@Autowired
private InputRelationReRepository inputRelationReRepository ;
@Autowired
private OutputRelationRepository outputRelationRepository;
@Autowired
private ExecuteRelationRepository executeRelationRepository;
@Override @Override
public List<BaseRelationship> findAllRelation() { public List<BaseRelationship> findAllRelation() {
return (List<BaseRelationship>)refRepository.findAll(); List<CompositionRelation> compositionRelationList = (List<CompositionRelation>)compositionRelationRespository.findAll();
List<InputRelation> inputRelationList = (List<InputRelation>)inputRelationReRepository.findAll();
List<OutputRelation> outputRelationList = (List<OutputRelation>)outputRelationRepository.findAll();
List<ExecuteRelation> executeRelationList = (List<ExecuteRelation>)executeRelationRepository.findAll();
List<BaseRelationship> baseRelationshipList = new ArrayList<>();
for(CompositionRelation compositionRelation:compositionRelationList ){
compositionRelation.setName("Composition");
baseRelationshipList.add(compositionRelation);
}
for(InputRelation inputRelation:inputRelationList ){
inputRelation.setName("Input");
baseRelationshipList.add(inputRelation);
}
for(OutputRelation outputRelation:outputRelationList ){
outputRelation.setName("Output");
baseRelationshipList.add(outputRelation);
}
for(ExecuteRelation executeRelation:executeRelationList ){
executeRelation.setName("Execute");
baseRelationshipList.add(executeRelation);
}
return baseRelationshipList;
} }
@Override @Override
...@@ -40,36 +78,36 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService { ...@@ -40,36 +78,36 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
@Override @Override
public List<BaseRelationship> findMetadataRelationshipByAllName(String name, String startName, String endName) { public List<BaseRelationship> findMetadataRelationshipByAllName(String name, String startName, String endName) {
List<BaseRelationship> ships = refRepository.findRelationshipByAllName(name,startName,endName); // List<BaseRelationship> ships = refRepository.findRelationshipByAllName(name,startName,endName);
if(ships != null && ships.size()>0) { // if(ships != null && ships.size()>0) {
return ships; // return ships;
} // }
return null; return null;
} }
@Override @Override
public List<BaseRelationship> findMetadataRelationshipByStartNameAndName(String name, String startName) { public List<BaseRelationship> findMetadataRelationshipByStartNameAndName(String name, String startName) {
List<BaseRelationship> ships = refRepository.findRelationshipByStartNameAndName(name,startName); // List<BaseRelationship> ships = refRepository.findRelationshipByStartNameAndName(name,startName);
if(ships != null && ships.size()>0) { // if(ships != null && ships.size()>0) {
return ships; // return ships;
} // }
return null; return null;
} }
@Override @Override
public List<BaseRelationship> findMetadataRelationshipByStartName(String startName) { public List<BaseRelationship> findMetadataRelationshipByStartName(String startName) {
List<BaseRelationship> ships = refRepository.findRelationshipByStartName(startName); // List<BaseRelationship> ships = refRepository.findRelationshipByStartName(startName);
if(ships != null && ships.size()>0) { // if(ships != null && ships.size()>0) {
return ships; // return ships;
} // }
return null; return null;
} }
@Override @Override
public List<BaseNode> findMetadataByStartName(String startName) { public List<BaseNode> findMetadataByStartName(String startName) {
List<BaseNode> nodes = refRepository.findBaseNodeByStartName(startName); // List<BaseNode> nodes = refRepository.findBaseNodeByStartName(startName);
if(nodes != null && nodes.size()>0) { // if(nodes != null && nodes.size()>0) {
return nodes; // return nodes;
} // }
return null; return null;
} }
} }
...@@ -2,8 +2,7 @@ package com.keymobile.metadata.metadataRelation.service.impl; ...@@ -2,8 +2,7 @@ package com.keymobile.metadata.metadataRelation.service.impl;
import com.keymobile.metadata.metadataRelation.pojo.*; import com.keymobile.metadata.metadataRelation.pojo.*;
import com.keymobile.metadata.metadataRelation.remote.MetadataRepoRemoteService; import com.keymobile.metadata.metadataRelation.remote.MetadataRepoRemoteService;
import com.keymobile.metadata.metadataRelation.respository.BaseRelationshipRepository; import com.keymobile.metadata.metadataRelation.respository.*;
import com.keymobile.metadata.metadataRelation.respository.MetadataRepository;
import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService; import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService;
import com.keymobile.metadata.metadataRelation.service.IMetadataService; import com.keymobile.metadata.metadataRelation.service.IMetadataService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -20,8 +19,16 @@ public class MetadataServiceImpl implements IMetadataService { ...@@ -20,8 +19,16 @@ public class MetadataServiceImpl implements IMetadataService {
private MetadataRepository metadataRepository; private MetadataRepository metadataRepository;
@Autowired @Autowired
private IBaseRelationshipService relationshipService; private IBaseRelationshipService relationshipService;
@Autowired
private CompositionRelationRespository compositionRelationRespository;
@Autowired
private InputRelationReRepository inputRelationReRepository ;
@Autowired @Autowired
private BaseRelationshipRepository baseRelationshipRepository; private OutputRelationRepository outputRelationRepository;
@Autowired
private ExecuteRelationRepository executeRelationRepository;
@Autowired @Autowired
private MongoDbServiceImpl mongoDbServiceImpl; private MongoDbServiceImpl mongoDbServiceImpl;
...@@ -69,6 +76,9 @@ public class MetadataServiceImpl implements IMetadataService { ...@@ -69,6 +76,9 @@ public class MetadataServiceImpl implements IMetadataService {
metaData.setMetadataId(sourceId); metaData.setMetadataId(sourceId);
Map<String, Object> attriuteMap = metadataRepoRemoteService.getMetadata(sourceId); Map<String, Object> attriuteMap = metadataRepoRemoteService.getMetadata(sourceId);
String name = (String) attriuteMap.get("name"); String name = (String) attriuteMap.get("name");
if(attriuteMap.get("cnName")!=null && !attriuteMap.get("cnName").equals("")){
name = (String) attriuteMap.get("cnName");
}
metaData.setName(name); metaData.setName(name);
metaDataMap.put(sourceId,metaData); metaDataMap.put(sourceId,metaData);
MetaData metadata = metadataRepository.findMetadataByName(name); MetaData metadata = metadataRepository.findMetadataByName(name);
...@@ -97,22 +107,25 @@ public class MetadataServiceImpl implements IMetadataService { ...@@ -97,22 +107,25 @@ public class MetadataServiceImpl implements IMetadataService {
// metadataRepository.save(parentData); // metadataRepository.save(parentData);
metaDataMap.put(parentId,parentData); metaDataMap.put(parentId,parentData);
} }
List<CompositionRelation> relationship = baseRelationshipRepository.findCompositionRelationship(parentId, sourceId); List<CompositionRelation> relationship = compositionRelationRespository.findCompositionRelationship(parentId, sourceId);
if(relationship==null || relationship.size()==0){ if(relationship==null || relationship.size()==0){
baseRelationshipRepository.addConpositionRelation(parentId,sourceId); compositionRelationRespository.addConpositionRelation(parentId,sourceId);
} }
} }
} }
if(!metaDataMap.containsKey(targetId)){ if(!metaDataMap.containsKey(targetId)){
//不存在目标 //不存在目标
MetaData metaData = new MetaData(); MetaData metaData = new MetaData();
metaData.setMetadataId(targetId); metaData.setMetadataId(targetId);
Map<String, Object> attriuteMap = metadataRepoRemoteService.getMetadata(targetId); Map<String, Object> attriuteMap = metadataRepoRemoteService.getMetadata(targetId);
String name = (String) attriuteMap.get("name"); String name = (String) attriuteMap.get("name");
if(attriuteMap.get("cnName")!=null && !attriuteMap.get("cnName").equals("")){
name = (String) attriuteMap.get("cnName");
}
metaData.setName(name); metaData.setName(name);
metaDataMap.put(targetId,metaData); metaDataMap.put(targetId,metaData);
...@@ -141,10 +154,10 @@ public class MetadataServiceImpl implements IMetadataService { ...@@ -141,10 +154,10 @@ public class MetadataServiceImpl implements IMetadataService {
} }
metaDataMap.put(parentId,parentData); metaDataMap.put(parentId,parentData);
} }
List<CompositionRelation> relationship = baseRelationshipRepository.findCompositionRelationship(parentId, targetId); List<CompositionRelation> relationship = compositionRelationRespository.findCompositionRelationship(parentId, targetId);
if(relationship==null || relationship.size()==0){ if(relationship==null || relationship.size()==0){
baseRelationshipRepository.addConpositionRelation(parentId,targetId); compositionRelationRespository.addConpositionRelation(parentId,targetId);
} }
} }
...@@ -152,23 +165,23 @@ public class MetadataServiceImpl implements IMetadataService { ...@@ -152,23 +165,23 @@ public class MetadataServiceImpl implements IMetadataService {
if("input".equalsIgnoreCase(type)){ if("input".equalsIgnoreCase(type)){
List<InputRelation> relationship = baseRelationshipRepository.findInputRelationship(sourceId,targetId); List<InputRelation> relationship = inputRelationReRepository.findInputRelationship(sourceId,targetId);
if(relationship == null || relationship.size()==0){ if(relationship == null || relationship.size()==0){
baseRelationshipRepository.addInputRelation(sourceId,targetId); inputRelationReRepository.addInputRelation(sourceId,targetId);
} }
}else if("output".equalsIgnoreCase(type)){ }else if("output".equalsIgnoreCase(type)){
List<OutputRelation> relationship = baseRelationshipRepository.findOutputRelationship(sourceId,targetId); List<OutputRelation> relationship = outputRelationRepository.findOutputRelationship(sourceId,targetId);
if(relationship == null || relationship.size()==0){ if(relationship == null || relationship.size()==0){
baseRelationshipRepository.addOutRelation(sourceId,targetId); outputRelationRepository.addOutRelation(sourceId,targetId);
} }
}else if("execute".equalsIgnoreCase(type)) { }else if("execute".equalsIgnoreCase(type)) {
List<ExecuteRelation> relationship = baseRelationshipRepository.findExecuteRelationship(sourceId,targetId); List<ExecuteRelation> relationship = executeRelationRepository.findExecuteRelationship(sourceId,targetId);
if(relationship == null || relationship.size()==0){ if(relationship == null || relationship.size()==0){
baseRelationshipRepository.addExecuteRelation(sourceId,targetId); executeRelationRepository.addExecuteRelation(sourceId,targetId);
} }
} }
......
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