From f4d592f3626f94117d8a4eb22176a28290931980 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 26 五月 2026 18:51:54 +0800
Subject: [PATCH] 新增智能电表、空调管理
---
server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java | 93 ++++++++++++++++++++++++++++++++++------------
1 files changed, 69 insertions(+), 24 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java
index 9e14c73..065155a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java
@@ -155,8 +155,8 @@
}
public static void main(String[] args) {
QueryDataRequest param = new QueryDataRequest();
- param.setStart_time("2026-05-19 10:00::00");
- param.setEnd_time("2026-05-19 12:24:25");
+ param.setStart_time("2026-05-25 10:00::00");
+ param.setEnd_time("2026-05-25 14:24:25");
param.setLimit(1);
param.setFunctionids("253");
param.setOffset(0);
@@ -178,10 +178,7 @@
try {
String request_content = JSON.toJSONString(param);
String r = requestAsync(url, request_content);
- TypeReference typeReference =
- new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
- ElectronicBaseResponse result = JSONObject.parseObject(r, typeReference.getType());
- return result;
+ return parseAsyncMeterResponse(r);
}catch (Exception e){
log.error("鐢佃〃==============寮�鎴�",e);
}
@@ -199,10 +196,7 @@
try {
String request_content = JSON.toJSONString(param);
String r = requestAsync(url, request_content);
- TypeReference typeReference =
- new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
- ElectronicBaseResponse result = JSONObject.parseObject(r, typeReference.getType());
- return result;
+ return parseAsyncMeterResponse(r);
}catch (Exception e){
log.error("鐢佃〃==============寮�鎴�",e);
}
@@ -220,10 +214,7 @@
try {
String request_content = JSON.toJSONString(param);
String r = requestAsync(url, request_content);
- TypeReference typeReference =
- new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
- ElectronicBaseResponse result = JSONObject.parseObject(r, typeReference.getType());
- return result;
+ return parseAsyncMeterResponse(r);
}catch (Exception e){
log.error("鐢佃〃==============寮�鎴�",e);
}
@@ -241,17 +232,14 @@
try {
String request_content = JSON.toJSONString(param);
String r = requestAsync(url, request_content);
- TypeReference typeReference =
- new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
- ElectronicBaseResponse result = JSONObject.parseObject(r, typeReference.getType());
- return result;
+ return parseAsyncMeterResponse(r);
}catch (Exception e){
log.error("鐢佃〃==============鎷夊悎闂�",e);
}
return null;
}
/**
- * 鐢佃〃_鎷夊悎闂�
+ * 鐢佃〃_绔嬪嵆鎶勮〃
*/
public static ElectronicBaseResponse eleRead(List<EleReadRequest> param) {
if(param ==null || param.size()==0){
@@ -262,12 +250,9 @@
try {
String request_content = JSON.toJSONString(param);
String r = requestAsync(url, request_content);
- TypeReference typeReference =
- new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
- ElectronicBaseResponse result = JSONObject.parseObject(r, typeReference.getType());
- return result;
+ return parseAsyncMeterResponse(r);
}catch (Exception e){
- log.error("鐢佃〃==============鎷夊悎闂�",e);
+ log.error("鐢佃〃==============绔嬪嵆鎶勮〃",e);
}
return null;
}
@@ -363,6 +348,14 @@
}
return null;
}
+
+ /**
+ * 鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛
+ */
+ public static ElectronicDataResponse queryDataRequest() {
+ return queryDataRequest(null);
+ }
+
/**
* 鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛
*/
@@ -474,6 +467,58 @@
}
// 鎵撳嵃鍝嶅簲鍐呭
+ /**
+ * 瑙f瀽 Api_v2 寮傛鐢佃〃鎿嶄綔鍝嶅簲銆�
+ * 骞冲彴 response_content 鍙兘鏄� JSON 鏁扮粍锛屼篃鍙兘鏄瓧绗︿覆褰㈠紡鐨� JSON 鏁扮粍銆�
+ */
+ public static ElectronicBaseResponse parseAsyncMeterResponse(String r) {
+ if (StringUtils.isBlank(r)) {
+ return null;
+ }
+ try {
+ JSONObject jsonObject = JSON.parseObject(r);
+ if (jsonObject == null) {
+ return null;
+ }
+ ElectronicBaseResponse<List<MeterDealResponse>> result = new ElectronicBaseResponse<>();
+ result.setStatus(jsonObject.getString("status"));
+ result.setTimestamp(jsonObject.getString("timestamp"));
+ result.setError_msg(jsonObject.getString("error_msg"));
+ result.setSign(jsonObject.getString("sign"));
+ result.setResponse_content(parseResponseContentList(jsonObject.get("response_content"), MeterDealResponse.class));
+ return result;
+ } catch (Exception e) {
+ log.error("parse async meter response failed, raw={}", r, e);
+ return null;
+ }
+ }
+
+ private static <T> List<T> parseResponseContentList(Object content, Class<T> clazz) {
+ if (content == null) {
+ return null;
+ }
+ if (content instanceof JSONArray) {
+ return ((JSONArray) content).toJavaList(clazz);
+ }
+ if (content instanceof JSONObject) {
+ T one = ((JSONObject) content).toJavaObject(clazz);
+ return one != null ? Collections.singletonList(one) : null;
+ }
+ String text = String.valueOf(content);
+ if (StringUtils.isBlank(text) || "null".equalsIgnoreCase(text.trim())) {
+ return null;
+ }
+ text = text.trim();
+ if (text.startsWith("[")) {
+ return JSON.parseArray(text, clazz);
+ }
+ if (text.startsWith("{")) {
+ T one = JSON.parseObject(text, clazz);
+ return one != null ? Collections.singletonList(one) : null;
+ }
+ return null;
+ }
+
public static void printResponse(String response) {
JSONObject jsonObject = JSON.parseObject(response);
--
Gitblit v1.9.3