From 4aa7aeb8b437380ffc5dba988ccfb7b668720bdc Mon Sep 17 00:00:00 2001 From: lld <15027638633@163.com> Date: Sun, 1 Feb 2026 13:13:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BB=B6=E6=97=B6=E4=BB=BB=E5=8A=A1=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E6=96=B0=E7=8A=B6=E6=80=81=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/manager/MqttAutoOffManager.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/agri-framework/src/main/java/com/agri/framework/manager/MqttAutoOffManager.java b/agri-framework/src/main/java/com/agri/framework/manager/MqttAutoOffManager.java index a62d016..6aed93d 100644 --- a/agri-framework/src/main/java/com/agri/framework/manager/MqttAutoOffManager.java +++ b/agri-framework/src/main/java/com/agri/framework/manager/MqttAutoOffManager.java @@ -237,9 +237,10 @@ public class MqttAutoOffManager { // 设备每10秒上报的状态包:{"jm1k":0/1,...} 顶层字段直接取 Integer current = null; + String key = getKey(funcType); try { - if (latestObj.containsKey(funcType)) { - current = latestObj.getIntValue(funcType); + if (latestObj.containsKey(key)) { + current = latestObj.getIntValue(key); } } catch (Exception ignore) { skipReason = "【自动关任务】最新状态功能码获取失败"; @@ -353,4 +354,14 @@ public class MqttAutoOffManager { return json; } + + public String getKey(String funcType) { + // 边界判断:避免空指针异常和字符串长度不足的异常 + if (funcType == null || funcType.length() <= 1) { + return funcType == null ? null : ""; + } + + // 截取:从索引0开始,到倒数第二位结束(substring的结束索引是开区间,不包含自身) + return funcType.substring(0, funcType.length() - 1); + } } \ No newline at end of file