wangxiaofei před 1 týdnem
rodič
revize
afc202a3a8

+ 44 - 19
taphole-iron/src/main/java/com/sckj/iron/socketio/DeviceEventListener.java

@@ -1524,11 +1524,14 @@ public class DeviceEventListener extends AbstractEventListener { //
 
                     // 增加计数并保存当前数据
                     count++;
-                    // 保留最新的不超过触发次数的数据
-                    if (warnData.size() > 1) {
-                        warnData = warnData.subList(0, 1); // 保留计数位置
+
+                    if (warnData.isEmpty()) {
+                        // 如果集合为空,先添加第一个元素
+                        warnData.add(count);
+                    } else {
+                        warnData.set(0, count); // 替换第一个元素(索引 0)的值为 count
                     }
-                    warnData.set(0, count);
+
                     // 保存当前压差数据
                     warnData.add(mContext.lookupVariable("yc"));
                     mWarnCountMap.put(modelKey, warnData);
@@ -1584,6 +1587,9 @@ public class DeviceEventListener extends AbstractEventListener { //
     }
 
     private String formatWarnData(List<Object> warnData,String unit) {
+        if(warnData.isEmpty() || warnData.size() <= 1) {
+            return "";
+        }
         StringBuilder sb = new StringBuilder();
         for (int i = 1; i < warnData.size(); i++) {
             if (i > 1) sb.append("、");
@@ -2131,11 +2137,14 @@ public class DeviceEventListener extends AbstractEventListener { //
                     int count = warnData.isEmpty() ? 0 : ((Number) warnData.get(0)).intValue();
                     count++;
 
-                    // 保留最新的不超过触发次数的数据
-                    if (warnData.size() > 1) {
-                        warnData = warnData.subList(0, 1); // 保留计数位置
+                    if (warnData.isEmpty()) {
+                        // 如果集合为空,先添加第一个元素
+                        warnData.add(count);
+                    } else {
+                        warnData.set(0, count); // 替换第一个元素(索引 0)的值为 count
                     }
-                    warnData.set(0, count);
+
+
                     warnData.add(tempNow); // 添加当前温度数据
 
                     mWarnCountMap.put("tempMinWarn", warnData);
@@ -2167,10 +2176,14 @@ public class DeviceEventListener extends AbstractEventListener { //
                     int count = warnData.isEmpty() ? 0 : ((Number) warnData.get(0)).intValue();
                     count++;
 
-                    // 保留最新的不超过触发次数的数据
-                    if (warnData.size() > 1) {
-                        warnData = warnData.subList(0, 1); // 保留计数位置
+                    if (warnData.isEmpty()) {
+                        // 如果集合为空,先添加第一个元素
+                        warnData.add(count);
+                    } else {
+                        warnData.set(0, count); // 替换第一个元素(索引 0)的值为 count
                     }
+
+
                     warnData.set(0, count);
                     warnData.add(tempNow); // 添加当前温度数据
 
@@ -2312,11 +2325,14 @@ public class DeviceEventListener extends AbstractEventListener { //
                             int count = warnData.isEmpty() ? 0 : ((Number) warnData.get(0)).intValue();
                             count++;
 
-                            // 保留最新的不超过触发次数的数据
-                            if (warnData.size() > 1) {
-                                warnData = warnData.subList(0, 1); // 保留计数位置
+                            if (warnData.isEmpty()) {
+                                // 如果集合为空,先添加第一个元素
+                                warnData.add(count);
+                            } else {
+                                warnData.set(0, count); // 替换第一个元素(索引 0)的值为 count
                             }
-                            warnData.set(0, count);
+
+
                             warnData.add(rtIronSpeed); // 添加当前流速数据
 
                             mWarnCountMap.put("speedMinWarn", warnData);
@@ -2358,11 +2374,20 @@ public class DeviceEventListener extends AbstractEventListener { //
                             int count = warnData.isEmpty() ? 0 : ((Number) warnData.get(0)).intValue();
                             count++;
 
-                            // 保留最新的不超过触发次数的数据
-                            if (warnData.size() > 1) {
-                                warnData = warnData.subList(0, 1); // 保留计数位置
+                            if (warnData.isEmpty()) {
+                                // 如果集合为空,先添加第一个元素
+                                warnData.add(count);
+                            } else {
+                                warnData.set(0, count); // 替换第一个元素(索引 0)的值为 count
                             }
-                            warnData.set(0, count);
+
+                            if (warnData.isEmpty()) {
+                                // 如果集合为空,先添加第一个元素
+                                warnData.add(count);
+                            } else {
+                                warnData.set(0, count); // 替换第一个元素(索引 0)的值为 count
+                            }
+
                             warnData.add(rtIronSpeed); // 添加当前流速数据
 
                             mWarnCountMap.put("speedMaxWarn", warnData);