Commit 5fb060d1 by qiuchaofei

1.修复代码审核发现的问题。

parent 5079dc66
...@@ -32,7 +32,6 @@ import org.springframework.security.core.userdetails.UserDetails; ...@@ -32,7 +32,6 @@ import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Encoder;
@RestController @RestController
@Api(value = "把metadata写入neo4j数据库", tags = "metadata to neo4j") @Api(value = "把metadata写入neo4j数据库", tags = "metadata to neo4j")
...@@ -66,6 +65,8 @@ public class MetaDataController { ...@@ -66,6 +65,8 @@ public class MetaDataController {
@Autowired @Autowired
private IETLJobService etlJobService ; private IETLJobService etlJobService ;
String metadataName = "MetaData";
/** /**
* 获取所有的节点 * 获取所有的节点
*/ */
...@@ -163,8 +164,7 @@ public class MetaDataController { ...@@ -163,8 +164,7 @@ public class MetaDataController {
ReturnReslult returnReslult = new ReturnReslult(); ReturnReslult returnReslult = new ReturnReslult();
int sizeInt = Integer.valueOf(size); int sizeInt = Integer.valueOf(size);
if (StringUtils.isBlank(modelName0)) {
if (modelName0 == null || modelName0.equals("")) {
modelName0 = "Table"; modelName0 = "Table";
} }
if(modelName0.contains(",")){ if(modelName0.contains(",")){
...@@ -181,7 +181,6 @@ public class MetaDataController { ...@@ -181,7 +181,6 @@ public class MetaDataController {
}else if( !modelName0.toLowerCase().equals("all")){ }else if( !modelName0.toLowerCase().equals("all")){
returnReslult = metadataService.findResultByModelName(modelName0,sizeInt); returnReslult = metadataService.findResultByModelName(modelName0,sizeInt);
}else{ }else{
List<MetaData> metaDataList = metadataService.finAllMetaData();
Map<String, ReturnNode> nodeMap = new HashMap<>(); Map<String, ReturnNode> nodeMap = new HashMap<>();
Map<String, String> child2Parent = new HashMap<>(); Map<String, String> child2Parent = new HashMap<>();
...@@ -190,11 +189,30 @@ public class MetaDataController { ...@@ -190,11 +189,30 @@ public class MetaDataController {
Map<String, List<String>> target2Source = new HashMap<>(); Map<String, List<String>> target2Source = new HashMap<>();
Map<String, MetaModel> metaModelMap = new HashMap<>(); Map<String, MetaModel> metaModelMap = new HashMap<>();
getModelMapAndNodeMapFromNeo4j(returnReslult, sizeInt, nodeMap, child2Parent, metaModelMap);
logger.info("节点的数量:" + returnReslult.getNodes().size());
List<BaseRelationship> baseRelationshipList = baseRelationshipService.findAllRelation();
/**
* 分成两部分,一个是组合关系,一个是依赖关系。
*/
getRelationFromBaseRelationShip(child2Parent, parent2Children, source2Target, target2Source, baseRelationshipList);
//专门处理流入 流出的关系
getInputAndOutput(returnReslult, nodeMap, child2Parent, baseRelationshipList);
logger.info("关系的数量:" + returnReslult.getEdges().size());
returnReslult.setMetaModelMap(metaModelMap);
}
return returnReslult;
}
private void getModelMapAndNodeMapFromNeo4j(ReturnReslult returnReslult, int sizeInt, Map<String, ReturnNode> nodeMap, Map<String, String> child2Parent, Map<String, MetaModel> metaModelMap) {
List<MetaData> metaDataList = metadataService.finAllMetaData();
for (MetaData metaData : metaDataList) { for (MetaData metaData : metaDataList) {
ReturnNode node = new ReturnNode(); ReturnNode node = new ReturnNode();
String[] strings = metaData.getMetadataId().split("="); String[] strings = metaData.getMetadataId().split("=");
String modelName = strings[0];
//如果有system,则虚拟创建一个节点,用来做顶层节点 //如果有system,则虚拟创建一个节点,用来做顶层节点
if (metaData.getSystem() != null && !metaData.getSystem().equals("")) { if (metaData.getSystem() != null && !metaData.getSystem().equals("")) {
...@@ -217,7 +235,7 @@ public class MetaDataController { ...@@ -217,7 +235,7 @@ public class MetaDataController {
metaModelMap.put(newModelName, model); metaModelMap.put(newModelName, model);
} }
systemNode.setType("MetaData"); systemNode.setType(metadataName);
returnReslult.getNodes().add(systemNode); returnReslult.getNodes().add(systemNode);
nodeMap.put("" + systemNode.getId(), systemNode); nodeMap.put("" + systemNode.getId(), systemNode);
if(nodeMap.size() >= sizeInt){ if(nodeMap.size() >= sizeInt){
...@@ -226,7 +244,7 @@ public class MetaDataController { ...@@ -226,7 +244,7 @@ public class MetaDataController {
child2Parent.put("" + metaData.getId(), systemNode.getId()); child2Parent.put("" + metaData.getId(), systemNode.getId());
} }
String modelName = strings[0];
node.setId(metaData.getMetadataId()); node.setId(metaData.getMetadataId());
node.setIcon(modelName); node.setIcon(modelName);
if (!metaModelMap.containsKey(modelName)) { if (!metaModelMap.containsKey(modelName)) {
...@@ -239,22 +257,17 @@ public class MetaDataController { ...@@ -239,22 +257,17 @@ public class MetaDataController {
metaModelMap.put(modelName, model); metaModelMap.put(modelName, model);
} }
node.setName(metaData.getName()); node.setName(metaData.getName());
node.setType("MetaData"); node.setType(metadataName);
returnReslult.getNodes().add(node); returnReslult.getNodes().add(node);
nodeMap.put("" + metaData.getId(), node); nodeMap.put("" + metaData.getId(), node);
if(nodeMap.size() >= sizeInt){ if(nodeMap.size() >= sizeInt){
break; break;
} }
} }
logger.info("节点的数量:" + returnReslult.getNodes().size()); }
List<BaseRelationship> baseRelationshipList = baseRelationshipService.findAllRelation();
/**
* 分成两部分,一个是组合关系,一个是依赖关系。
*
*/
private void getRelationFromBaseRelationShip(Map<String, String> child2Parent, Map<String, List<String>> parent2Children, Map<String, List<String>> source2Target, Map<String, List<String>> target2Source, List<BaseRelationship> baseRelationshipList) {
for (BaseRelationship baseRelationship : baseRelationshipList) { for (BaseRelationship baseRelationship : baseRelationshipList) {
Long startId = baseRelationship.getStart().getId(); Long startId = baseRelationship.getStart().getId();
Long endId = baseRelationship.getEnd().getId(); Long endId = baseRelationship.getEnd().getId();
...@@ -277,9 +290,15 @@ public class MetaDataController { ...@@ -277,9 +290,15 @@ public class MetaDataController {
target2Source.put("" + endId, sources); target2Source.put("" + endId, sources);
} }
} else if (baseRelationship.getName().equals("流出")) { // } else if (baseRelationship.getName().equals("流出")) {
} else if (baseRelationship.getName().equals("组合")) { } else if (baseRelationship.getName().equals("组合")) {
getChildren2Parent(child2Parent, parent2Children, startId, endId);
}
}
}
private void getChildren2Parent(Map<String, String> child2Parent, Map<String, List<String>> parent2Children, Long startId, Long endId) {
child2Parent.put("" + endId, "" + startId); child2Parent.put("" + endId, "" + startId);
if (parent2Children.get("" + startId) != null) { if (parent2Children.get("" + startId) != null) {
parent2Children.get("" + startId).add("" + endId); parent2Children.get("" + startId).add("" + endId);
...@@ -290,9 +309,8 @@ public class MetaDataController { ...@@ -290,9 +309,8 @@ public class MetaDataController {
parent2Children.put("" + startId, children); parent2Children.put("" + startId, children);
} }
} }
}
//专门处理流入 流出的关系 private void getInputAndOutput(ReturnReslult returnReslult, Map<String, ReturnNode> nodeMap, Map<String, String> child2Parent, List<BaseRelationship> baseRelationshipList) {
for (BaseRelationship baseRelationship : baseRelationshipList) { for (BaseRelationship baseRelationship : baseRelationshipList) {
String startId = baseRelationship.getStart().getId() + ""; String startId = baseRelationship.getStart().getId() + "";
...@@ -333,12 +351,6 @@ public class MetaDataController { ...@@ -333,12 +351,6 @@ public class MetaDataController {
} }
} }
logger.info("关系的数量:" + returnReslult.getEdges().size());
returnReslult.setMetaModelMap(metaModelMap);
}
return returnReslult;
} }
...@@ -402,7 +414,7 @@ public class MetaDataController { ...@@ -402,7 +414,7 @@ public class MetaDataController {
} }
node.setName(metaData.getName()); node.setName(metaData.getName());
node.setType("MetaData"); node.setType(metadataName);
result.getNodes().add(node); result.getNodes().add(node);
} }
...@@ -483,20 +495,21 @@ public class MetaDataController { ...@@ -483,20 +495,21 @@ public class MetaDataController {
// 图片转化成base64字符串 // 图片转化成base64字符串
public static String GetImageStr(String imgFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 public static String GetImageStr(String imgFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
logger.info("存放图标的路径:" + imgFile); logger.info("存放图标的路径:" + imgFile);
InputStream in = null;
byte[] data = null; byte[] data = null;
// 读取图片字节数组 // 读取图片字节数组
try { try ( InputStream in = new FileInputStream(imgFile);
in = new FileInputStream(imgFile); ){
data = new byte[in.available()]; data = new byte[in.available()];
in.read(data); in.read(data);
in.close(); in.close();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
Base64.Encoder base64Encoder = Base64.getEncoder();
return base64Encoder.encodeToString(data);
// 对字节数组Base64编码 // 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder(); // BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串 // return encoder.encode(data);// 返回Base64编码过的字节数组字符串
} }
/** /**
...@@ -548,7 +561,7 @@ public class MetaDataController { ...@@ -548,7 +561,7 @@ public class MetaDataController {
@RequestMapping(path = "/syschroRelationFromMongo", method = RequestMethod.POST) @RequestMapping(path = "/syschroRelationFromMongo", method = RequestMethod.POST)
public String synchroRelationFromMongo(String catalogName) { public String synchroRelationFromMongo(String catalogName) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LogManager.logInfo(LogConstants.CTX_Relation, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date())+"同步"+catalogName+"的元数据。" ); LogManager.logInfo(LogConstants.CTX_RELATION, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date())+"同步环境:"+catalogName+" 的元数据。" );
logger.info("开始异步迁移元数据:从mongo到neo4j"); logger.info("开始异步迁移元数据:从mongo到neo4j");
String flag = "success"; String flag = "success";
asyncDataFromMongoToNeo4j.asyncDataFromMongoToNeo4j(catalogName); asyncDataFromMongoToNeo4j.asyncDataFromMongoToNeo4j(catalogName);
...@@ -561,7 +574,7 @@ public class MetaDataController { ...@@ -561,7 +574,7 @@ public class MetaDataController {
@RequestMapping(path = "/synchroRelationByJobId", method = RequestMethod.POST) @RequestMapping(path = "/synchroRelationByJobId", method = RequestMethod.POST)
public String synchroRelationByJobId(String catalogName,String jobId) { public String synchroRelationByJobId(String catalogName,String jobId) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LogManager.logInfo(LogConstants.CTX_Relation, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date())+"同步"+catalogName+" JobId:"+jobId+"的元数据。" ); LogManager.logInfo(LogConstants.CTX_RELATION, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date())+"同步环境:"+catalogName+" JobId:"+jobId+" 的元数据。" );
logger.info("开始异步迁移元数据:从mongo到neo4j"); logger.info("开始异步迁移元数据:从mongo到neo4j");
String flag = "success"; String flag = "success";
......
package com.keymobile.metadata.metadataRelation.controller; package com.keymobile.metadata.metadataRelation.controller;
import com.keymobile.metadata.metadataRelation.config.FeignClientConfig;
import com.keymobile.metadata.metadataRelation.logging.LogConstants; import com.keymobile.metadata.metadataRelation.logging.LogConstants;
import com.keymobile.metadata.metadataRelation.logging.LogManager; import com.keymobile.metadata.metadataRelation.logging.LogManager;
import com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jSchema;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnNode; import com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnNode;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnReslult; import com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnReslult;
import com.keymobile.metadata.metadataRelation.remote.DataAssertRemoteService;
import com.keymobile.metadata.metadataRelation.remote.DataStandardRemoteService; import com.keymobile.metadata.metadataRelation.remote.DataStandardRemoteService;
import com.keymobile.metadata.metadataRelation.remote.TagRemoteService; import com.keymobile.metadata.metadataRelation.remote.TagRemoteService;
import com.keymobile.metadata.metadataRelation.service.*; import com.keymobile.metadata.metadataRelation.service.*;
import com.keymobile.metadata.metadataRelation.service.impl.SystemServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.sf.json.JSONObject;
import org.apache.catalina.security.SecurityConfig;
import org.apache.commons.lang3.time.DateUtils;
import org.hibernate.loader.custom.Return;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -26,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -26,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.sql.SQLOutput;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
...@@ -66,6 +57,9 @@ public class RelationalGraphController { ...@@ -66,6 +57,9 @@ public class RelationalGraphController {
@Autowired @Autowired
private TagRemoteService tagRemoteService; private TagRemoteService tagRemoteService;
private String etlJobModelName = "ETLJob=";
private String tableModelName = "Table=";
private String etlScriptModelName = "ETLScript=";
//测试标准的接口 //测试标准的接口
@ApiOperation(tags = "", value = "测试标准的接口") @ApiOperation(tags = "", value = "测试标准的接口")
@RequestMapping(path = "/testDataAssertRemoteService", method = RequestMethod.GET) @RequestMapping(path = "/testDataAssertRemoteService", method = RequestMethod.GET)
...@@ -197,11 +191,11 @@ public class RelationalGraphController { ...@@ -197,11 +191,11 @@ public class RelationalGraphController {
@RequestMapping(path = "/getAttributeByMetadataId", method = RequestMethod.GET) @RequestMapping(path = "/getAttributeByMetadataId", method = RequestMethod.GET)
public Map<String,String> getAttributeByMetadataId(String metadataId){ public Map<String,String> getAttributeByMetadataId(String metadataId){
Map<String,String> attributeMap = new HashMap<>(); Map<String,String> attributeMap = new HashMap<>();
if(metadataId.startsWith("Table=")){ if(metadataId.startsWith(tableModelName)){
attributeMap = tableService.getAttributeByTableId(metadataId); attributeMap = tableService.getAttributeByTableId(metadataId);
} else if(metadataId.startsWith("ETLJob=")){ } else if(metadataId.startsWith(etlJobModelName)){
attributeMap = etlJobService.getAttributeByETLJobId(metadataId); attributeMap = etlJobService.getAttributeByETLJobId(metadataId);
}else if(metadataId.startsWith("ETLScript=")) { }else if(metadataId.startsWith(etlScriptModelName)) {
attributeMap = etlScriptService.getAttributeByETLScriptId(metadataId); attributeMap = etlScriptService.getAttributeByETLScriptId(metadataId);
}else { }else {
attributeMap = metadataService.getMetaDataByMetadataId(metadataId); attributeMap = metadataService.getMetaDataByMetadataId(metadataId);
...@@ -218,9 +212,9 @@ public class RelationalGraphController { ...@@ -218,9 +212,9 @@ public class RelationalGraphController {
public Map<String, List<ReturnNode>> getChildren(String metadataId,String size) { public Map<String, List<ReturnNode>> getChildren(String metadataId,String size) {
logger.info("传入的元数据Id是:"+metadataId); logger.info("传入的元数据Id是:"+metadataId);
Map<String ,List<ReturnNode>> returnNodeMap = new HashMap<>(); Map<String ,List<ReturnNode>> returnNodeMap = new HashMap<>();
if(metadataId.startsWith("Table=")){ if(metadataId.startsWith(tableModelName)){
returnNodeMap = tableService.getchildrenByTableId(metadataId); returnNodeMap = tableService.getchildrenByTableId(metadataId);
}else if(metadataId.startsWith("ETLJob=")) { }else if(metadataId.startsWith(etlJobModelName)) {
returnNodeMap = etlJobService.getchildrenByEtlJobId(metadataId); returnNodeMap = etlJobService.getchildrenByEtlJobId(metadataId);
} }
return returnNodeMap; return returnNodeMap;
...@@ -248,15 +242,15 @@ public class RelationalGraphController { ...@@ -248,15 +242,15 @@ public class RelationalGraphController {
@RequestMapping(path = "/getRelationTablesTableId", method = RequestMethod.GET) @RequestMapping(path = "/getRelationTablesTableId", method = RequestMethod.GET)
public Map<String,List<ReturnNode>> getRelationTablesTableId(String tableId){ public Map<String,List<ReturnNode>> getRelationTablesTableId(String tableId){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LogManager.logInfo(LogConstants.CTX_Relation, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date()) + " 查看了 "+tableId+"的全链分析" ); LogManager.logInfo(LogConstants.CTX_RELATION, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date()) + " 查看了 "+tableId+"的全链分析" );
Map<String, List<ReturnNode>> relationTables = new HashMap<>(); Map<String, List<ReturnNode>> relationTables = new HashMap<>();
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
if(tableId.startsWith("Table=")){ if(tableId.startsWith(tableModelName)){
relationTables = tableService.getSourceAndTargetTableByTableId (tableId); relationTables = tableService.getSourceAndTargetTableByTableId (tableId);
}else if(tableId.startsWith("ETLJob=")){ }else if(tableId.startsWith(etlJobModelName)){
relationTables = etlJobService.getSourceAndTargetObjectByMedataDataId (tableId); relationTables = etlJobService.getSourceAndTargetObjectByMedataDataId (tableId);
}else if(tableId.startsWith("ETLScript=")){ }else if(tableId.startsWith(etlScriptModelName)){
relationTables = etlScriptService.getSourceAndTargetObjectByMedataDataId (tableId); relationTables = etlScriptService.getSourceAndTargetObjectByMedataDataId (tableId);
}else if(tableId.startsWith("File=")){ }else if(tableId.startsWith("File=")){
relationTables = fileService.getSourceAndTargetObjectByMedataDataId (tableId); relationTables = fileService.getSourceAndTargetObjectByMedataDataId (tableId);
...@@ -287,7 +281,7 @@ public class RelationalGraphController { ...@@ -287,7 +281,7 @@ public class RelationalGraphController {
@RequestMapping(path = "/getRelationObjectByTableId", method = RequestMethod.GET) @RequestMapping(path = "/getRelationObjectByTableId", method = RequestMethod.GET)
public Map<String,List<ReturnNode>> getRelationObjectByTableId(String tableId){ public Map<String,List<ReturnNode>> getRelationObjectByTableId(String tableId){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LogManager.logInfo(LogConstants.CTX_Relation, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date()) + " 查看了 "+tableId+"的关系分析" ); LogManager.logInfo(LogConstants.CTX_RELATION, "用户 "+ getUserName() + " 在 "+ sdf.format(new Date()) + " 查看了 "+tableId+"的关系分析" );
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
Map<String, List<ReturnNode>> relationObjects = tableService.getRelationObjectByTableId (tableId); Map<String, List<ReturnNode>> relationObjects = tableService.getRelationObjectByTableId (tableId);
...@@ -346,14 +340,14 @@ public class RelationalGraphController { ...@@ -346,14 +340,14 @@ public class RelationalGraphController {
@ApiOperation(tags = "", value = "传入环境id,系统名,schema名,表名,获取表id") @ApiOperation(tags = "", value = "传入环境id,系统名,schema名,表名,获取表id")
@RequestMapping(path = "/getTableIdByEnvironmentSystemTableName", method = RequestMethod.GET) @RequestMapping(path = "/getTableIdByEnvironmentSystemTableName", method = RequestMethod.GET)
public String getTableIdByEnvironmentSystemTableName(String environment,String system,String tableName){ public String getTableIdByEnvironmentSystemTableName(String environment,String system,String tableName){
logger.info("获取表id。"); logger.info("获取环境id:"+environment +" ;系统:" + system+ " ;table:"+tableName);
return tableService.getTableId(environment,system,tableName); return tableService.getTableId(environment,system,tableName);
} }
@ApiOperation(tags = "", value = "传入质量相关的字段id,返回与该字段id有关系的字段,表,数据库,系统") @ApiOperation(tags = "", value = "传入质量相关的字段id,返回与该字段id有关系的字段,表,数据库,系统")
@RequestMapping(path = "/getQualityDataRelations", method = RequestMethod.GET) @RequestMapping(path = "/getQualityDataRelations", method = RequestMethod.GET)
public ReturnReslult getQualityDataRelations(String columnId){ public ReturnReslult getQualityDataRelations(String columnId){
logger.info("获取表id。"+columnId); logger.info("传入的字段id:"+columnId);
return tableService.getQualityData(columnId); return tableService.getQualityData(columnId);
} }
......
package com.keymobile.metadata.metadataRelation.logging; package com.keymobile.metadata.metadataRelation.logging;
public interface LogConstants { public final class LogConstants {
public static final String CTX_Relation = "metadata.relation"; public static final String CTX_RELATION = "metadata.relation";
// public static final String CTX_HARVESTERTASK = "harvester.HARVESTERTASK";
// public static final String CTX_TASKSCHEDULE = "harvester.TASKSCHEDULE";
// public static final String CTX_TASKEXTRACTDETAIL = "harvester.TASKEXTRACTDETAIL";
} }
...@@ -14,6 +14,8 @@ import org.springframework.stereotype.Service; ...@@ -14,6 +14,8 @@ import org.springframework.stereotype.Service;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@Service @Service
@EnableAsync @EnableAsync
...@@ -26,6 +28,8 @@ public class AsyncDataFromMongoToNeo4j { ...@@ -26,6 +28,8 @@ public class AsyncDataFromMongoToNeo4j {
private IMetadataRelationService metadataRelationService; private IMetadataRelationService metadataRelationService;
@Autowired @Autowired
private AsyncRelation asyncRelation ;
@Autowired
private JdbcTemplate jdbcTemplate; private JdbcTemplate jdbcTemplate;
//定时同步数据, //定时同步数据,
...@@ -44,9 +48,9 @@ public class AsyncDataFromMongoToNeo4j { ...@@ -44,9 +48,9 @@ public class AsyncDataFromMongoToNeo4j {
return user; return user;
} }
}); });
for(MongoData scope:scopeList){ // for(MongoData scope:scopeList){
// asyncDataFromMongoToNeo4j(scope.get_id()); // asyncDataFromMongoToNeo4j(scope.get_id());
} // }
} }
...@@ -71,7 +75,7 @@ public class AsyncDataFromMongoToNeo4j { ...@@ -71,7 +75,7 @@ public class AsyncDataFromMongoToNeo4j {
metadataService.syschroMetadataFromMongo(catalogName,mongoDataList); metadataService.syschroMetadataFromMongo(catalogName,mongoDataList);
//再同步元数据的横向关系 //再同步元数据的横向关系
metadataService.syschroTable2EtlJobRelations(catalogName); // metadataService.syschroTable2EtlJobRelations(catalogName);
//同步1104报表 //同步1104报表
// metadataService.syschro1104Relations(catalogName); // metadataService.syschro1104Relations(catalogName);
...@@ -84,13 +88,23 @@ public class AsyncDataFromMongoToNeo4j { ...@@ -84,13 +88,23 @@ public class AsyncDataFromMongoToNeo4j {
long end = System.currentTimeMillis(); long end = System.currentTimeMillis();
logger.info("同步数据完成,用时:"+(end-start)); logger.info("同步数据完成,用时:"+(end-start));
} }
@Async @Async
public void asyncJobFromMongo2Neo4j(String catalogName,String jobId) { public void asyncJobFromMongo2Neo4j(String catalogName,String jobId) {
CompletableFuture<String> future = asyncRelation.asyncJobFromMongo2Neo4j(catalogName, jobId);
try {
String message = future.get();
System.out.println("message:"+message);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
//先按照环境id,作业id,删除关系,然后同步关系, //先按照环境id,作业id,删除关系,然后同步关系,
// 一般来说,关系的字段已经存在neo4j,但是sql不一定存在, // 一般来说,关系的字段已经存在neo4j,但是sql不一定存在,
// 如果sql不存在,需要先同步sql ,srcipt,job,再建立关系。 // 如果sql不存在,需要先同步sql ,srcipt,job,再建立关系。
metadataRelationService.deleteRelationByJobId(catalogName,jobId); // metadataRelationService.deleteRelationByJobId(catalogName,jobId);
metadataRelationService.syschroRelationFromMongo(catalogName,jobId); // metadataRelationService.syschroRelationFromMongo(catalogName,jobId);
} }
} }
package com.keymobile.metadata.metadataRelation.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import java.util.concurrent.CompletableFuture;
@Service
public class AsyncRelation {
private static final Logger logger = LoggerFactory.getLogger(AsyncRelation.class);
public synchronized CompletableFuture<String> asyncJobFromMongo2Neo4j(String catalogName, String jobId) {
logger.info("开始异步 同步数据,catalog="+catalogName + " jobId="+jobId);
//先按照环境id,作业id,删除关系,然后同步关系,
// 一般来说,关系的字段已经存在neo4j,但是sql不一定存在,
// 如果sql不存在,需要先同步sql ,srcipt,job,再建立关系。
// metadataRelationService.deleteRelationByJobId(catalogName,jobId);
// metadataRelationService.syschroRelationFromMongo(catalogName,jobId);
return CompletableFuture.completedFuture("同步 环境="+catalogName+" jobId="+jobId+"完成。");
}
}
...@@ -191,7 +191,7 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService { ...@@ -191,7 +191,7 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
// (m{metadataId:"Table=1=d644b631fa8c434e928bcd1f1665b060"}) // (m{metadataId:"Table=1=d644b631fa8c434e928bcd1f1665b060"})
// create (n)<-[r:Composition]-(m) // create (n)<-[r:Composition]-(m)
// return n,m,r // return n,m,r
String cypher = " match (n{metadataId:\""+startId+"\"}),(m{metadataId:\""+endId+"\"}) merge (n)-[r:"+relationType+"]->(m) set r.jobId ="+jobId; String cypher = " match ( n {metadataId:\""+startId+"\"}),(m { metadataId:\""+endId+"\"}) merge (n)-[r:"+relationType+"]->(m) set r.jobId ="+jobId;
// logger.info("运行保存关系完成:" + cypher); // logger.info("运行保存关系完成:" + cypher);
session.run(cypher); session.run(cypher);
...@@ -202,12 +202,12 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService { ...@@ -202,12 +202,12 @@ public class BaseRelationshipServiceImpl implements IBaseRelationshipService {
Neo4jConfig neo4jConfig = new Neo4jConfig(); Neo4jConfig neo4jConfig = new Neo4jConfig();
Driver neo4jConnection = neo4jConfig.getNeo4jConnection(); Driver neo4jConnection = neo4jConfig.getNeo4jConnection();
Session session = neo4jConnection.session(); Session session = neo4jConnection.session();
// match (n{metadataId:"Column=1=d9c2d67e56a3428e8e4f22918782437f"}), // match (n { metadataId:"Column=1=0c8a3201eaf349918363471496c19a96"}),
// (m{metadataId:"Table=1=d644b631fa8c434e928bcd1f1665b060"}) // ( m { metadataId:"SQL=1=b33fc95c948a43d7af504632bf6e7641"} )
// create (n)<-[r:Composition]-(m) // merge (n)-[r:流向]->(m)
// return n,m,r // set r={jobId:"0",descriptio:"0" }
String cypher = " match (n{metadataId:\""+startId+"\"}),(m{metadataId:\""+endId+"\"}) " + String cypher = "match (n { metadataId:\""+startId+"\"}), ( m { metadataId:\""+endId+"\"} ) " +
"merge (n)-[r:"+relationType+"]->(m) set r.jobId ="+description + " and r.description = "+ description; "merge (n)-[r:"+relationType+"]->(m) set r = {jobId:"+jobId+",description:"+description+" }";// set r.jobId ="+description + " and r.description = "+ description;
// logger.info("运行保存关系完成:" + cypher); // logger.info("运行保存关系完成:" + cypher);
session.run(cypher); session.run(cypher);
......
...@@ -20,6 +20,10 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -20,6 +20,10 @@ public class ColumnServiceImpl implements IColumnService {
@Autowired @Autowired
private Neo4jColumnRepository neo4jColumnRepository; private Neo4jColumnRepository neo4jColumnRepository;
private String columnModelName = "Column";
private String columnModelEqual = "Column=";
private String etlSqlModelEqual = "ETLSql=";
@Override @Override
public ReturnReslult getRelationAboutColumn(String columnId) { public ReturnReslult getRelationAboutColumn(String columnId) {
ReturnReslult returnReslult = new ReturnReslult(); ReturnReslult returnReslult = new ReturnReslult();
...@@ -32,15 +36,15 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -32,15 +36,15 @@ public class ColumnServiceImpl implements IColumnService {
ReturnNode returnColumn = new ReturnNode(); ReturnNode returnColumn = new ReturnNode();
returnColumn.setId(neo4jColumn.getMetadataId()); returnColumn.setId(neo4jColumn.getMetadataId());
returnColumn.setName(neo4jColumn.getName()); returnColumn.setName(neo4jColumn.getName());
returnColumn.setType("Column"); returnColumn.setType(columnModelName);
returnReslult.getNodes().add(returnColumn); returnReslult.getNodes().add(returnColumn);
List<BaseNode> targetBaseNodeList = neo4jColumnRepository.getTargetColumn(columnId); List<BaseNode> targetBaseNodeList = neo4jColumnRepository.getTargetColumn(columnId);
for(BaseNode targetBaseNode:targetBaseNodeList){ for(BaseNode targetBaseNode:targetBaseNodeList){
if(targetBaseNode.getMetadataId().startsWith("Column=")){ if(targetBaseNode.getMetadataId().startsWith(columnModelEqual)){
//是字段 //是字段
targetNodeList.add(targetBaseNode); targetNodeList.add(targetBaseNode);
}else if(targetBaseNode.getMetadataId().startsWith("ETLSql=")){ }else if(targetBaseNode.getMetadataId().startsWith(etlSqlModelEqual)){
getTargetRelationAboutColumns(targetBaseNode.getMetadataId(),targetNodeList); getTargetRelationAboutColumns(targetBaseNode.getMetadataId(),targetNodeList);
//不是字段,就继续找 //不是字段,就继续找
} }
...@@ -50,7 +54,7 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -50,7 +54,7 @@ public class ColumnServiceImpl implements IColumnService {
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(sourceNode.getMetadataId()); returnNode.setId(sourceNode.getMetadataId());
returnNode.setName(sourceNode.getName()); returnNode.setName(sourceNode.getName());
returnNode.setType("Column"); returnNode.setType(columnModelName);
returnNodeMap.put(sourceNode.getMetadataId(),returnNode); returnNodeMap.put(sourceNode.getMetadataId(),returnNode);
ReturnEdge returnEdge = new ReturnEdge(); ReturnEdge returnEdge = new ReturnEdge();
...@@ -64,10 +68,10 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -64,10 +68,10 @@ public class ColumnServiceImpl implements IColumnService {
List<BaseNode> sourceNodeList = new ArrayList<>(); List<BaseNode> sourceNodeList = new ArrayList<>();
List<BaseNode> sourceBaseNodeList = neo4jColumnRepository.getSourceColumn(columnId); List<BaseNode> sourceBaseNodeList = neo4jColumnRepository.getSourceColumn(columnId);
for(BaseNode sourceBaseNode:sourceBaseNodeList){ for(BaseNode sourceBaseNode:sourceBaseNodeList){
if(sourceBaseNode.getMetadataId().startsWith("Column=")){ if(sourceBaseNode.getMetadataId().startsWith(columnModelEqual)){
//是字段 //是字段
sourceNodeList.add(sourceBaseNode); sourceNodeList.add(sourceBaseNode);
}else if(sourceBaseNode.getMetadataId().startsWith("ETLSql=")){ }else if(sourceBaseNode.getMetadataId().startsWith(etlSqlModelEqual)){
getSourceRelationAboutColumns(sourceBaseNode.getMetadataId(),sourceNodeList); getSourceRelationAboutColumns(sourceBaseNode.getMetadataId(),sourceNodeList);
//不是字段,就继续找 //不是字段,就继续找
} }
...@@ -77,7 +81,7 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -77,7 +81,7 @@ public class ColumnServiceImpl implements IColumnService {
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(sourceNode.getMetadataId()); returnNode.setId(sourceNode.getMetadataId());
returnNode.setName(sourceNode.getName()); returnNode.setName(sourceNode.getName());
returnNode.setType("Column"); returnNode.setType(columnModelName);
returnNodeMap.put(sourceNode.getMetadataId(),returnNode); returnNodeMap.put(sourceNode.getMetadataId(),returnNode);
ReturnEdge returnEdge = new ReturnEdge(); ReturnEdge returnEdge = new ReturnEdge();
...@@ -101,16 +105,16 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -101,16 +105,16 @@ public class ColumnServiceImpl implements IColumnService {
private void getSourceRelationAboutColumns(String metadataId, List<BaseNode> sourceReturnNodeList) { private void getSourceRelationAboutColumns(String metadataId, List<BaseNode> sourceReturnNodeList) {
List<BaseNode> sourceNodeList = new ArrayList<>(); List<BaseNode> sourceNodeList = new ArrayList<>();
if(metadataId.startsWith("ETLSql=")){ if(metadataId.startsWith(etlSqlModelEqual)){
sourceNodeList = neo4jColumnRepository.getSourceColumn(metadataId); sourceNodeList = neo4jColumnRepository.getSourceColumn(metadataId);
}else if(metadataId.startsWith("File=")){ }else if(metadataId.startsWith("File=")){
// targetNodeList = neo4jFileRepository.getTargets(metadataId); // targetNodeList = neo4jFileRepository.getTargets(metadataId);
} }
for(BaseNode sourceNode:sourceNodeList){ for(BaseNode sourceNode:sourceNodeList){
if(sourceNode.getMetadataId().startsWith("Column=")){ if(sourceNode.getMetadataId().startsWith(columnModelEqual)){
//是表 //是表
sourceReturnNodeList.add(sourceNode); sourceReturnNodeList.add(sourceNode);
}else if(sourceNode.getMetadataId().startsWith("ETLSql=")){ }else if(sourceNode.getMetadataId().startsWith(etlSqlModelEqual)){
getSourceRelationAboutColumns(sourceNode.getMetadataId(),sourceReturnNodeList); getSourceRelationAboutColumns(sourceNode.getMetadataId(),sourceReturnNodeList);
//不是表,就继续找 //不是表,就继续找
} }
...@@ -119,16 +123,16 @@ public class ColumnServiceImpl implements IColumnService { ...@@ -119,16 +123,16 @@ public class ColumnServiceImpl implements IColumnService {
private void getTargetRelationAboutColumns(String metadataId, List<BaseNode> returnNodeList) { private void getTargetRelationAboutColumns(String metadataId, List<BaseNode> returnNodeList) {
List<BaseNode> targetNodeList = new ArrayList<>(); List<BaseNode> targetNodeList = new ArrayList<>();
if(metadataId.startsWith("ETLSql=")){ if(metadataId.startsWith(etlSqlModelEqual)){
targetNodeList = neo4jColumnRepository.getTargetColumn(metadataId); targetNodeList = neo4jColumnRepository.getTargetColumn(metadataId);
}else if(metadataId.startsWith("File=")){ }else if(metadataId.startsWith("File=")){
// targetNodeList = neo4jFileRepository.getTargets(metadataId); // targetNodeList = neo4jFileRepository.getTargets(metadataId);
} }
for(BaseNode targetNode:targetNodeList){ for(BaseNode targetNode:targetNodeList){
if(targetNode.getMetadataId().startsWith("Column=")){ if(targetNode.getMetadataId().startsWith(columnModelEqual)){
//是表 //是表
returnNodeList.add(targetNode); returnNodeList.add(targetNode);
}else if(targetNode.getMetadataId().startsWith("ETLSql=")){ }else if(targetNode.getMetadataId().startsWith(etlSqlModelEqual)){
getTargetRelationAboutColumns(targetNode.getMetadataId(),returnNodeList); getTargetRelationAboutColumns(targetNode.getMetadataId(),returnNodeList);
//不是表,就继续找 //不是表,就继续找
} }
......
...@@ -27,6 +27,7 @@ public class ETLJobServiceImpl implements IETLJobService { ...@@ -27,6 +27,7 @@ public class ETLJobServiceImpl implements IETLJobService {
return null; return null;
} }
private String tableModelName = "Table";
@Override @Override
public Map<String, String> getAttributeByETLJobId(String tableId) { public Map<String, String> getAttributeByETLJobId(String tableId) {
Map<String,String> attributeMap = getAttributeMap(tableId); Map<String,String> attributeMap = getAttributeMap(tableId);
...@@ -84,7 +85,7 @@ public class ETLJobServiceImpl implements IETLJobService { ...@@ -84,7 +85,7 @@ public class ETLJobServiceImpl implements IETLJobService {
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(baseNode.getMetadataId()); returnNode.setId(baseNode.getMetadataId());
returnNode.setName(baseNode.getName()); returnNode.setName(baseNode.getName());
returnNode.setType("Table"); returnNode.setType(tableModelName);
// 获取属性 // 获取属性
// Map<String,String> attributeMap = getAttributeMap(metadataId); // Map<String,String> attributeMap = getAttributeMap(metadataId);
// List<BaseNode> sourceEtlScriptBetween2TableList = neo4jTableRepository.getSourceEtlScriptBetween2Table(tableId, metadataId); // List<BaseNode> sourceEtlScriptBetween2TableList = neo4jTableRepository.getSourceEtlScriptBetween2Table(tableId, metadataId);
...@@ -115,7 +116,7 @@ public class ETLJobServiceImpl implements IETLJobService { ...@@ -115,7 +116,7 @@ public class ETLJobServiceImpl implements IETLJobService {
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(baseNode.getMetadataId()); returnNode.setId(baseNode.getMetadataId());
returnNode.setName(baseNode.getName()); returnNode.setName(baseNode.getName());
returnNode.setType("Table"); returnNode.setType(tableModelName);
// 获取属性 // 获取属性
// Map<String,String> attributeMap = getAttributeMap(metadataId); // Map<String,String> attributeMap = getAttributeMap(metadataId);
// List<BaseNode> sourceEtlScriptBetween2TableList = neo4jTableRepository.getSourceEtlScriptBetween2Table(tableId, metadataId); // List<BaseNode> sourceEtlScriptBetween2TableList = neo4jTableRepository.getSourceEtlScriptBetween2Table(tableId, metadataId);
...@@ -144,7 +145,7 @@ public class ETLJobServiceImpl implements IETLJobService { ...@@ -144,7 +145,7 @@ public class ETLJobServiceImpl implements IETLJobService {
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(neo4jETLJob.getMetadataId()); returnNode.setId(neo4jETLJob.getMetadataId());
returnNode.setName(neo4jETLJob.getName()); returnNode.setName(neo4jETLJob.getName());
returnNode.setType("Table"); returnNode.setType(tableModelName);
returnTableList.add(returnNode); returnTableList.add(returnNode);
// 获取属性 // 获取属性
// Map<String,String> attributeMap = getAttributeMap(tableId); // Map<String,String> attributeMap = getAttributeMap(tableId);
......
...@@ -19,6 +19,10 @@ public class ETLScriptServiceImpl implements IETLScriptService { ...@@ -19,6 +19,10 @@ public class ETLScriptServiceImpl implements IETLScriptService {
@Autowired @Autowired
private MetadataRepoRemoteService metadataRepoRemoteService; private MetadataRepoRemoteService metadataRepoRemoteService;
private String tableModelName = "Table=";
private String etlScriptModelName = "ETLScript";
@Autowired @Autowired
Neo4jETLScriptRepository neo4jETLScriptRepository; Neo4jETLScriptRepository neo4jETLScriptRepository;
@Override @Override
...@@ -50,14 +54,14 @@ public class ETLScriptServiceImpl implements IETLScriptService { ...@@ -50,14 +54,14 @@ public class ETLScriptServiceImpl implements IETLScriptService {
List<BaseNode> sourceBaseNodeList = neo4jETLScriptRepository.getTargets(scriptId); List<BaseNode> sourceBaseNodeList = neo4jETLScriptRepository.getTargets(scriptId);
for(BaseNode baseNode:sourceBaseNodeList){ for(BaseNode baseNode:sourceBaseNodeList){
String metadataId = baseNode.getMetadataId(); String metadataId = baseNode.getMetadataId();
if(metadataId.startsWith("Table=")||metadataId.startsWith("ETLScript=")){ if(metadataId.startsWith(tableModelName)||metadataId.startsWith("ETLScript=")){
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(baseNode.getMetadataId()); returnNode.setId(baseNode.getMetadataId());
returnNode.setName(baseNode.getName()); returnNode.setName(baseNode.getName());
if(metadataId.startsWith("Table=")){ if(metadataId.startsWith(tableModelName)){
returnNode.setType("Table"); returnNode.setType("Table");
}else { }else {
returnNode.setType("ETLScript"); returnNode.setType(etlScriptModelName);
} }
// 获取属性 // 获取属性
// Map<String,String> attributeMap = getAttributeMap(metadataId); // Map<String,String> attributeMap = getAttributeMap(metadataId);
...@@ -85,14 +89,14 @@ public class ETLScriptServiceImpl implements IETLScriptService { ...@@ -85,14 +89,14 @@ public class ETLScriptServiceImpl implements IETLScriptService {
List<BaseNode> sourceBaseNodeList = neo4jETLScriptRepository.getSources(scriptId); List<BaseNode> sourceBaseNodeList = neo4jETLScriptRepository.getSources(scriptId);
for(BaseNode baseNode:sourceBaseNodeList){ for(BaseNode baseNode:sourceBaseNodeList){
String metadataId = baseNode.getMetadataId(); String metadataId = baseNode.getMetadataId();
if(metadataId.startsWith("Table=")||metadataId.startsWith("ETLScript=")){ if(metadataId.startsWith(tableModelName)||metadataId.startsWith("ETLScript=")){
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(baseNode.getMetadataId()); returnNode.setId(baseNode.getMetadataId());
returnNode.setName(baseNode.getName()); returnNode.setName(baseNode.getName());
if(metadataId.startsWith("Table=")){ if(metadataId.startsWith(tableModelName)){
returnNode.setType("Table"); returnNode.setType("Table");
}else { }else {
returnNode.setType("ETLScript"); returnNode.setType(etlScriptModelName);
} }
// 获取属性 // 获取属性
// Map<String,String> attributeMap = getAttributeMap(metadataId); // Map<String,String> attributeMap = getAttributeMap(metadataId);
...@@ -122,7 +126,7 @@ public class ETLScriptServiceImpl implements IETLScriptService { ...@@ -122,7 +126,7 @@ public class ETLScriptServiceImpl implements IETLScriptService {
ReturnNode returnNode = new ReturnNode(); ReturnNode returnNode = new ReturnNode();
returnNode.setId(neo4jETLScript.getMetadataId()); returnNode.setId(neo4jETLScript.getMetadataId());
returnNode.setName(neo4jETLScript.getName()); returnNode.setName(neo4jETLScript.getName());
returnNode.setType("ETLScript"); returnNode.setType(etlScriptModelName);
returnTableList.add(returnNode); returnTableList.add(returnNode);
// 获取属性 // 获取属性
// Map<String,String> attributeMap = getAttributeMap(tableId); // Map<String,String> attributeMap = getAttributeMap(tableId);
......
...@@ -27,6 +27,10 @@ public class MongoDbServiceImpl { ...@@ -27,6 +27,10 @@ public class MongoDbServiceImpl {
private static final String PREFIX_METADATA_NODE = "Metadata_"; private static final String PREFIX_METADATA_NODE = "Metadata_";
private static final String PARENT_ID = "parentId";
private static final String INPUT = "Input";
private static final String OUTPUT = "Output";
/** /**
* 查询所有 * 查询所有
* *
...@@ -56,7 +60,7 @@ public class MongoDbServiceImpl { ...@@ -56,7 +60,7 @@ public class MongoDbServiceImpl {
logger.info("开始从mongo获取元数据:"+ parentName); logger.info("开始从mongo获取元数据:"+ parentName);
try { try {
Query query = new Query(); Query query = new Query();
query.addCriteria(Criteria.where("parentId").is(parentName)); query.addCriteria(Criteria.where(PARENT_ID).is(parentName));
List<MongoData> mongoDataList = mongoTemplate.find(query, MongoData.class,PREFIX_METADATA_NODE+catalogName); List<MongoData> mongoDataList = mongoTemplate.find(query, MongoData.class,PREFIX_METADATA_NODE+catalogName);
return mongoDataList; return mongoDataList;
...@@ -77,7 +81,7 @@ public class MongoDbServiceImpl { ...@@ -77,7 +81,7 @@ public class MongoDbServiceImpl {
// logger.info("开始从mongo获取元数据:"+ parentId); // logger.info("开始从mongo获取元数据:"+ parentId);
try { try {
Query query = new Query(); Query query = new Query();
query.addCriteria(Criteria.where("parentId").is(parentId)); query.addCriteria(Criteria.where(PARENT_ID).is(parentId));
List<MongoData> mongoDataList = mongoTemplate.find(query, MongoData.class,PREFIX_METADATA_NODE+catalogName); List<MongoData> mongoDataList = mongoTemplate.find(query, MongoData.class,PREFIX_METADATA_NODE+catalogName);
return mongoDataList;// mongoTemplate.findAll(MongoData.class, "md_relation_" + catalogName); return mongoDataList;// mongoTemplate.findAll(MongoData.class, "md_relation_" + catalogName);
...@@ -92,14 +96,14 @@ public class MongoDbServiceImpl { ...@@ -92,14 +96,14 @@ public class MongoDbServiceImpl {
* 分页查询所有子节点,返回document * 分页查询所有子节点,返回document
* *
* public List<Document> findRelationByPage(Pageable pageable, String catalogName) { * public List<Document> findRelationByPage(Pageable pageable, String catalogName) {
* Query query = new Query(new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output"))); * Query query = new Query(new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT)));
* query.with(pageable); * query.with(pageable);
* return mongoTemplate.find(query, Document.class, PREFIX_MD_RELATION + catalogName); * return mongoTemplate.find(query, Document.class, PREFIX_MD_RELATION + catalogName);
* } * }
*/ */
public List<Document> getDocumentByparentIdByPage(Pageable pageable, String catalogName,String parentId) { public List<Document> getDocumentByparentIdByPage(Pageable pageable, String catalogName,String parentId) {
logger.info("开始从mongo查找子节点:"+ parentId); logger.info("开始从mongo查找子节点:"+ parentId);
Query query = Query.query(Criteria.where("parentId").is(parentId)); Query query = Query.query(Criteria.where(PARENT_ID).is(parentId));
query.with(pageable); query.with(pageable);
return mongoTemplate.find(query, Document.class, PREFIX_METADATA_NODE + catalogName); return mongoTemplate.find(query, Document.class, PREFIX_METADATA_NODE + catalogName);
...@@ -108,7 +112,7 @@ public class MongoDbServiceImpl { ...@@ -108,7 +112,7 @@ public class MongoDbServiceImpl {
public long countDocumentByParentId(Pageable pageable, String catalogName,String parentId) { public long countDocumentByParentId(Pageable pageable, String catalogName,String parentId) {
Query query = Query.query(Criteria.where("parentId").is(parentId)); Query query = Query.query(Criteria.where(PARENT_ID).is(parentId));
query.with(pageable); query.with(pageable);
return mongoTemplate.count(query, Document.class, PREFIX_METADATA_NODE + catalogName); return mongoTemplate.count(query, Document.class, PREFIX_METADATA_NODE + catalogName);
} }
...@@ -154,13 +158,13 @@ public class MongoDbServiceImpl { ...@@ -154,13 +158,13 @@ public class MongoDbServiceImpl {
} }
public List<Document> findRelationByPage(Pageable pageable, String catalogName) { public List<Document> findRelationByPage(Pageable pageable, String catalogName) {
Query query = new Query(new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output"))); Query query = new Query(new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT)));
query.with(pageable); query.with(pageable);
return mongoTemplate.find(query, Document.class, PREFIX_MD_RELATION + catalogName); return mongoTemplate.find(query, Document.class, PREFIX_MD_RELATION + catalogName);
} }
public long countRelation(Pageable pageable, String catalogName) { public long countRelation(Pageable pageable, String catalogName) {
Query query = new Query(new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output"))); Query query = new Query(new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT)));
query.with(pageable); query.with(pageable);
return mongoTemplate.count(query, Document.class, PREFIX_MD_RELATION + catalogName); return mongoTemplate.count(query, Document.class, PREFIX_MD_RELATION + catalogName);
} }
...@@ -168,20 +172,20 @@ public class MongoDbServiceImpl { ...@@ -168,20 +172,20 @@ public class MongoDbServiceImpl {
public long countRelationByJobId(Pageable pageable, String catalogName,String jobId) { public long countRelationByJobId(Pageable pageable, String catalogName,String jobId) {
Query query = new Query(new Criteria() .andOperator(Criteria.where("jobId").is(jobId), Query query = new Query(new Criteria() .andOperator(Criteria.where("jobId").is(jobId),
new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output")) new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT))
) )
); );
// Query query = new Query(new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output"))); // Query query = new Query(new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT)));
query.with(pageable); query.with(pageable);
return mongoTemplate.count(query, Document.class, PREFIX_MD_RELATION + catalogName); return mongoTemplate.count(query, Document.class, PREFIX_MD_RELATION + catalogName);
} }
public List<Document> findRelationByJobIdByPage(Pageable pageable, String catalogName,String jobId) { public List<Document> findRelationByJobIdByPage(Pageable pageable, String catalogName,String jobId) {
Query query = new Query(new Criteria() .andOperator(Criteria.where("jobId").is(jobId), Query query = new Query(new Criteria() .andOperator(Criteria.where("jobId").is(jobId),
new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output")) new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT))
) )
); );
// Query query = new Query(new Criteria().orOperator(Criteria.where("type").is("Input"),Criteria.where("type").is("Output"))); // Query query = new Query(new Criteria().orOperator(Criteria.where("type").is(INPUT),Criteria.where("type").is(OUTPUT)));
query.with(pageable); query.with(pageable);
return mongoTemplate.find(query, Document.class, PREFIX_MD_RELATION + catalogName); return mongoTemplate.find(query, Document.class, PREFIX_MD_RELATION + catalogName);
} }
......
...@@ -50,24 +50,7 @@ public class SystemServiceImpl implements ISystemService { ...@@ -50,24 +50,7 @@ public class SystemServiceImpl implements ISystemService {
returnNode.setName(neo4jSchema.getName()); returnNode.setName(neo4jSchema.getName());
returnNode.setType("Schema"); returnNode.setType("Schema");
String label = neo4jSchema.getLabel(); SetLabel(tyshcList, jcshcList, zhshcList, tjshcList, fxshcList, jsshcList, yysjcList, neo4jSchema, returnNode);
if(SchemaLayerObject.tieyuanceng.equals(label) ||SchemaLayerObject.tieyuancengData.equals(label) ){
tyshcList.add(returnNode);
}else if(SchemaLayerObject.jichuceng.equals(label) ||SchemaLayerObject.jichucengData.equals(label)){
jcshcList.add(returnNode);
}else if(SchemaLayerObject.zhengheceng.equals(label) ||SchemaLayerObject.zhenghecengData.equals(label)){
zhshcList.add(returnNode);
}else if(SchemaLayerObject.tongjiceng.equals(label) ||SchemaLayerObject.tongjicengData.equals(label)){
tjshcList.add(returnNode);
}else if(SchemaLayerObject.fenxiceng.equals(label) ||SchemaLayerObject.fenxicengData.equals(label)){
fxshcList.add(returnNode);
}else if(SchemaLayerObject.jishiceng.equals(label) || SchemaLayerObject.jishicengData.equals(label)){
jsshcList.add(returnNode);
}else if(SchemaLayerObject.yingyongceng.equals(label) ||SchemaLayerObject.yingyongcengData.equals(label)){
yysjcList.add(returnNode);
}else {
// schemaMap.get("未分层").add(returnNode);
}
// if(schemaMap .containsKey(label)){ // if(schemaMap .containsKey(label)){
// List<ReturnNode> returnNodeList = schemaMap.get(label); // List<ReturnNode> returnNodeList = schemaMap.get(label);
...@@ -81,6 +64,11 @@ public class SystemServiceImpl implements ISystemService { ...@@ -81,6 +64,11 @@ public class SystemServiceImpl implements ISystemService {
// } // }
} }
SetLabelToSchema(schemaMap, tyshcList, jcshcList, zhshcList, tjshcList, fxshcList, jsshcList, yysjcList);
return schemaMap;
}
private void SetLabelToSchema(Map<String, List<ReturnNode>> schemaMap, List<ReturnNode> tyshcList, List<ReturnNode> jcshcList, List<ReturnNode> zhshcList, List<ReturnNode> tjshcList, List<ReturnNode> fxshcList, List<ReturnNode> jsshcList, List<ReturnNode> yysjcList) {
if(tyshcList !=null && tyshcList.size()!=0){ if(tyshcList !=null && tyshcList.size()!=0){
schemaMap.put(SchemaLayerObject.tieyuanceng,tyshcList); schemaMap.put(SchemaLayerObject.tieyuanceng,tyshcList);
} }
...@@ -102,7 +90,27 @@ public class SystemServiceImpl implements ISystemService { ...@@ -102,7 +90,27 @@ public class SystemServiceImpl implements ISystemService {
if(yysjcList !=null && yysjcList.size()!=0){ if(yysjcList !=null && yysjcList.size()!=0){
schemaMap.put(SchemaLayerObject.yingyongceng,yysjcList); schemaMap.put(SchemaLayerObject.yingyongceng,yysjcList);
} }
return schemaMap; }
private void SetLabel(List<ReturnNode> tyshcList, List<ReturnNode> jcshcList, List<ReturnNode> zhshcList, List<ReturnNode> tjshcList, List<ReturnNode> fxshcList, List<ReturnNode> jsshcList, List<ReturnNode> yysjcList, Neo4jSchema neo4jSchema, ReturnNode returnNode) {
String label = neo4jSchema.getLabel();
if(SchemaLayerObject.tieyuanceng.equals(label) ||SchemaLayerObject.tieyuancengData.equals(label) ){
tyshcList.add(returnNode);
}else if(SchemaLayerObject.jichuceng.equals(label) ||SchemaLayerObject.jichucengData.equals(label)){
jcshcList.add(returnNode);
}else if(SchemaLayerObject.zhengheceng.equals(label) ||SchemaLayerObject.zhenghecengData.equals(label)){
zhshcList.add(returnNode);
}else if(SchemaLayerObject.tongjiceng.equals(label) ||SchemaLayerObject.tongjicengData.equals(label)){
tjshcList.add(returnNode);
}else if(SchemaLayerObject.fenxiceng.equals(label) ||SchemaLayerObject.fenxicengData.equals(label)){
fxshcList.add(returnNode);
}else if(SchemaLayerObject.jishiceng.equals(label) || SchemaLayerObject.jishicengData.equals(label)){
jsshcList.add(returnNode);
}else if(SchemaLayerObject.yingyongceng.equals(label) ||SchemaLayerObject.yingyongcengData.equals(label)){
yysjcList.add(returnNode);
}else {
// schemaMap.get("未分层").add(returnNode);
}
} }
@Override @Override
......
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