Browse Source

回路检查,报警加属性,控制成功才改控制值

menglu 3 years ago
parent
commit
2ae7c02b46

+ 14 - 1
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ControlUtil.java

@@ -32,7 +32,6 @@ public class ControlUtil {
 	}
 
 	public static JSONArray set(RepositoryImpl Repository, JSONArray path, String[] valuePath, JSONObject infoValueSet) throws Exception {
-		setControlValue(path, infoValueSet);
 
 		JSONArray result;
 		Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
@@ -50,6 +49,20 @@ public class ControlUtil {
 			SceneDataObject currData = (SceneDataObject) valueObject;
 			result = set(Repository, currData, infoValueSet);
 		}
+
+		boolean all_success = true;
+		for (int i = 0; i < result.size(); i++) {
+			JSONObject item = result.getJSONObject(i);
+			String status = (String) item.get("status");
+			if (status == null || !status.endsWith("finish:success")) {
+				all_success = false;
+				break;
+			}
+		}
+
+		if (all_success) {
+			setControlValue(path, infoValueSet);
+		}
 		return result;
 	}
 

+ 4 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDAlarmUtil.java

@@ -373,6 +373,10 @@ public class RWDAlarmUtil {
 					SceneDataValue sdvInner = sdoInner.get("ibmsClassCode");
 					alarm.put("ibmsClassCode", sdvInner.value_prim.value);
 				}
+				if (sdoInner.containsKey("ibmsxianshimingcheng")) {
+					SceneDataValue sdvInner = sdoInner.get("ibmsxianshimingcheng");
+					alarm.put("ibmsxianshimingcheng", sdvInner.value_prim.value);
+				}
 			}
 		}
 	}

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

@@ -800,6 +800,10 @@ public class RWDLoadUtil {
 						itemInner.put("一级编组名称", level1_name);
 						itemInner.put("二级编组", level2_id);
 						itemInner.put("二级编组名称", level2_name);
+						if (!Repository.id2sdv.containsKey(objId)) {
+							log.warn(product + " " + "回路不存在: " + objId);
+							continue;
+						}
 						SceneDataObject SELTCC = Repository.id2sdv.get(objId);
 						SceneDataValue SELTCUArray = SELTCC.get("被设备控制");
 						if (SELTCUArray.value_array.set.size() > 0) {