瀏覽代碼

关系查询运行只给graphCode或者relCode

menglu 3 年之前
父節點
當前提交
43c7dc0402

+ 12 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDLoadUtil.java

@@ -171,11 +171,14 @@ public class RWDLoadUtil {
 		String relationPath = validPath + Constant.getSeperator() + "relation";
 		{
 			Map<String, Map<String, SceneDataSet>> relationArrayDic = new HashMap<String, Map<String, SceneDataSet>>();
+			Map<String, SceneDataSet> graphCodeDic = new HashMap<String, SceneDataSet>();
+			Map<String, SceneDataSet> relCodeDic = new HashMap<String, SceneDataSet>();
 			File root = new File(relationPath);
 			File[] dirs = root.listFiles();
 			for (File dir : dirs) {
 				File[] files = dir.listFiles();
 				Map<String, SceneDataSet> oneDic = new HashMap<String, SceneDataSet>();
+				SceneDataSet graphCodeSet = new SceneDataSet(false);
 				for (File file : files) {
 					int index_ = file.getName().indexOf('.');
 					String code = file.getName().substring(0, index_);
@@ -185,10 +188,19 @@ public class RWDLoadUtil {
 					SceneDataSet SceneDataSet = new SceneDataSet(false);
 					SceneDataSet.set = RWDUtil.array2SDOList(array);
 					oneDic.put(code, SceneDataSet);
+					graphCodeSet.set.addAll(SceneDataSet.set);
+					if (!relCodeDic.containsKey(code)) {
+						relCodeDic.put(code, new SceneDataSet(false));
+					}
+					relCodeDic.get(code).set.addAll(SceneDataSet.set);
+					Repository.relationAll.set.addAll(SceneDataSet.set);
 				}
 				relationArrayDic.put(dir.getName(), oneDic);
+				graphCodeDic.put(dir.getName(), graphCodeSet);
 			}
 			Repository.relationArrayDic = relationArrayDic;
+			Repository.graphCodeDic = graphCodeDic;
+			Repository.relCodeDic = relCodeDic;
 		}
 
 		for (String classCode : Repository.objectArrayDic.keySet()) {

+ 16 - 3
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RepositoryImpl.java

@@ -30,6 +30,9 @@ public class RepositoryImpl extends RepositoryBase {
 	public Map<String, Map<String, SceneDataObject>> objType2id2Value = new HashMap<String, Map<String, SceneDataObject>>();
 	// 图类型到边类型到变实例清单
 	public Map<String, Map<String, SceneDataSet>> relationArrayDic = new HashMap<String, Map<String, SceneDataSet>>();
+	public Map<String, SceneDataSet> graphCodeDic = new HashMap<String, SceneDataSet>();
+	public Map<String, SceneDataSet> relCodeDic = new HashMap<String, SceneDataSet>();
+	public SceneDataSet relationAll = new SceneDataSet(false);
 	// 对象id到JSONObject
 	public Map<String, JSONObject> id2object = new HashMap<String, JSONObject>();
 	// 对象id到SceneDataValue
@@ -73,9 +76,19 @@ public class RepositoryImpl extends RepositoryBase {
 					result = this.infoArrayDic.get(objType);
 				}
 			} else if (rwd.equals("relation")) {
-				String graphCode = (descSet.get("graphCode")).toString();
-				String relCode = (descSet.get("relCode")).toString();
-				result = this.relationArrayDic.get(graphCode).get(relCode);
+				if (descSet.get("graphCode") != null && descSet.get("relCode") != null) {
+					String graphCode = (descSet.get("graphCode")).toString();
+					String relCode = (descSet.get("relCode")).toString();
+					result = this.relationArrayDic.get(graphCode).get(relCode);
+				} else if (descSet.get("graphCode") != null) {
+					String graphCode = (descSet.get("graphCode")).toString();
+					result = this.graphCodeDic.get(graphCode);
+				} else if (descSet.get("relCode") != null) {
+					String relCode = (descSet.get("relCode")).toString();
+					result = this.relCodeDic.get(relCode);
+				} else {
+					result = this.relationAll;
+				}
 			}
 			if (result == null) {
 				result = new SceneDataSet(false);