wangxiaofei il y a 1 semaine
Parent
commit
b7ec67203e

+ 16 - 9
taphole-iron/src/main/java/com/sckj/iron/socketio/DeviceEventListener.java

@@ -1310,6 +1310,9 @@ public class DeviceEventListener extends AbstractEventListener { //
                 log.info("获取标准最大出铁重量: {} t", stdIronWeightMax);
 
                 double currentIronTime = mTotalWeight.doubleValue();
+                currentIronTime += ironWeight1Pre.doubleValue();
+                currentIronTime += ironWeight2Pre.doubleValue();
+
                 log.info("当前出铁重量: {} t", currentIronTime);
 
                 // 检查是否重量
@@ -1554,7 +1557,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                 if (Boolean.TRUE.equals(result)) {
                     log.warn("[急需出铁预警] ⚠️ 表达式结果为真,满足预警条件");
 
-                    List<Object> warnData = updateWarnCount(modelKey, mContext.lookupVariable("yc"));
+                    List<Object> warnData = updateWarnCount(modelKey, mContext.lookupVariable("yc"),triggerCount);
                     int count = ((Number) warnData.get(0)).intValue();
 
                     log.info("[急需出铁预警] 计数更新完成 - 新计数: {}/{}次", count, triggerCount);
@@ -2151,7 +2154,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                 if (tempNow < stdTempMin) {
                     log.info("检测到温度偏低,重置温度偏高计数器");
                     mWarnCountMap.put(tempMaxWarn, new ArrayList<>());
-                    List<Object> warnData = updateWarnCount(tempMinWarn, tempNow);
+                    List<Object> warnData = updateWarnCount(tempMinWarn, tempNow,triggerCount);
                     int count = ((Number) warnData.get(0)).intValue();
 
                     log.warn("检测到温度偏低 - 当前: {}℃, 标准最低: {}℃, 连续异常次数: {}", tempNow, stdTempMin, count);
@@ -2179,7 +2182,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                 } else if (tempNow > stdTempMax) {
                     log.info("检测到温度偏高,重置温度偏低计数器");
                     mWarnCountMap.put(tempMinWarn, new ArrayList<>());
-                    List<Object> warnData = updateWarnCount(tempMaxWarn, tempNow);
+                    List<Object> warnData = updateWarnCount(tempMaxWarn, tempNow,triggerCount);
                     int count = ((Number) warnData.get(0)).intValue();
 
                     log.warn("检测到温度偏高 - 当前: {}℃, 标准最高: {}℃, 连续异常次数: {}", tempNow, stdTempMax, count);
@@ -2318,7 +2321,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                             mWarnCountMap.put(speedMaxWarn, new ArrayList<>());
                             log.info("   └─ 重置高流速待预警内容");
 
-                            List<Object> warnDataSpeed = updateWarnCount(speedMinWarn, rtIronSpeed);
+                            List<Object> warnDataSpeed = updateWarnCount(speedMinWarn, rtIronSpeed,triggerCountSpeed);
                             int countSpeed = ((Number) warnDataSpeed.get(0)).intValue();
 
                             log.info("📉 【流速偏低计数更新】");
@@ -2344,7 +2347,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                             }
 
                             mWarnCountMap.put(speedMaxWarnClosure, new ArrayList<>());
-                            List<Object> warnDataClosure = updateWarnCount(speedMinWarnClosure, rtIronSpeed);
+                            List<Object> warnDataClosure = updateWarnCount(speedMinWarnClosure, rtIronSpeed,triggerCountClosure);
                             int countClosure = ((Number) warnDataClosure.get(0)).intValue();
 
                             log.info("📈 【流速偏低堵口计数更新】");
@@ -2388,7 +2391,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                             mWarnCountMap.put(speedMinWarn, new ArrayList<>());
                             log.info("   └─ 重置低流速待预警内容");
                             //铁水流速高
-                            List<Object> warnData = updateWarnCount(speedMaxWarn, rtIronSpeed);
+                            List<Object> warnData = updateWarnCount(speedMaxWarn, rtIronSpeed,triggerCountSpeed);
                             int count = ((Number) warnData.get(0)).intValue();
 
                             log.info("📈 【流速偏高计数更新】");
@@ -2411,7 +2414,7 @@ public class DeviceEventListener extends AbstractEventListener { //
                             }
 
                             mWarnCountMap.put(speedMinWarnClosure, new ArrayList<>());
-                            List<Object> warnDataClosure = updateWarnCount(speedMaxWarnClosure, rtIronSpeed);
+                            List<Object> warnDataClosure = updateWarnCount(speedMaxWarnClosure, rtIronSpeed,triggerCountClosure);
                             int countClosure = ((Number) warnDataClosure.get(0)).intValue();
 
                             log.info("📈 【流速偏高堵口计数更新】");
@@ -2863,11 +2866,15 @@ public class DeviceEventListener extends AbstractEventListener { //
      * @param rtIronSpeed
      * @return
      */
-    private List<Object> updateWarnCount(String speedMinWarn, Object rtIronSpeed) {
+    private List<Object> updateWarnCount(String speedMinWarn, Object rtIronSpeed,int maxCount) {
         //铁水流速低
         List<Object> warnData = mWarnCountMap.getOrDefault(speedMinWarn, new ArrayList<>());
         int count = warnData.isEmpty() ? 0 : ((Number) warnData.get(0)).intValue();
-        count++;
+        if (warnData.size() - 1 >= maxCount) {
+            warnData.clear(); // 清空集合
+            count = 0; // 重置计数为0
+        }
+        count++; // 计数加1
         if (warnData.isEmpty()) {
             // 如果集合为空,先添加第一个元素
             warnData.add(count);