From 1cf91e355038837f30f2d727507b2229263d7de7 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 27 一月 2026 17:49:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/http/service/impl/RealTimeEnergyConsumptionServiceImpl.java | 130 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 130 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/http/service/impl/RealTimeEnergyConsumptionServiceImpl.java b/src/main/java/com/ruoyi/http/service/impl/RealTimeEnergyConsumptionServiceImpl.java
new file mode 100644
index 0000000..6b10ba2
--- /dev/null
+++ b/src/main/java/com/ruoyi/http/service/impl/RealTimeEnergyConsumptionServiceImpl.java
@@ -0,0 +1,130 @@
+package com.ruoyi.http.service.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.http.service.RealTimeEnergyConsumptionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :yys
+ * @date : 2026/1/27 16:02
+ */
+@Service
+@Slf4j
+public class RealTimeEnergyConsumptionServiceImpl implements RealTimeEnergyConsumptionService {
+
+ private static final String URL = "https://new.e-elitech.cn/api/data-api";
+
+ private static final String TOKEN_URL = "/elitechAccess/getToken";
+
+ private static final String REAL_TIME_URL = "/elitechAccess/v2/getRealTimeData"; //鑾峰彇璁惧瀹炴椂鏁版嵁
+
+ private static final String KET_ID = "75804708";
+
+ private static final String KEY_SECRET = "xTUGToozKpYgUPqTsZzB";
+
+ private static final String USER_NAME = "鐢ㄦ埛30773662";
+
+ private static final String PASS_WORD = "y17775163675";
+
+ private static final String DEVICE_GUID = "90444196515214284663";
+
+
+ /**
+ * 鏍规嵁paramCode鎻愬彇鎺㈠ご鍙傛暟
+ * @param paramList 璁惧鍙傛暟鏁扮粍
+ * @param targetCode 鐩爣鎺㈠ご缂栫爜
+ * @return 鎺㈠ご鍙傛暟瀵硅薄锛堝寘鍚玭ame/value/unit锛�
+ */
+ private static JSONObject getProbeParam(JSONArray paramList, String targetCode) {
+ for (int i = 0; i < paramList.size(); i++) {
+ JSONObject paramObj = paramList.getJSONObject(i);
+ if (targetCode.equals(paramObj.getString("paramCode"))) {
+ return paramObj;
+ }
+ }
+ return new JSONObject(); // 鏈尮閰嶅埌杩斿洖绌哄璞★紝閬垮厤绌烘寚閽�
+ }
+
+ /**
+ * 瀹炴椂鑾峰彇娓╂箍搴︼紝浜屾哀鍖栫⒊鏁版嵁
+ */
+ public static void main(String[] args) {
+ String realTimeData = getRealTimeData(getToken());
+ Map<String, Object> map = JSON.parseObject(realTimeData, Map.class);
+ if(map.get("code").equals(0)){
+ // 1. 瑙f瀽澶栧眰data涓篔SON鏁扮粍锛堟帴鍙h繑鍥炵殑璁惧鍒楄〃锛�
+ JSONArray deviceList = JSON.parseArray(map.get("data").toString());
+ // 2. 閬嶅巻璁惧鍒楄〃锛堟澶勪粎鍙栫涓�涓澶囷紝鑻ユ湁澶氫釜璁惧鍙惊鐜鐞嗭級
+ if (!deviceList.isEmpty()) {
+ JSONObject deviceObj = deviceList.getJSONObject(0);
+ // 3. 瑙f瀽璁惧鍐呯殑鍙傛暟鏁扮粍锛堟墍鏈塸aramCode瀵瑰簲鐨勫弬鏁帮級
+ JSONArray paramList = deviceObj.getJSONArray("data");
+
+ // 4. 瀹氫箟鐩爣鎺㈠ご鐨刾aramCode锛屾寜闇�鎵╁睍
+ String[] targetCodes = {"0100", "0110", "0120", "0130"};
+ for (String code : targetCodes) {
+ // 5. 閬嶅巻鍙傛暟鏁扮粍锛屽尮閰嶇洰鏍噋aramCode
+ for (int i = 0; i < paramList.size(); i++) {
+ JSONObject paramObj = paramList.getJSONObject(i);
+ String currentCode = paramObj.getString("paramCode");
+ if (code.equals(currentCode)) {
+ // 6. 鎻愬彇鏍稿績瀛楁锛堝�笺�佸崟浣嶃�佹帰澶村悕绉帮級
+ String paramName = paramObj.getString("paramName"); // 鎺㈠ご1/鎺㈠ご2...
+ String value = paramObj.getString("value"); // 鏁板�硷紙345.80/24.90...锛�
+ String unitCode = paramObj.getString("unitCode"); // 鍗曚綅锛圠ux/鈩�/%RH/ppm锛�
+
+ // 7. 涓氬姟澶勭悊锛氭墦鍗�/璧嬪��/瀛樺偍绛夛紙鎸夐渶淇敼锛�
+ System.out.println(paramName + "锛�" + value + " " + unitCode);
+ // 鍖归厤鍒板悗鐩存帴璺冲嚭鍐呭眰寰幆锛屾彁鍗囨晥鐜�
+ break;
+ }
+ }
+ }
+ }
+ }
+ System.out.println();
+ }
+
+ public static String getToken(){
+ Map<String, String> param = new HashMap<>();
+ param.put("keyId", KET_ID);
+ param.put("keySecret", KEY_SECRET);
+ param.put("userName", USER_NAME);
+ param.put("password", PASS_WORD);
+ log.info("璇锋眰鍙傛暟锛歿}", JSON.toJSONString( param));
+ String result = HttpUtils.sendPostJson(URL + TOKEN_URL, JSON.toJSONString(param));
+ log.info("杩斿洖缁撴灉锛歿}", result);
+ Map<String, Object> map = JSON.parseObject(result, Map.class);
+ if (map.get("code").equals(0)) {
+ Object token = map.get("data");
+ log.info("token:{}", token);
+ return token.toString();
+ }
+ return result;
+ }
+
+ public static String getRealTimeData(String token){
+ Map<String, Object> param = new HashMap<>();
+ param.put("keyId", KET_ID);
+ param.put("keySecret", KEY_SECRET);
+ param.put("deviceGuids", Collections.singletonList(DEVICE_GUID));
+ log.info("璇锋眰鍙傛暟锛歿}", JSON.toJSONString( param));
+ String result = HttpUtils.sendPostJson(URL + REAL_TIME_URL, JSON.toJSONString(param),token);
+ log.info("杩斿洖缁撴灉锛歿}", result);
+ return result;
+ }
+
+
+
+
+
+}
--
Gitblit v1.9.3