Browse Source

聚合返回值不是SceneDataSet修复,修改部分关联想bug

menglu 3 years ago
parent
commit
76446f69f5

+ 1 - 1
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/RefreshThread.java

@@ -63,7 +63,7 @@ public class RefreshThread extends Thread {
 			Date currTime = new Date();
 			try {
 				boolean changed_config = false;
-				if (last_refresh_config == null || currTime.getTime() - last_refresh_config.getTime() > 1000L * 60) {
+				if (last_refresh_config == null || currTime.getTime() - last_refresh_config.getTime() > 1000L * 15) {
 					if (Constant.config_download_enable) {
 						changed_config = Process_config();
 					}

+ 8 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/Constant.java

@@ -22,6 +22,8 @@ public class Constant {
 	public static String zkt_monitor_url;
 	public static String physical_world;
 	public static boolean physical_world_download_enable;
+	public static String ibms_physical_world;
+	public static boolean ibms_physical_world_download_enable;
 	public static String config;
 	public static boolean config_download_enable;
 	public static String iot_websocket_url;
@@ -91,6 +93,12 @@ public class Constant {
 						physical_world = element.attribute("path").getValue();
 						physical_world_download_enable = Boolean.parseBoolean(element.attribute("download_enable").getValue());
 					}
+					iter = document.selectNodes("/root/ibms_physical_world").iterator();
+					if (iter.hasNext()) {
+						element = (Element) iter.next();
+						ibms_physical_world = element.attribute("path").getValue();
+						ibms_physical_world_download_enable = Boolean.parseBoolean(element.attribute("download_enable").getValue());
+					}
 					iter = document.selectNodes("/root/config").iterator();
 					if (iter.hasNext()) {
 						element = (Element) iter.next();

+ 3 - 7
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/QueryUtil.java

@@ -1079,7 +1079,7 @@ public class QueryUtil {
 			}
 		} else {
 			SceneDataSet result = new SceneDataSet(false);
-			List<SceneDataValue> resultArray = new ArrayList<SceneDataValue>();
+			result.set = new ArrayList<SceneDataObject>();
 			for (String key : agg_count.keySet()) {
 				JSONObject keyObject = JSON.parseObject(key);
 				SceneDataObject resultItem = new SceneDataObject(null, null, null, null, null, null, null);
@@ -1100,11 +1100,7 @@ public class QueryUtil {
 					sdvvv.value_prim.value = query_aggregationProcess(agg_count, agg_items, agg_one, key);
 					resultItem.put(Name, sdvvv);
 				}
-				{
-					SceneDataValue sdvvv = new SceneDataValue(null, null, null, null);
-					sdvvv.value_object = resultItem;
-					resultArray.add(sdvvv);
-				}
+				result.set.add(resultItem);
 			}
 			if (set.getRowChange()) {
 				result.setRowChange(true);
@@ -1129,7 +1125,7 @@ public class QueryUtil {
 					}
 				}
 			}
-			return resultArray;
+			return result;
 		}
 	}
 

+ 9 - 8
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDLoadUtil.java

@@ -277,6 +277,8 @@ public class RWDLoadUtil {
 				SceneDataObject sdv = fromMap.get(key);
 				if (!sdv.value_object.containsKey(ConfigRelation.nameInFrom)) {
 					SceneDataValue sdvInner = new SceneDataValue(Repository, sdv, ConfigRelation.nameInFrom, null);
+					sdvInner.value_array = new SceneDataSet(false);
+					sdvInner.value_array.set = new ArrayList<SceneDataObject>();
 					sdv.value_object.put(ConfigRelation.nameInFrom, sdvInner);
 				}
 			}
@@ -284,6 +286,8 @@ public class RWDLoadUtil {
 				SceneDataObject sdv = toMap.get(key);
 				if (!sdv.value_object.containsKey(ConfigRelation.nameInTo)) {
 					SceneDataValue sdvInner = new SceneDataValue(Repository, sdv, ConfigRelation.nameInTo, null);
+					sdvInner.value_array = new SceneDataSet(false);
+					sdvInner.value_array.set = new ArrayList<SceneDataObject>();
 					sdv.value_object.put(ConfigRelation.nameInTo, sdvInner);
 				}
 			}
@@ -318,15 +322,7 @@ public class RWDLoadUtil {
 				}
 
 				SceneDataValue sdvFromItem = fromObject.value_object.get(ConfigRelation.nameInFrom);
-				if (sdvFromItem.value_array == null) {
-					sdvFromItem.value_array = new SceneDataSet(false);
-					sdvFromItem.value_array.set = new ArrayList<SceneDataObject>();
-				}
 				SceneDataValue sdvToItem = toObject.value_object.get(ConfigRelation.nameInTo);
-				if (sdvToItem.value_array == null) {
-					sdvToItem.value_array = new SceneDataSet(false);
-					sdvToItem.value_array.set = new ArrayList<SceneDataObject>();
-				}
 				sdvFromItem.value_array.set.add(toObject);
 				sdvToItem.value_array.set.add(fromObject);
 			}
@@ -471,4 +467,9 @@ public class RWDLoadUtil {
 			}
 		}
 	}
+
+	public static void LoadIBMSPhysicalWorld(Repository Repository) throws Exception {
+		String validPath = Constant.getLatestPath(Constant.ibms_physical_world, true);
+
+	}
 }

+ 8 - 2
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/SceneDataValueComparator.java

@@ -21,8 +21,14 @@ public class SceneDataValueComparator implements Comparator<SceneDataObject> {
 			JSONObject item = (JSONObject) OrderBy.get(i);
 			String Column = (String) item.get("Column");
 			Boolean Asc = (Boolean) item.get("Asc");
-			Object v1 = o1.value_object.get(Column).value_prim.value;
-			Object v2 = o2.value_object.get(Column).value_prim.value;
+			Object v1 = null;
+			if (o1.value_object.get(Column) != null && o1.value_object.get(Column).value_prim != null) {
+				v1 = o1.value_object.get(Column).value_prim.value;
+			}
+			Object v2 = null;
+			if (o2.value_object.get(Column) != null && o2.value_object.get(Column).value_prim != null) {
+				v2 = o2.value_object.get(Column).value_prim.value;
+			}
 			if (v1 == null && v2 != null) {
 				if (Asc) {
 					return -1;