From bfcc71f500625a26886b43c43a8fdf2ea1152844 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 13:47:59 +0800
Subject: [PATCH] 环境检测排序,仓库绑定物联设备
---
src/main/java/com/ruoyi/http/service/controller/JclyController.java | 49 ++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 42 insertions(+), 7 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 00bbb74..b8ee77a 100644
--- a/src/main/java/com/ruoyi/http/service/controller/JclyController.java
+++ b/src/main/java/com/ruoyi/http/service/controller/JclyController.java
@@ -41,27 +41,40 @@
.isNotNull(DeviceLedger::getExternalCode)
.ne(DeviceLedger::getExternalCode, ""));
- Map<String, String> guidDeviceNameMap = iotDevices.stream()
+ Map<String, DeviceLedger> guidDeviceMap = 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,
+ item -> item,
+ (oldValue, newValue) -> StringUtils.isNotEmpty(oldValue.getDeviceName()) ? oldValue : newValue,
LinkedHashMap::new
));
- List<String> guidList = new ArrayList<>(guidDeviceNameMap.keySet());
+ List<String> guidList = new ArrayList<>(guidDeviceMap.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);
+ DeviceLedger device = guidDeviceMap.get(guid.trim());
+ if (device != null) {
+ if (StringUtils.isNotEmpty(device.getDeviceName())) {
+ item.put("deviceName", device.getDeviceName().trim());
+ }
+ if (StringUtils.isNotEmpty(device.getStorageLocation())) {
+ item.put("storageLocation", device.getStorageLocation().trim());
+ }
}
}
}
+ // 鎸� deviceName 绗竴涓瓧绗︼紙鏁板瓧锛夋帓搴�
+ maps.sort((a, b) -> {
+ String nameA = a.getOrDefault("deviceName", "");
+ String nameB = b.getOrDefault("deviceName", "");
+ int firstNumA = extractFirstNumber(nameA);
+ int firstNumB = extractFirstNumber(nameB);
+ return Integer.compare(firstNumA, firstNumB);
+ });
return AjaxResult.success(maps);
}
@@ -76,4 +89,26 @@
return AjaxResult.success(maps);
}
+ /**
+ * 鎻愬彇瀛楃涓插紑澶寸殑鏁板瓧
+ */
+ private int extractFirstNumber(String str) {
+ if (str == null || str.isEmpty()) {
+ return Integer.MAX_VALUE;
+ }
+ StringBuilder numStr = new StringBuilder();
+ for (int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ if (Character.isDigit(c)) {
+ numStr.append(c);
+ } else {
+ break;
+ }
+ }
+ if (numStr.length() == 0) {
+ return Integer.MAX_VALUE;
+ }
+ return Integer.parseInt(numStr.toString());
+ }
+
}
--
Gitblit v1.9.3