Browse Source

增加history_fjd_query_batch

menglu 3 years ago
parent
commit
0f829e22fc

+ 1 - 1
ibms-data-sdk/pom.xml

@@ -211,7 +211,7 @@
 		<dependency>
 			<groupId>com.persagy</groupId>
 			<artifactId>sailfish</artifactId>
-			<version>0.0.12</version>
+			<version>0.0.13</version>
 		</dependency>
 	</dependencies>
 

+ 6 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestApi.java

@@ -174,6 +174,12 @@ public class RestApi {
 		return result;
 	}
 
+	@PostMapping(path = { "/history_fjd_query_batch", "/zkt-sdk/history_fjd_query_batch" }, produces = "application/json;charset=UTF-8")
+	public String fjd_query_history_batch(@RequestBody String param, HttpServletRequest request) {
+		String result = RestUtil.fjd_query_history_batch(param);
+		return result;
+	}
+
 	@PostMapping(path = { "/path_array_history_fjd_query", "/zkt-sdk/path_array_history_fjd_query" }, produces = "application/json;charset=UTF-8")
 	public String path_array_history_fjd_query(@RequestBody String param, HttpServletRequest request) {
 		String result = RestUtil.path_array_history_fjd_query(param);

+ 49 - 6
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/service/rest/RestUtil.java

@@ -467,7 +467,7 @@ public class RestUtil {
 		int index_ = pointString.lastIndexOf('-');
 		String meter = pointString.substring(0, index_);
 		int funcid = Integer.parseInt(pointString.substring(index_ + 1));
-		String result = fjd_query_history(meter, funcid, sdf.format(time_from), sdf.format(time_to));
+		String result = fjd_query_history(meter, funcid, null, "15min", sdf.format(time_from), sdf.format(time_to));
 		return result;
 	}
 
@@ -480,16 +480,57 @@ public class RestUtil {
 		int index_ = pointString.lastIndexOf('-');
 		String meter = pointString.substring(0, index_);
 		int funcid = Integer.parseInt(pointString.substring(index_ + 1));
+		String data_type = parseObject.getString("data_type");
+		String time_period = parseObject.getString("time_period");
+		if (time_period == null) {
+			time_period = "15min";
+		}
 		String time_from = parseObject.getString("time_from");
 		String time_to = parseObject.getString("time_to");
-		String result = fjd_query_history(meter, funcid, time_from, time_to);
+		String result = fjd_query_history(meter, funcid, data_type, time_period, time_from, time_to);
 		return result;
 	}
 
-	public static String fjd_query_history(String meter, int funcid, String time_from, String time_to) {
+	public static String fjd_query_history_batch(String param) {
+		JSONObject result = new JSONObject();
+		try {
+			RepositoryImpl Repository = RepositoryContainer.instance;
+			JSONArray parseArray = JSON.parseArray(param);
+			for (int i = 0; i < parseArray.size(); i++) {
+				JSONObject parseObject = parseArray.getJSONObject(i);
+				String objId = parseObject.getString("objId");
+				String code = parseObject.getString("code");
+				String pointString = Repository.info2point.get(objId).get(code);
+				int index_ = pointString.lastIndexOf('-');
+				String meter = pointString.substring(0, index_);
+				int funcid = Integer.parseInt(pointString.substring(index_ + 1));
+				String data_type = parseObject.getString("data_type");
+				String time_period = parseObject.getString("time_period");
+				if (time_period == null) {
+					time_period = "15min";
+				}
+				String time_from = parseObject.getString("time_from");
+				String time_to = parseObject.getString("time_to");
+				JSONArray dataArray = fjd_query_inner(meter, funcid, data_type, time_period, time_from, time_to);
+				parseObject.put("datas", dataArray);
+			}
+			result.put("Content", parseArray);
+			result.put("Result", "success");
+		} catch (Exception e) {
+			e.printStackTrace();
+			String message = LogUtil.GetExceptionStackTrace(e);
+			log.error(message);
+			result.put("Result", "failure");
+			result.put("ResultMsg", message);
+			result.put("ResultCode", 250);
+		}
+		return result.toJSONString();
+	}
+
+	public static String fjd_query_history(String meter, int funcid, String data_type, String time_period, String time_from, String time_to) {
 		JSONObject result = new JSONObject();
 		try {
-			JSONArray datas = fjd_query_inner(meter, funcid, time_from, time_to);
+			JSONArray datas = fjd_query_inner(meter, funcid, data_type, time_period, time_from, time_to);
 			result.put("Content", datas);
 			result.put("Result", "success");
 		} catch (Exception e) {
@@ -614,11 +655,13 @@ public class RestUtil {
 		return result_points;
 	}
 
-	private static JSONArray fjd_query_inner(String meter, int funcid, String time_from, String time_to) throws Exception {
+	private static JSONArray fjd_query_inner(String meter, int funcid, String data_type, String time_period, String time_from, String time_to)
+			throws Exception {
 		JSONObject pointObject = new JSONObject();
 		pointObject.put("meter", meter);
 		pointObject.put("funcid", funcid);
-		pointObject.put("time_period", "15min");
+		pointObject.put("data_type", data_type);
+		pointObject.put("time_period", time_period);
 		pointObject.put("time_from", time_from);
 		pointObject.put("time_to", time_to);
 		JSONArray points = new JSONArray();