|
@@ -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);
|