Browse Source

别名反写到信息点上

menglu 3 years ago
parent
commit
a10d48ce49

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

@@ -18,7 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 
 @Component
 @Slf4j
-public class AlarmDurationThread extends Thread {
+public class RWDAlarmDurationThread extends Thread {
 	@PostConstruct
 	public void init() {
 		new Thread(this).start();

+ 54 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDRepositoryUtil.java

@@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.persagy.ibms.core.data.SceneDataObject;
+import com.persagy.ibms.core.data.SceneDataSet;
 import com.persagy.ibms.core.data.SceneObject;
 import com.persagy.ibms.core.data.SceneProperty;
 import com.persagy.ibms.core.util.ComputeUtil;
@@ -91,6 +92,12 @@ public class RWDRepositoryUtil {
 			} catch (Exception e) {
 				log.error(e.getMessage(), e);
 			}
+
+			try {
+				process_info_alias(Repository);
+			} catch (Exception e) {
+				log.error(e.getMessage(), e);
+			}
 		}
 		Repository.sceneObject = sceneObject;
 
@@ -137,6 +144,53 @@ public class RWDRepositoryUtil {
 		Repository.property2SDV.clear();
 	}
 
+	private static void process_info_alias(RepositoryImpl Repository) {
+		Map<String, Map<String, String>> glfw2classCode = new ConcurrentHashMap<String, Map<String, String>>();
+		for (SceneDataObject sdo : Repository.ZKTClassArray.set) {
+			String ibmsSceneCode = (String) sdo.get("ibmsSceneCode").value_prim.value;
+			String ibmsClassCode = (String) sdo.get("ibmsClassCode").value_prim.value;
+			String code = (String) sdo.get("code").value_prim.value;
+			glfw2classCode.putIfAbsent(ibmsSceneCode, new ConcurrentHashMap<String, String>());
+			glfw2classCode.get(ibmsSceneCode).putIfAbsent(ibmsClassCode, code);
+		}
+		Map<String, Map<String, String>> class2info2alias = new ConcurrentHashMap<String, Map<String, String>>();
+		for (SceneDataObject sdo : Repository.InfoPointListArray.set) {
+			boolean isVisible = (Boolean) sdo.get("isVisible").value_prim.value;
+			if (!isVisible) {
+				continue;
+			}
+			String infoAlias = (String) sdo.get("infoAlias").value_prim.value;
+			if (infoAlias == null || infoAlias.length() == 0 || infoAlias.trim().length() == 0) {
+				continue;
+			}
+
+			String ibmsSceneCode = (String) sdo.get("ibmsSceneCode").value_prim.value;
+			String ibmsClassCode = (String) sdo.get("ibmsClassCode").value_prim.value;
+			String infoCode = (String) sdo.get("infoCode").value_prim.value;
+			if (!glfw2classCode.containsKey(ibmsSceneCode)) {
+				continue;
+			}
+			if (!glfw2classCode.get(ibmsSceneCode).containsKey(ibmsClassCode)) {
+				continue;
+			}
+			String classCode = glfw2classCode.get(ibmsSceneCode).get(ibmsClassCode);
+			class2info2alias.putIfAbsent(classCode, new ConcurrentHashMap<String, String>());
+			class2info2alias.get(classCode).putIfAbsent(infoCode, infoAlias);
+		}
+		for (String classCode : class2info2alias.keySet()) {
+			Map<String, String> info2alias = class2info2alias.get(classCode);
+			SceneDataSet infoArray = Repository.infoArrayDic.get(classCode);
+			for (SceneDataObject sdo : infoArray.set) {
+				String infoCode = (String) sdo.get("code").value_prim.value;
+				if (info2alias.containsKey(infoCode)) {
+					String infoAlias = info2alias.get(infoCode);
+					sdo.get("name").value_prim.value = infoAlias;
+					sdo.get("aliasName").value_prim.value = infoAlias;
+				}
+			}
+		}
+	}
+
 	// 根据信息点是否显示过滤设备类型
 	private static void filter_by_info_point_new(RepositoryImpl Repository, SceneObject sceneObject) throws Exception {
 		Map<String, String> SceneName2Code = new ConcurrentHashMap<String, String>();