Browse Source

模拟编组数据

menglu 3 years ago
parent
commit
a9a31b99ff

+ 19 - 3
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestApi.java

@@ -1,12 +1,22 @@
 package com.persagy.ibms.data.sdk.service.rest;
 
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.persagy.ibms.data.sdk.util.ToolUtil;
 import com.persagy.ibms.data.sdk.websocket.AlarmWebSocketClient;
 import com.persagy.ibms.data.sdk.websocket.IOTWebSocketClient;
+
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
 
 @ApiOperation(value = "采集/控制接口")
 @RestController
@@ -57,6 +67,12 @@ public class RestApi {
 		return result;
 	}
 
+	@PostMapping(path = { "/tool" }, produces = "application/json;charset=UTF-8")
+	public String tool(@RequestBody String param) {
+		String result = ToolUtil.tool(param);
+		return result;
+	}
+
 	@PostMapping(path = { "/desc" }, produces = "application/json;charset=UTF-8")
 	public String desc(@RequestBody String param) {
 		String result = RestUtil.desc(param);

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

@@ -8,6 +8,6 @@ public class BKDRHash {
 		for (int i = 0; i != str.length(); ++i) {
 			hash = seed * hash + str.charAt(i);
 		}
-		return hash;
+		return hash >= 00 ? hash : 0 - hash;
 	}
 }

+ 143 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/ToolUtil.java

@@ -0,0 +1,143 @@
+package com.persagy.ibms.data.sdk.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.persagy.ibms.data.sdk.service.rest.RestUtil;
+
+public class ToolUtil {
+
+	public static String tool(String param) {
+		String result = null;
+		JSONObject paramObject = JSON.parseObject(param);
+		String type = (String) paramObject.get("type");
+		if (type.equals("NightscapeLighting")) {
+			result = NightscapeLighting();
+		}
+		return result;
+	}
+
+	private static String NightscapeLighting() {
+		JSONArray kongzhi = getArray_relation("MechCtrl", "EqCtrl");
+		Map<String, String> SELTCC2SELTCU = new HashMap<String, String>();
+		for (int i = 0; i < kongzhi.size(); i++) {
+			JSONObject item = (JSONObject) kongzhi.get(i);
+			String objFrom = item.getString("objFrom");
+			String objTo = item.getString("objTo");
+			SELTCC2SELTCU.put(objTo, objFrom);
+		}
+
+		JSONArray gongdian = getArray_relation("MechPower", "EqNormal");
+		Map<String, String> SELTCU2SETDLS = new HashMap<String, String>();
+		for (int i = 0; i < gongdian.size(); i++) {
+			JSONObject item = (JSONObject) gongdian.get(i);
+			String objFrom = item.getString("objFrom");
+			String objTo = item.getString("objTo");
+			SELTCU2SETDLS.put(objTo, objFrom);
+		}
+
+		JSONArray suozai = getArray_relation("MechInArch", "Eq2Sp");
+		Map<String, String> SETDLS2GeneralZone = new HashMap<String, String>();
+		for (int i = 0; i < suozai.size(); i++) {
+			JSONObject item = (JSONObject) suozai.get(i);
+			String objFrom = item.getString("objFrom");
+			String objTo = item.getString("objTo");
+			SETDLS2GeneralZone.put(objFrom, objTo);
+		}
+
+		String[] levels = { "楼体照明", "楼体照明", "景观照明", "景观照明" };
+		String[] types = { "A", "B", "A", "B" };
+		JSONArray result = new JSONArray();
+		for (String SELTCC : SELTCC2SELTCU.keySet()) {
+			String SELTCU = SELTCC2SELTCU.get(SELTCC);
+			String SETDLS = null;
+			if (SELTCU != null && SELTCU2SETDLS.containsKey(SELTCU)) {
+				SETDLS = SELTCU2SETDLS.get(SELTCU);
+			}
+			String GeneralZone = null;
+			if (SETDLS != null && SETDLS2GeneralZone.containsKey(SETDLS)) {
+				GeneralZone = SETDLS2GeneralZone.get(SETDLS);
+			}
+			int index = BKDRHash.getHashCode(SELTCC) % levels.length;
+			JSONObject item = new JSONObject();
+			item.put("回路编号", SELTCC);
+			item.put("模块编号", SELTCU);
+			item.put("配电箱编号", SETDLS);
+			item.put("电井编号", GeneralZone);
+			item.put("类型", types[index]);
+			item.put("二级编组", levels[index] + "-" + types[index]);
+			item.put("一级编组", levels[index]);
+			result.add(item);
+		}
+
+		// JSONArray huilu = getArray_object("equipment", "SELTCC");
+		// JSONArray mokuai = getArray_object("equipment", "SELTCU");
+		// JSONArray peidianxiang = getArray_object("equipment", "SETDLS");
+		// JSONArray dianjing = getArray_object("space", "GeneralZone");
+
+		return FastJsonUtil.toFormatString(result);
+	}
+
+	public static JSONArray getArray_relation(String graphCode, String relCode) {
+		JSONObject Target = generateTarget_relation(graphCode, relCode);
+		JSONObject param = new JSONObject();
+		param.put("Target", Target);
+		param.put("Criteria", new JSONObject());
+		param.put("QueryType", "select");
+		String queryResult = RestUtil.query(param.toJSONString());
+		JSONArray resultArray = JSON.parseArray(queryResult);
+		return resultArray;
+	}
+
+	public static JSONArray getArray_object(String objType, String classCode) {
+		JSONObject Target = generateTarget_object(objType, classCode);
+		JSONArray ReturnColumns = generateReturnColumns();
+		JSONObject Criteria = generateCriteria();
+		JSONObject param = new JSONObject();
+		param.put("Target", Target);
+		param.put("ReturnColumns", ReturnColumns);
+		param.put("Criteria", Criteria);
+		param.put("QueryType", "select");
+		String queryResult = RestUtil.query(param.toJSONString());
+		JSONArray resultArray = JSON.parseArray(queryResult);
+		return resultArray;
+	}
+
+	private static JSONObject generateCriteria() {
+		JSONObject result = new JSONObject();
+		result.put("valid", 1L);
+		return result;
+	}
+
+	private static JSONArray generateReturnColumns() {
+		JSONArray result = new JSONArray();
+		result.add("id");
+		result.add("localId");
+		result.add("localName");
+		result.add("classCode");
+		return result;
+	}
+
+	private static JSONObject generateTarget_object(String objType, String classCode) {
+		JSONObject result = new JSONObject();
+		result.put("Source", "rwd");
+		result.put("rwd", "object");
+		result.put("objType", objType);
+		if (classCode != null) {
+			result.put("classCode", classCode);
+		}
+		return result;
+	}
+
+	private static JSONObject generateTarget_relation(String graphCode, String relCode) {
+		JSONObject result = new JSONObject();
+		result.put("Source", "rwd");
+		result.put("rwd", "relation");
+		result.put("graphCode", graphCode);
+		result.put("relCode", relCode);
+		return result;
+	}
+}