Commit f926cff8 by qiuchaofei

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

parent 6f39b013
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.repository.Neo4jRepository;
import org.springframework.data.repository.query.Param;
......@@ -10,73 +10,5 @@ import java.util.List;
@Repository
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;
import com.keymobile.metadata.metadataRelation.pojo.BaseNode;
import com.keymobile.metadata.metadataRelation.pojo.BaseRelationship;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.Edge;
import java.util.List;
......
package com.keymobile.metadata.metadataRelation.service.impl;
import com.keymobile.metadata.metadataRelation.pojo.BaseNode;
import com.keymobile.metadata.metadataRelation.pojo.BaseRelationship;
import com.keymobile.metadata.metadataRelation.respository.BaseRelationshipRepository;
import com.keymobile.metadata.metadataRelation.pojo.*;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.Edge;
import com.keymobile.metadata.metadataRelation.respository.*;
import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
@Autowired
private BaseRelationshipRepository refRepository;
BaseRelationshipRepository refRepository;
@Autowired
private CompositionRelationRespository compositionRelationRespository ;
@Autowired
private InputRelationReRepository inputRelationReRepository ;
@Autowired
private OutputRelationRepository outputRelationRepository;
@Autowired
private ExecuteRelationRepository executeRelationRepository;
@Override
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
......@@ -40,36 +78,36 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
@Override
public List<BaseRelationship> findMetadataRelationshipByAllName(String name, String startName, String endName) {
List<BaseRelationship> ships = refRepository.findRelationshipByAllName(name,startName,endName);
if(ships != null && ships.size()>0) {
return ships;
}
// List<BaseRelationship> ships = refRepository.findRelationshipByAllName(name,startName,endName);
// if(ships != null && ships.size()>0) {
// return ships;
// }
return null;
}
@Override
public List<BaseRelationship> findMetadataRelationshipByStartNameAndName(String name, String startName) {
List<BaseRelationship> ships = refRepository.findRelationshipByStartNameAndName(name,startName);
if(ships != null && ships.size()>0) {
return ships;
}
// List<BaseRelationship> ships = refRepository.findRelationshipByStartNameAndName(name,startName);
// if(ships != null && ships.size()>0) {
// return ships;
// }
return null;
}
@Override
public List<BaseRelationship> findMetadataRelationshipByStartName(String startName) {
List<BaseRelationship> ships = refRepository.findRelationshipByStartName(startName);
if(ships != null && ships.size()>0) {
return ships;
}
// List<BaseRelationship> ships = refRepository.findRelationshipByStartName(startName);
// if(ships != null && ships.size()>0) {
// return ships;
// }
return null;
}
@Override
public List<BaseNode> findMetadataByStartName(String startName) {
List<BaseNode> nodes = refRepository.findBaseNodeByStartName(startName);
if(nodes != null && nodes.size()>0) {
return nodes;
}
// List<BaseNode> nodes = refRepository.findBaseNodeByStartName(startName);
// if(nodes != null && nodes.size()>0) {
// return nodes;
// }
return null;
}
}
......@@ -2,8 +2,7 @@ package com.keymobile.metadata.metadataRelation.service.impl;
import com.keymobile.metadata.metadataRelation.pojo.*;
import com.keymobile.metadata.metadataRelation.remote.MetadataRepoRemoteService;
import com.keymobile.metadata.metadataRelation.respository.BaseRelationshipRepository;
import com.keymobile.metadata.metadataRelation.respository.MetadataRepository;
import com.keymobile.metadata.metadataRelation.respository.*;
import com.keymobile.metadata.metadataRelation.service.IBaseRelationshipService;
import com.keymobile.metadata.metadataRelation.service.IMetadataService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -20,8 +19,16 @@ public class MetadataServiceImpl implements IMetadataService {
private MetadataRepository metadataRepository;
@Autowired
private IBaseRelationshipService relationshipService;
@Autowired
private CompositionRelationRespository compositionRelationRespository;
@Autowired
private InputRelationReRepository inputRelationReRepository ;
@Autowired
private BaseRelationshipRepository baseRelationshipRepository;
private OutputRelationRepository outputRelationRepository;
@Autowired
private ExecuteRelationRepository executeRelationRepository;
@Autowired
private MongoDbServiceImpl mongoDbServiceImpl;
......@@ -69,6 +76,9 @@ public class MetadataServiceImpl implements IMetadataService {
metaData.setMetadataId(sourceId);
Map<String, Object> attriuteMap = metadataRepoRemoteService.getMetadata(sourceId);
String name = (String) attriuteMap.get("name");
if(attriuteMap.get("cnName")!=null && !attriuteMap.get("cnName").equals("")){
name = (String) attriuteMap.get("cnName");
}
metaData.setName(name);
metaDataMap.put(sourceId,metaData);
MetaData metadata = metadataRepository.findMetadataByName(name);
......@@ -97,22 +107,25 @@ public class MetadataServiceImpl implements IMetadataService {
// metadataRepository.save(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){
baseRelationshipRepository.addConpositionRelation(parentId,sourceId);
compositionRelationRespository.addConpositionRelation(parentId,sourceId);
}
}
}
if(!metaDataMap.containsKey(targetId)){
//不存在目标
MetaData metaData = new MetaData();
metaData.setMetadataId(targetId);
Map<String, Object> attriuteMap = metadataRepoRemoteService.getMetadata(targetId);
String name = (String) attriuteMap.get("name");
if(attriuteMap.get("cnName")!=null && !attriuteMap.get("cnName").equals("")){
name = (String) attriuteMap.get("cnName");
}
metaData.setName(name);
metaDataMap.put(targetId,metaData);
......@@ -141,10 +154,10 @@ public class MetadataServiceImpl implements IMetadataService {
}
metaDataMap.put(parentId,parentData);
}
List<CompositionRelation> relationship = baseRelationshipRepository.findCompositionRelationship(parentId, targetId);
List<CompositionRelation> relationship = compositionRelationRespository.findCompositionRelationship(parentId, targetId);
if(relationship==null || relationship.size()==0){
baseRelationshipRepository.addConpositionRelation(parentId,targetId);
compositionRelationRespository.addConpositionRelation(parentId,targetId);
}
}
......@@ -152,23 +165,23 @@ public class MetadataServiceImpl implements IMetadataService {
if("input".equalsIgnoreCase(type)){
List<InputRelation> relationship = baseRelationshipRepository.findInputRelationship(sourceId,targetId);
List<InputRelation> relationship = inputRelationReRepository.findInputRelationship(sourceId,targetId);
if(relationship == null || relationship.size()==0){
baseRelationshipRepository.addInputRelation(sourceId,targetId);
inputRelationReRepository.addInputRelation(sourceId,targetId);
}
}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){
baseRelationshipRepository.addOutRelation(sourceId,targetId);
outputRelationRepository.addOutRelation(sourceId,targetId);
}
}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){
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