From de1d6cf24efebced674fbaa46123648bf50bd74a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 06 五月 2026 14:08:02 +0800
Subject: [PATCH] feat(device): 添加物联网设备支持功能

---
 src/main/java/com/ruoyi/http/service/controller/JclyController.java |   78 +++++++++++++++++++--------------------
 1 files changed, 38 insertions(+), 40 deletions(-)

diff --git a/src/main/java/com/ruoyi/http/service/controller/JclyController.java b/src/main/java/com/ruoyi/http/service/controller/JclyController.java
index 873c86b..00bbb74 100644
--- a/src/main/java/com/ruoyi/http/service/controller/JclyController.java
+++ b/src/main/java/com/ruoyi/http/service/controller/JclyController.java
@@ -1,5 +1,9 @@
 package com.ruoyi.http.service.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.device.service.IDeviceLedgerService;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.http.service.impl.RealTimeEnergyConsumptionServiceImpl;
@@ -10,8 +14,11 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.naming.ldap.PagedResultsControl;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/iot")
@@ -21,49 +28,40 @@
     @Autowired
     private RealTimeEnergyConsumptionServiceImpl realTimeEnergyConsumptionService;
 
-    private final String DEVICE_GUID = "90444196515214284663";
-
-    private final String DEVICE_GUID_2 = "90187099059463151919";
-
-    private final String DEVICE_GUID_3 = "90299548548536240693";
-
-    private final String DEVICE_GUID_4 = "90558670647417764794";
-
-    private final String DEVICE_GUID_5 = "90802100373808917949";
-
-    private final String DEVICE_GUID_6 = "90878497978270816672";
-
-    private final String DEVICE_GUID_7 = "90140305546502568592";
-
-    private final String DEVICE_GUID_8 = "90169534185157152878";
-
-    private final String DEVICE_GUID_9 = "90276104525436465283";
-
-    private final String DEVICE_GUID_10 = "90543538108119559625";
-
-    private final String DEVICE_GUID_11 = "90689981408895835872";
-
-    private final String DEVICE_GUID_12 = "90943795336343088068";
+    @Autowired
+    private IDeviceLedgerService deviceLedgerService;
 
     /**
      * 瀹炴椂鑾峰彇娓╂箍搴︼紝浜屾哀鍖栫⒊鏁版嵁
      */
     @GetMapping("/getRealData")
     public AjaxResult getRealData() {
-        List<Map<String,String>> maps = realTimeEnergyConsumptionService
-                .getRealData(Arrays.
-                        asList(DEVICE_GUID,
-                                DEVICE_GUID_2,
-                                DEVICE_GUID_3,
-                                DEVICE_GUID_4,
-                                DEVICE_GUID_5,
-                                DEVICE_GUID_6,
-                                DEVICE_GUID_7,
-                                DEVICE_GUID_8,
-                                DEVICE_GUID_9,
-                                DEVICE_GUID_10,
-                                DEVICE_GUID_11,
-                                DEVICE_GUID_12));
+        List<DeviceLedger> iotDevices = deviceLedgerService.list(new LambdaQueryWrapper<DeviceLedger>()
+                .eq(DeviceLedger::getIsIotDevice, 1)
+                .isNotNull(DeviceLedger::getExternalCode)
+                .ne(DeviceLedger::getExternalCode, ""));
+
+        Map<String, String> guidDeviceNameMap = iotDevices.stream()
+                .filter(item -> StringUtils.isNotEmpty(item.getExternalCode()))
+                .collect(Collectors.toMap(
+                        item -> item.getExternalCode().trim(),
+                        item -> StringUtils.isNotEmpty(item.getDeviceName()) ? item.getDeviceName().trim() : "",
+                        (oldValue, newValue) -> StringUtils.isNotEmpty(oldValue) ? oldValue : newValue,
+                        LinkedHashMap::new
+                ));
+        List<String> guidList = new ArrayList<>(guidDeviceNameMap.keySet());
+
+        List<Map<String, String>> maps = realTimeEnergyConsumptionService
+                .getRealData(guidList);
+        for (Map<String, String> item : maps) {
+            String guid = item.get("guid");
+            if (StringUtils.isNotEmpty(guid)) {
+                String deviceName = guidDeviceNameMap.get(guid.trim());
+                if (StringUtils.isNotEmpty(deviceName)) {
+                    item.put("deviceName", deviceName);
+                }
+            }
+        }
         return AjaxResult.success(maps);
     }
 
@@ -74,7 +72,7 @@
     public AjaxResult getHistoryData(@RequestParam(value = "guid") String guid,
                                      @RequestParam(value = "startTime") long startTime,
                                      @RequestParam(value = "endTime") long endTime) {
-        List<Map<String,String>> maps = realTimeEnergyConsumptionService.getHistoryData(guid, startTime, endTime);
+        List<Map<String, String>> maps = realTimeEnergyConsumptionService.getHistoryData(guid, startTime, endTime);
         return AjaxResult.success(maps);
     }
 

--
Gitblit v1.9.3