Browse Source

实现部分

menglu 3 years ago
parent
commit
770059f93b

+ 9 - 5
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/data/SceneDataObject.java

@@ -124,11 +124,7 @@ public class SceneDataObject {
 	}
 
 	public void setRowChange(boolean value) throws Exception {
-		if (this.father != null) {
-			throw new Exception();
-		} else {
-			this.change.row_change = value;
-		}
+		this.change.row_change = value;
 	}
 
 	public Map<String, Boolean> getColChange() {
@@ -154,6 +150,14 @@ public class SceneDataObject {
 		}
 	}
 
+	public void setColChange(Map<String, Boolean> colMap) {
+		for (String col : colMap.keySet()) {
+			if (!this.hasColChange(col)) {
+				this.change.colChangeMap.put(col, true);
+			}
+		}
+	}
+
 	public boolean hasColChange(String col) {
 		if (this.father != null) {
 			if (this.father.hasColChange(col)) {

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

@@ -3,4 +3,12 @@ package com.persagy.ibms.data.sdk.data;
 public class SceneDataPrimitive {
 	public Object value;
 	public boolean change;
+
+	public void setRowChange(boolean value) {
+		this.change = value;
+	}
+
+	public boolean getRowChange() {
+		return change;
+	}
 }

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

@@ -36,6 +36,12 @@ public class SceneDataSet {
 		this.change.colChangeMap.put(col, true);
 	}
 
+	public void setColChange(Map<String, Boolean> colMap) {
+		for (String col : colMap.keySet()) {
+			this.change.colChangeMap.put(col, true);
+		}
+	}
+
 	public boolean hasColChange(String col) {
 		return this.change.colChangeMap.containsKey(col);
 	}

+ 23 - 18
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestApi.java

@@ -57,6 +57,12 @@ public class RestApi {
 		return result;
 	}
 
+	@PostMapping(path = { "/desc", "/zkt-sdk/desc" }, produces = "application/json;charset=UTF-8")
+	public String desc(@RequestBody String param) {
+		String result = RestUtil.desc(param);
+		return result;
+	}
+
 	@PostMapping(path = { "/show", "/zkt-sdk/show" }, produces = "application/json;charset=UTF-8")
 	public String show(@RequestBody String param) {
 		String result = RestUtil.show(param);
@@ -65,7 +71,6 @@ public class RestApi {
 
 	@PostMapping(path = { "/post", "/zkt-sdk/post" }, produces = "application/json;charset=UTF-8")
 	public String post(@RequestBody String param, HttpServletRequest request) {
-
 		String ip = RestUtil.getIp(request);
 		log.info("ip:" + ip + " || post: " + param);
 		String result = RestUtil.post(param);
@@ -90,23 +95,23 @@ public class RestApi {
 		return result;
 	}
 
-	@PostMapping(path = { "/wrapper_post", "/zkt-sdk/wrapper_post" }, produces = "application/json;charset=UTF-8")
-	public String wrapper_post(@RequestBody String param) {
-		String result = RestUtil.wrapper_post(param);
-		return result;
-	}
-
-	@PostMapping(path = { "/wrapper_post_filter_and_page", "/zkt-sdk/wrapper_post_filter_and_page" }, produces = "application/json;charset=UTF-8")
-	public String wrapper_post_filter_and_page(@RequestBody String param) {
-		String result = RestUtil.wrapper_post_filter_and_page(param);
-		return result;
-	}
-
-	@PostMapping(path = { "/wrapper_control", "/zkt-sdk/wrapper_control" }, produces = "application/json;charset=UTF-8")
-	public String wrapper_control(@RequestBody String param) {
-		String result = RestUtil.wrapper_control(param);
-		return result;
-	}
+	// @PostMapping(path = { "/wrapper_post", "/zkt-sdk/wrapper_post" }, produces = "application/json;charset=UTF-8")
+	// public String wrapper_post(@RequestBody String param) {
+	// String result = RestUtil.wrapper_post(param);
+	// return result;
+	// }
+	//
+	// @PostMapping(path = { "/wrapper_post_filter_and_page", "/zkt-sdk/wrapper_post_filter_and_page" }, produces = "application/json;charset=UTF-8")
+	// public String wrapper_post_filter_and_page(@RequestBody String param) {
+	// String result = RestUtil.wrapper_post_filter_and_page(param);
+	// return result;
+	// }
+	//
+	// @PostMapping(path = { "/wrapper_control", "/zkt-sdk/wrapper_control" }, produces = "application/json;charset=UTF-8")
+	// public String wrapper_control(@RequestBody String param) {
+	// String result = RestUtil.wrapper_control(param);
+	// return result;
+	// }
 
 	@PostMapping(path = { "/fjd_query", "/zkt-sdk/fjd_query" }, produces = "application/json;charset=UTF-8")
 	public String fjd_query(@RequestBody String param) {

+ 169 - 103
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestUtil.java

@@ -191,6 +191,72 @@ public class RestUtil {
 		}
 	}
 
+	public static String desc(String param) {
+		JSONArray path = JSON.parseArray(param);
+		String[] valuePath = new String[path.size()];
+		for (int i = 0; i < path.size(); i++) {
+			valuePath[i] = path.getString(i);
+		}
+		Repository Repository = RepositoryBase.instance;
+		Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
+		String result;
+		if (valueObject instanceof SceneDataValue) {
+			SceneDataValue currData = (SceneDataValue) valueObject;
+			StringBuffer sb = new StringBuffer();
+			sb.append("SceneDataValue: ");
+			if (currData.parentObjectData != null) {
+				sb.append(currData.parentObjectData.myPropertyName);
+				sb.append("\t");
+			} else {
+				sb.append("null");
+				sb.append("\t");
+			}
+			sb.append(currData.myPropertyName);
+			sb.append("\t");
+			if (currData.value_array != null) {
+				sb.append(currData.value_array.getRowChange());
+			} else if (currData.value_object != null) {
+				sb.append(currData.value_object.getRowChange());
+			} else if (currData.value_prim != null) {
+				sb.append(currData.value_prim.getRowChange());
+			}
+			sb.append("(");
+			if (currData.rel_property != null) {
+				sb.append(currData.rel_property.propertyName);
+			}
+			sb.append(")");
+			result = sb.toString();
+		} else {
+			SceneDataObject currData = (SceneDataObject) valueObject;
+			StringBuffer sb = new StringBuffer();
+			sb.append("SceneDataObject: ");
+			if (currData.parentObjectData != null) {
+				sb.append(currData.parentObjectData.myPropertyName);
+				sb.append("\t");
+			} else {
+				sb.append("null");
+				sb.append("\t");
+			}
+			sb.append(currData.myPropertyName);
+			sb.append("\t");
+			if (currData.parentArrayData != null) {
+				sb.append(currData.parentArrayData.myPropertyName);
+				sb.append("\t");
+			} else {
+				sb.append("null");
+				sb.append("\t");
+			}
+			sb.append(currData.getRowChange());
+			sb.append("(");
+			if (currData.rel_object != null) {
+				sb.append(currData.rel_object);
+			}
+			sb.append(")");
+			result = sb.toString();
+		}
+		return result;
+	}
+
 	public static String show(String param) {
 		JSONObject json = JSON.parseObject(param);
 		JSONArray path = json.getJSONArray("path");
@@ -238,7 +304,7 @@ public class RestUtil {
 				return FastJsonUtil.toString(work_orders);
 			} else {
 				Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
-				RecursiveUtil.refreshObject(Repository, valueObject);
+				// RecursiveUtil.refreshObject(Repository, valueObject);
 				Object valueJSON = ComputeUtil.getValueJSON(valueObject);
 				return FastJsonUtil.toString(valueJSON);
 			}
@@ -250,40 +316,40 @@ public class RestUtil {
 		}
 	}
 
-	public static String wrapper_post(String param) {
-		JSONArray path = JSON.parseArray(param);
-		String[] valuePath = new String[path.size()];
-		for (int i = 0; i < path.size(); i++) {
-			valuePath[i] = path.getString(i);
-		}
-		String result = RestUtil.wrapper_post(valuePath);
-		return result;
-	}
-
-	public static String wrapper_post(String[] valuePath) {
-		Repository Repository = RepositoryBase.instance;
-		JSONObject result = new JSONObject();
-		try {
-			Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
-			Object valueJSON = ComputeUtil.getValueJSON(valueObject);
-			if (valueJSON instanceof JSONArray) {
-				JSONArray array = (JSONArray) valueJSON;
-				result.put("Content", array);
-				result.put("Count", array.size());
-			} else {
-				result.put("Item", valueJSON);
-			}
-			result.put("Result", "success");
-		} catch (Exception e) {
-			e.printStackTrace();
-			String message = LogUtil.GetExceptionStackTrace(e);
-			log.info(message);
-			result.put("Result", "failure");
-			result.put("ResultMsg", message);
-			result.put("ResultCode", 250);
-		}
-		return result.toJSONString();
-	}
+	// public static String wrapper_post(String param) {
+	// JSONArray path = JSON.parseArray(param);
+	// String[] valuePath = new String[path.size()];
+	// for (int i = 0; i < path.size(); i++) {
+	// valuePath[i] = path.getString(i);
+	// }
+	// String result = RestUtil.wrapper_post(valuePath);
+	// return result;
+	// }
+
+	// public static String wrapper_post(String[] valuePath) {
+	// Repository Repository = RepositoryBase.instance;
+	// JSONObject result = new JSONObject();
+	// try {
+	// Object valueObject = ComputeUtil.getValueObject(Repository, valuePath);
+	// Object valueJSON = ComputeUtil.getValueJSON(valueObject);
+	// if (valueJSON instanceof JSONArray) {
+	// JSONArray array = (JSONArray) valueJSON;
+	// result.put("Content", array);
+	// result.put("Count", array.size());
+	// } else {
+	// result.put("Item", valueJSON);
+	// }
+	// result.put("Result", "success");
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// String message = LogUtil.GetExceptionStackTrace(e);
+	// log.info(message);
+	// result.put("Result", "failure");
+	// result.put("ResultMsg", message);
+	// result.put("ResultCode", 250);
+	// }
+	// return result.toJSONString();
+	// }
 
 	public static String post_filter_and_page(String param) {
 		JSONObject result = new JSONObject();
@@ -320,43 +386,43 @@ public class RestUtil {
 		return result.toJSONString();
 	}
 
-	public static String wrapper_post_filter_and_page(String param) {
-		JSONObject result = new JSONObject();
-		try {
-			JSONObject paramObject = JSON.parseObject(param);
-			List<SceneDataObject> array = filter_and_page(paramObject);
-			if (paramObject.containsKey("count")) {
-			} else {
-				int pageSize = Integer.MAX_VALUE;
-				int pageIndex = 0;
-				if (paramObject.containsKey("page")) {
-					pageSize = (Integer) paramObject.get("pageSize");
-					pageIndex = (Integer) paramObject.get("pageIndex");
-				}
-				SceneDataValue sdv = new SceneDataValue(null, null, null, null);
-				sdv.value_array = new SceneDataSet(false);
-				sdv.value_array.set = new ArrayList<SceneDataObject>();
-				for (int i = pageSize * pageIndex; i < pageSize * (pageIndex + 1) && i < array.size(); i++) {
-					sdv.value_array.set.add(array.get(i));
-				}
-				int read_level = 0;
-				JSONArray content = (JSONArray) sdv.toJSON(true, read_level == 0 ? -1 : read_level);
-
-				result.put("Content", content);
-				result.put("Count", content.size());
-			}
-			result.put("TotalCount", array.size());
-			result.put("Result", "success");
-		} catch (Exception e) {
-			e.printStackTrace();
-			String message = LogUtil.GetExceptionStackTrace(e);
-			log.info(message);
-			result.put("Result", "failure");
-			result.put("ResultMsg", message);
-			result.put("ResultCode", 250);
-		}
-		return result.toJSONString();
-	}
+	// public static String wrapper_post_filter_and_page(String param) {
+	// JSONObject result = new JSONObject();
+	// try {
+	// JSONObject paramObject = JSON.parseObject(param);
+	// List<SceneDataObject> array = filter_and_page(paramObject);
+	// if (paramObject.containsKey("count")) {
+	// } else {
+	// int pageSize = Integer.MAX_VALUE;
+	// int pageIndex = 0;
+	// if (paramObject.containsKey("page")) {
+	// pageSize = (Integer) paramObject.get("pageSize");
+	// pageIndex = (Integer) paramObject.get("pageIndex");
+	// }
+	// SceneDataValue sdv = new SceneDataValue(null, null, null, null);
+	// sdv.value_array = new SceneDataSet(false);
+	// sdv.value_array.set = new ArrayList<SceneDataObject>();
+	// for (int i = pageSize * pageIndex; i < pageSize * (pageIndex + 1) && i < array.size(); i++) {
+	// sdv.value_array.set.add(array.get(i));
+	// }
+	// int read_level = 0;
+	// JSONArray content = (JSONArray) sdv.toJSON(true, read_level == 0 ? -1 : read_level);
+	//
+	// result.put("Content", content);
+	// result.put("Count", content.size());
+	// }
+	// result.put("TotalCount", array.size());
+	// result.put("Result", "success");
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// String message = LogUtil.GetExceptionStackTrace(e);
+	// log.info(message);
+	// result.put("Result", "failure");
+	// result.put("ResultMsg", message);
+	// result.put("ResultCode", 250);
+	// }
+	// return result.toJSONString();
+	// }
 
 	private static List<SceneDataObject> filter_and_page(JSONObject paramObject) throws Exception {
 		Repository Repository = RepositoryBase.instance;
@@ -545,37 +611,37 @@ public class RestUtil {
 		return result.toJSONString();
 	}
 
-	public static String wrapper_control(String param) {
-		Repository Repository = RepositoryBase.instance;
-		JSONObject result = new JSONObject();
-		try {
-			JSONObject paramObject = JSON.parseObject(param);
-			JSONArray path = (JSONArray) paramObject.get("path");
-			JSONObject infoValueSet = (JSONObject) paramObject.get("infoValueSet");
-			String controlReason = (String) paramObject.get("controlReason");
-			String controlRemark = (String) paramObject.get("controlRemark");
-			log.info("path: " + path);
-			log.info("infoValueSet: " + infoValueSet);
-			log.info("controlReason: " + controlReason);
-			log.info("controlRemark: " + controlRemark);
-
-			String[] valuePath = new String[path.size()];
-			for (int i = 0; i < path.size(); i++) {
-				valuePath[i] = path.getString(i);
-			}
-			ControlUtil.set(Repository, path, valuePath, infoValueSet);
-
-			result.put("Result", "success");
-		} catch (Exception e) {
-			e.printStackTrace();
-			String message = LogUtil.GetExceptionStackTrace(e);
-			log.info(message);
-			result.put("Result", "failure");
-			result.put("ResultMsg", message);
-			result.put("ResultCode", 250);
-		}
-		return result.toJSONString();
-	}
+	// public static String wrapper_control(String param) {
+	// Repository Repository = RepositoryBase.instance;
+	// JSONObject result = new JSONObject();
+	// try {
+	// JSONObject paramObject = JSON.parseObject(param);
+	// JSONArray path = (JSONArray) paramObject.get("path");
+	// JSONObject infoValueSet = (JSONObject) paramObject.get("infoValueSet");
+	// String controlReason = (String) paramObject.get("controlReason");
+	// String controlRemark = (String) paramObject.get("controlRemark");
+	// log.info("path: " + path);
+	// log.info("infoValueSet: " + infoValueSet);
+	// log.info("controlReason: " + controlReason);
+	// log.info("controlRemark: " + controlRemark);
+	//
+	// String[] valuePath = new String[path.size()];
+	// for (int i = 0; i < path.size(); i++) {
+	// valuePath[i] = path.getString(i);
+	// }
+	// ControlUtil.set(Repository, path, valuePath, infoValueSet);
+	//
+	// result.put("Result", "success");
+	// } catch (Exception e) {
+	// e.printStackTrace();
+	// String message = LogUtil.GetExceptionStackTrace(e);
+	// log.info(message);
+	// result.put("Result", "failure");
+	// result.put("ResultMsg", message);
+	// result.put("ResultCode", 250);
+	// }
+	// return result.toJSONString();
+	// }
 
 	public static String get_control_value(String param) {
 		JSONObject result = new JSONObject();

+ 18 - 3
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ComputeUtil.java

@@ -328,7 +328,7 @@ public class ComputeUtil {
 						sb.append(ss.propertyName);
 					}
 					log.info("computeOnce:" + sb.toString());
-					if (sb.toString().equals("基础对象-系统-清单-对象类型")) {
+					if (sb.toString().equals("基础对象-设备-设备类型-清单") || sb.toString().equals("基础对象-设备-设备类型-统计-数量")) {
 						System.out.println();
 					}
 				}
@@ -389,6 +389,15 @@ public class ComputeUtil {
 				}
 				sv.value_object = new SceneDataObject(Repository, objectData, sceneProperty.propertyName, null, null, sceneProperty.query_attached,
 						queryResultObject);
+				if (queryResult instanceof SceneDataObject) {
+					queryResultObject = (SceneDataObject) queryResult;
+					sv.value_object.setRowChange(queryResultObject.getRowChange());
+					sv.value_object.setColChange(queryResultObject.getColChange());
+				} else if (queryResult instanceof SceneDataSet) {
+					SceneDataSet queryResultArray = (SceneDataSet) queryResult;
+					sv.value_object.setRowChange(queryResultArray.getRowChange());
+					sv.value_object.setColChange(queryResultArray.getColChange());
+				}
 			} else if (sceneProperty.propertyValueSchema.equals("JSONArray")) {
 				SceneDataSet array = (SceneDataSet) queryResult;
 				if (array.isSingleValueSet) {
@@ -408,17 +417,23 @@ public class ComputeUtil {
 						sv.value_array.set.add(sod);
 					}
 				}
+				sv.value_array.setRowChange(array.getRowChange());
+				sv.value_array.setColChange(array.getColChange());
 			} else {
+				sv.value_prim = new SceneDataPrimitive();
 				// 计算并放入objectData中
 				if (queryResult instanceof SceneDataSet) {
 					SceneDataSet sdvListInner = (SceneDataSet) queryResult;
 					if (sdvListInner.singleValueSet.size() == 0) {
 					} else if (sdvListInner.singleValueSet.size() == 1) {
-						sv.value_prim = sdvListInner.singleValueSet.get(0).value_prim;
+						sv.value_prim.value = sdvListInner.singleValueSet.get(0).value_prim.value;
 					} else {
 					}
+					sv.value_prim.setRowChange(sdvListInner.getRowChange());
 				} else {
-					sv.value_prim = (SceneDataPrimitive) queryResult;
+					SceneDataPrimitive sdp = (SceneDataPrimitive) queryResult;
+					sv.value_prim.value = sdp.value;
+					sv.value_prim.setRowChange(sdp.getRowChange());
 				}
 			}
 			sv.finish = true;

+ 2 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/DeamonUtil.java

@@ -95,8 +95,10 @@ public class DeamonUtil {
 				} else {
 					sdv.value_prim.value = 0;
 				}
+				sdv.value_prim.setRowChange(true);
 			} else if (QueryType.equals("curve")) {
 				sdv.value_array.set = dataList;
+				sdv.value_array.setRowChange(true);
 			}
 		}
 		log.info("deamon finish");

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

@@ -701,7 +701,7 @@ public class QueryUtil {
 							for (SceneDataObject sdb : svInner.value_array.set) {
 								SceneDataObject sod = (SceneDataObject) sdb;
 								if (sod.containsKey(propertyName) && propertyValue.equals(sod.get(propertyName).value_prim.value)) {
-									SceneDataValue svWrapper = new SceneDataValue(null, null, null, null);
+									SceneDataValue svWrapper = new SceneDataValue(null, sod, propertyName, null);
 									svWrapper.value_object = sod;
 									svListInner.add(svWrapper);
 								}
@@ -747,7 +747,7 @@ public class QueryUtil {
 							for (SceneDataObject sdb : svInner.value_array.set) {
 								SceneDataObject sod = (SceneDataObject) sdb;
 								if (sod.containsKey(propertyName) && propertyValue.equals(sod.get(propertyName).value_prim.value)) {
-									SceneDataValue svWrapper = new SceneDataValue(null, null, null, null);
+									SceneDataValue svWrapper = new SceneDataValue(null, sod, propertyName, null);
 									svWrapper.value_object = sod;
 									svListInner.add(svWrapper);
 								}

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

@@ -131,6 +131,13 @@ public class RWDLoadUtil {
 					Repository.id2object.put(id, arrayItem);
 				}
 				SceneDataSet SceneDataSet = new SceneDataSet(false);
+				SceneDataSet infoArray = Repository.infoArrayDic.get(code);
+				for (SceneDataObject infoJSON : infoArray.set) {
+					if (RWDUtil.isRunParam(infoJSON)) {
+						String info_code = (String) infoJSON.get("code").value_prim.value;
+						SceneDataSet.setColChange(info_code);
+					}
+				}
 				SceneDataSet.set = RWDUtil.array2SDOList(array);
 				Repository.objectArrayAll.set.addAll(SceneDataSet.set);
 				for (SceneDataObject sdv : SceneDataSet.set) {
@@ -151,6 +158,9 @@ public class RWDLoadUtil {
 						objectArrayDic.put(objType, new SceneDataSet(false));
 					}
 					objectArrayDic.get(objType).set.addAll(SceneDataSet.set);
+					for (String col : SceneDataSet.getColChange().keySet()) {
+						objectArrayDic.get(objType).setColChange(col);
+					}
 				}
 			}
 			Repository.objectArrayDic = objectArrayDic;

+ 85 - 73
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDUtil.java

@@ -15,7 +15,7 @@ public class RWDUtil {
 		SceneDataObject sod = new SceneDataObject(null, null, null, null, null, null, null);
 		for (String kpKey : arrayItem.keySet()) {
 			Object kpValue = arrayItem.get(kpKey);
-			SceneDataValue svInner = new SceneDataValue(null, null, null, null);
+			SceneDataValue svInner = new SceneDataValue(null, sod, kpKey, null);
 			svInner.value_prim = new SceneDataPrimitive();
 			svInner.value_prim.value = kpValue;
 			svInner.finish = true;
@@ -48,11 +48,9 @@ public class RWDUtil {
 			Object item = array.get(i);
 			JSONObject arrayItem = (JSONObject) item;
 			SceneDataObject sod = new SceneDataObject(null, null, null, null, null, null, null);
-			// SceneDataObject sod = new SceneDataObject(null, null, null, null, null, null);
 			for (String kpKey : arrayItem.keySet()) {
 				Object kpValue = arrayItem.get(kpKey);
 				SceneDataValue svInner = new SceneDataValue(null, sod, kpKey, null);
-				// SceneDataValue svInner = new SceneDataValue(null, null, null);
 				svInner.value_prim = new SceneDataPrimitive();
 				svInner.value_prim.value = kpValue;
 				svInner.finish = true;
@@ -75,48 +73,95 @@ public class RWDUtil {
 		return result;
 	}
 
+	public static boolean isRunParam(SceneDataObject infoJSON) {
+		String firstTag = infoJSON.get("firstTag") == null ? null : (String) infoJSON.get("firstTag").value_prim.value;
+		String secondTag = infoJSON.get("secondTag") == null ? null : (String) infoJSON.get("secondTag").value_prim.value;
+		String category = (String) infoJSON.get("category").value_prim.value;
+		if (category.equals("SEQUENTIAL")) {
+			if (firstTag != null && (firstTag.contains("运行参数"))) {
+				return true;
+			}
+			if (secondTag != null && (secondTag.contains("运行参数"))) {
+				return true;
+			}
+			// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
+			// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
+			// if (firstTag != null && firstTag.Contains("运行参数") || secondTag != null && secondTag.Contains("运行参数"))
+			// {
+			// return true;
+			// }
+			// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
+			// {
+			// }
+		} else if (category.equals("GRADATION")) {
+			if (firstTag != null && (firstTag.contains("报警消息"))) {
+				return true;
+			}
+			if (secondTag != null && (secondTag.contains("报警消息"))) {
+				return true;
+			}
+			// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
+			// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
+			// if (firstTag != null && firstTag.Contains("报警消息") || secondTag != null && secondTag.Contains("报警消息"))
+			// {
+			// return true;
+			// }
+			// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
+			// {
+			// }
+		}
+		return false;
+	}
+
 	public static boolean isRunParam(List<SceneDataObject> infoArray, String code) {
 		for (int i = 0; i < infoArray.size(); i++) {
 			SceneDataObject infoJSON = infoArray.get(i);
 			if (!infoJSON.get("code").value_prim.value.equals(code)) {
 				continue;
 			}
-			String firstTag = infoJSON.get("firstTag") == null ? null : (String) infoJSON.get("firstTag").value_prim.value;
-			String secondTag = infoJSON.get("secondTag") == null ? null : (String) infoJSON.get("secondTag").value_prim.value;
-			String category = (String) infoJSON.get("category").value_prim.value;
-			if (category.equals("SEQUENTIAL")) {
-				if (firstTag != null && (firstTag.contains("运行参数"))) {
-					return true;
-				}
-				if (secondTag != null && (secondTag.contains("运行参数"))) {
-					return true;
-				}
-				// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
-				// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
-				// if (firstTag != null && firstTag.Contains("运行参数") || secondTag != null && secondTag.Contains("运行参数"))
-				// {
-				// return true;
-				// }
-				// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
-				// {
-				// }
-			} else if (category.equals("GRADATION")) {
-				if (firstTag != null && (firstTag.contains("报警消息"))) {
-					return true;
-				}
-				if (secondTag != null && (secondTag.contains("报警消息"))) {
-					return true;
-				}
-				// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
-				// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
-				// if (firstTag != null && firstTag.Contains("报警消息") || secondTag != null && secondTag.Contains("报警消息"))
-				// {
-				// return true;
-				// }
-				// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
-				// {
-				// }
+			if (isRunParam(infoJSON)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public static boolean isSetParam(SceneDataObject infoJSON) {
+		String firstTag = infoJSON.get("firstTag") == null ? null : (String) infoJSON.get("firstTag").value_prim.value;
+		String secondTag = infoJSON.get("secondTag") == null ? null : (String) infoJSON.get("secondTag").value_prim.value;
+		String category = (String) infoJSON.get("category").value_prim.value;
+		if (category.equals("SEQUENTIAL")) {
+			if (firstTag != null && (firstTag.contains("设定参数"))) {
+				return true;
+			}
+			if (secondTag != null && (secondTag.contains("设定参数"))) {
+				return true;
+			}
+			// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
+			// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
+			// if (firstTag != null && firstTag.Contains("运行参数") || secondTag != null && secondTag.Contains("运行参数"))
+			// {
+			// return true;
+			// }
+			// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
+			// {
+			// }
+		} else if (category.equals("GRADATION")) {
+			if (firstTag != null && (firstTag.contains("设定参数"))) {
+				return true;
+			}
+			if (secondTag != null && (secondTag.contains("设定参数"))) {
+				return true;
 			}
+			// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
+			// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
+			// if (firstTag != null && firstTag.Contains("报警消息") || secondTag != null && secondTag.Contains("报警消息"))
+			// {
+			// return true;
+			// }
+			// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
+			// {
+			// }
 		}
 		return false;
 	}
@@ -127,41 +172,8 @@ public class RWDUtil {
 			if (!infoJSON.get("code").value_prim.value.equals(code)) {
 				continue;
 			}
-			String firstTag = infoJSON.get("firstTag") == null ? null : (String) infoJSON.get("firstTag").value_prim.value;
-			String secondTag = infoJSON.get("secondTag") == null ? null : (String) infoJSON.get("secondTag").value_prim.value;
-			String category = (String) infoJSON.get("category").value_prim.value;
-			if (category.equals("SEQUENTIAL")) {
-				if (firstTag != null && (firstTag.contains("设定参数"))) {
-					return true;
-				}
-				if (secondTag != null && (secondTag.contains("设定参数"))) {
-					return true;
-				}
-				// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
-				// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
-				// if (firstTag != null && firstTag.Contains("运行参数") || secondTag != null && secondTag.Contains("运行参数"))
-				// {
-				// return true;
-				// }
-				// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
-				// {
-				// }
-			} else if (category.equals("GRADATION")) {
-				if (firstTag != null && (firstTag.contains("设定参数"))) {
-					return true;
-				}
-				if (secondTag != null && (secondTag.contains("设定参数"))) {
-					return true;
-				}
-				// String firstTag = (infoJSON["firstTag"] as JValue).Value as String;
-				// String secondTag = (infoJSON["secondTag"] as JValue).Value as String;
-				// if (firstTag != null && firstTag.Contains("报警消息") || secondTag != null && secondTag.Contains("报警消息"))
-				// {
-				// return true;
-				// }
-				// else if (firstTag != null && firstTag.Contains("设定参数") || secondTag != null && secondTag.Contains("设定参数"))
-				// {
-				// }
+			if (isSetParam(infoJSON)) {
+				return true;
 			}
 		}
 		return false;