Browse Source

deamon处理

menglu 3 years ago
parent
commit
bd4c911607

+ 12 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ComputeUtil.java

@@ -460,13 +460,23 @@ public class ComputeUtil {
 			}
 		} else if (sceneProperty.propertyValueType.equals("deamon")) {
 			JSONObject sql_json = (JSONObject) JSON.parse(sceneProperty.query_sql);
+			String QueryType = (String) sql_json.get("QueryType");
+			if (QueryType.endsWith("trend")) {
+				sv.value_prim = new SceneDataPrimitive();
+				sv.value_prim.value = 0;
+				sv.value_prim.setRowChange(true);
+			} else if (QueryType.endsWith("curve")) {
+				sv.value_array = new SceneDataSet(false);
+				sv.value_array.set = new ArrayList<SceneDataObject>();
+				sv.value_array.setRowChange(true);
+			}
 			JSONObject Criteria = (JSONObject) sql_json.get("Criteria");
 			List<String> pointList = new ArrayList<String>();
 			for (String key : Criteria.keySet()) {
 				JSONObject CriteriaItemValue = (JSONObject) Criteria.get(key);
 				String refString = (String) CriteriaItemValue.get("ref");
-				SceneDataSet sdvList = QueryUtil.parseSetRef(Repository, sv, refString, new QueryAssist(), false);
-				for (SceneDataObject sdvInner : sdvList.set) {
+				SceneDataSet sdvList = QueryUtil.parseSetRef(Repository, sv, refString, new QueryAssist(), false, true);
+				for (SceneDataValue sdvInner : sdvList.singleValueSet) {
 					String point = RepositoryBase.sdv2point.get(sdvInner);
 					pointList.add(point);
 				}

+ 18 - 13
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/QueryUtil.java

@@ -397,7 +397,7 @@ public class QueryUtil {
 		return criteria;
 	}
 
-	private static SceneDataPrimitive parseCriteriaRef(Repository Repository, JSONObject valueInner, SceneDataValue sv) {
+	public static SceneDataPrimitive parseCriteriaRef(Repository Repository, JSONObject valueInner, SceneDataValue sv) {
 		String refString = (valueInner.get("ref")).toString();
 		String[] splits = refString.split("'");
 		boolean change = false;
@@ -551,7 +551,7 @@ public class QueryUtil {
 				result = RepositoryBase.alarmArray;
 			} else if (Source.equals("ref")) {
 				String refString = (descSet.get("ref")).toString();
-				result = parseSetRef(Repository, sv, refString, QueryAssist, isSingleValueSet);
+				result = parseSetRef(Repository, sv, refString, QueryAssist, isSingleValueSet, false);
 			}
 			return result;
 		}
@@ -706,7 +706,7 @@ public class QueryUtil {
 	}
 
 	public static SceneDataSet parseSetRef(Repository Repository, SceneDataValue sv, String refString, QueryAssist QueryAssist,
-			boolean isSingleValueSet) throws Exception {
+			boolean isSingleValueSet, boolean isDeamon) throws Exception {
 		SceneDataSet result = new SceneDataSet(isSingleValueSet);
 
 		String[] splits = refString.split("'");
@@ -832,17 +832,22 @@ public class QueryUtil {
 				}
 				svList = svListInner;
 			}
-			result.set = new ArrayList<SceneDataObject>();
-			for (SceneDataValue svTmp : svList) {
-				if (svTmp.value_array.getRowChange()) {
-					result.setRowChange(true);
-				}
-				result.set.addAll(svTmp.value_array.set);
-			}
-			if (!result.getRowChange()) {
+			if (isDeamon) {
+				result.singleValueSet = new ArrayList<SceneDataValue>();
+				result.singleValueSet.addAll(svList);
+			} else {
+				result.set = new ArrayList<SceneDataObject>();
 				for (SceneDataValue svTmp : svList) {
-					for (String col : svTmp.value_array.getColChange().keySet()) {
-						result.setColChange(col);
+					if (svTmp.value_array.getRowChange()) {
+						result.setRowChange(true);
+					}
+					result.set.addAll(svTmp.value_array.set);
+				}
+				if (!result.getRowChange()) {
+					for (SceneDataValue svTmp : svList) {
+						for (String col : svTmp.value_array.getColChange().keySet()) {
+							result.setColChange(col);
+						}
 					}
 				}
 			}

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

@@ -289,6 +289,12 @@ public class RWDLoadUtil {
 			}
 		}
 		for (ConfigRelation ConfigRelation : Constant.ConfigRelationList) {
+			if (!Repository.relationArrayDic.containsKey(ConfigRelation.graphCode)) {
+				continue;
+			}
+			if (!Repository.relationArrayDic.get(ConfigRelation.graphCode).containsKey(ConfigRelation.relCode)) {
+				continue;
+			}
 			List<SceneDataObject> sdvList = Repository.relationArrayDic.get(ConfigRelation.graphCode).get(ConfigRelation.relCode).set;
 			Map<String, SceneDataObject> fromMap = Repository.objType2id2Value.get(ConfigRelation.objFrom);
 			Map<String, SceneDataObject> toMap = Repository.objType2id2Value.get(ConfigRelation.objTo);