|
@@ -649,6 +649,11 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
if (tappingTimeoutWarn != null && "1".equals(tappingTimeoutWarn.getStatus())) {
|
|
|
scheduledTaskManager.addTask(tappingTimeoutWarn.getName(), tappingTimeoutWarn.getDelay(), tappingTimeoutWarn.getPeriod(), TimeUnit.SECONDS, runnableTappingTimeout());
|
|
|
}
|
|
|
+ // 出铁重量报警
|
|
|
+ TIronSchedule tappingWeightoutWarn = scheduleMap.get(TaskNameConstants.TAPPING_WEIGHTOUT_WARN);
|
|
|
+ if (tappingWeightoutWarn != null && "1".equals(tappingWeightoutWarn.getStatus())) {
|
|
|
+ scheduledTaskManager.addTask(tappingWeightoutWarn.getName(), tappingWeightoutWarn.getDelay(), tappingWeightoutWarn.getPeriod(), TimeUnit.SECONDS, runnableTappingWeightout());
|
|
|
+ }
|
|
|
|
|
|
// 堵口预测时间
|
|
|
TIronSchedule schedulClosurePredict = scheduleMap.get(TaskNameConstants.TASKNAME_CLOSURE_PREDICT);
|
|
@@ -863,7 +868,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
}
|
|
|
} else {
|
|
|
mWarnCountMap.put(modelKey3, 0);
|
|
|
- PushData.send2CancelWarn(WarnData.warnClose("取消堵口告警3",""));
|
|
|
+ PushData.send2CancelWarn(WarnData.warnClose("取消堵口告警3", ""));
|
|
|
}
|
|
|
} else {
|
|
|
log.info("使用实时速度预警模式");
|
|
@@ -912,6 +917,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
log.info("提交出铁超时异常处理任务到线程池");
|
|
|
|
|
|
try {
|
|
|
+ PushData.send2Warn(WarnData.warnTapping("出铁超时", audioMap.get(ExceptionTypeEnum.CHU_TIE_SHI_JIAN_TAI_CHANG.getCode())));
|
|
|
// 记录异常信息
|
|
|
String exceptionMessage = String.format("出铁时间:%s分钟", currentIronTime);
|
|
|
saveException(ExceptionTypeEnum.CHU_TIE_SHI_JIAN_TAI_CHANG, exceptionMessage);
|
|
@@ -939,6 +945,45 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
+ @NotNull
|
|
|
+ private Runnable runnableTappingWeightout() {
|
|
|
+ return () -> {
|
|
|
+ log.info("开始执行出铁超重检查任务");
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 获取标准最大出铁重量配置
|
|
|
+ double stdIronWeightMax = Double.parseDouble(mContext.lookupVariable(ExpressionConstants.stdIronWeightMax).toString());
|
|
|
+ log.info("获取标准最大出铁重量: {} 分钟", stdIronWeightMax);
|
|
|
+
|
|
|
+ // 获取当前出铁重量
|
|
|
+ double currentIronTime = mTotalWeight.get().doubleValue();
|
|
|
+ log.info("当前出铁重量: {} 分钟", currentIronTime);
|
|
|
+
|
|
|
+ // 检查是否重量
|
|
|
+ if (currentIronTime > stdIronWeightMax) {
|
|
|
+ log.warn("检测到出铁超重 - 当前: {} t, 标准: {} t", currentIronTime, stdIronWeightMax);
|
|
|
+
|
|
|
+
|
|
|
+ taskExecutor.submit(() -> {
|
|
|
+ PushData.send2Warn(WarnData.warnTapping("出铁量过多", audioMap.get(ExceptionTypeEnum.CHU_TIE_LIANG_TAI_DUO.getCode())));
|
|
|
+ saveException(ExceptionTypeEnum.CHU_TIE_LIANG_TAI_DUO, String.format("出铁量%s吨", mTotalWeight));
|
|
|
+ //推送预警列表
|
|
|
+ getExceptionList();
|
|
|
+ });
|
|
|
+
|
|
|
+ log.info("出铁重量异常处理任务已提交");
|
|
|
+ } else {
|
|
|
+ log.info("出铁重量正常 - 当前: {} t, 标准: {} t", currentIronTime, stdIronWeightMax);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("执行出铁超时检查时发生异常", e);
|
|
|
+ } finally {
|
|
|
+ log.info("出铁超重量检查任务完成");
|
|
|
+ scheduledTaskManager.cancelTask(scheduleMap.get(TaskNameConstants.TAPPING_WEIGHTOUT_WARN).getName());
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
|
|
|
//堵口时间预测
|
|
|
@NotNull
|
|
@@ -1529,15 +1574,15 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
ironLoading4.set(Double.parseDouble(opcData.getData().toString()));
|
|
|
// mContext.setVariable(ExpressionConstants.rtIronState4, ironLoading4.get());
|
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_IRON_WEIGHT11(opcData.getServerType()))
|
|
|
- || opcData.getPointName().contains(SubscribeTagConstants.TAG_IRON_WEIGHT12(opcData.getServerType()))
|
|
|
+ || opcData.getPointName().contains(SubscribeTagConstants.TAG_IRON_WEIGHT12(opcData.getServerType()))
|
|
|
) {
|
|
|
// 1号车铁水流量递增值
|
|
|
BigDecimal bigDecimalNew = new BigDecimal(opcData.getData().toString());
|
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
|
if (ironLoading1.get() > 0) {
|
|
|
- if(opcData.getPointName().contains(SubscribeTagConstants.TAG_IRON_WEIGHT11(opcData.getServerType()))){
|
|
|
+ if (opcData.getPointName().contains(SubscribeTagConstants.TAG_IRON_WEIGHT11(opcData.getServerType()))) {
|
|
|
realtimeData.setValue(1);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
realtimeData.setValue(2);
|
|
|
}
|
|
|
if (bigDecimalNew.compareTo(BigDecimal.ZERO) >= 0) {
|
|
@@ -1547,7 +1592,10 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
}
|
|
|
}
|
|
|
ironWeight1Pre = bigDecimalNew;
|
|
|
- }else{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ } else {
|
|
|
realtimeData.setValue(0);
|
|
|
}
|
|
|
|
|
@@ -1555,7 +1603,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
realtimeData.setExtra(opcData.getData());
|
|
|
mRealtimeStatus.put(BDLZ_STATUS, realtimeData);
|
|
|
|
|
|
- } else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_NSZSW(opcData.getServerType()))) {
|
|
|
+ } else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_NSZSW(opcData.getServerType()))) {
|
|
|
//四高炉南水渣粒化泵供水总管温度
|
|
|
double temp = Double.parseDouble(opcData.getData().toString());
|
|
|
if (lastChuzTemps.size() >= warnCount) {
|
|
@@ -1579,7 +1627,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
chuzTime = LocalDateUtils.formatDate(opcData.getSourceTime());
|
|
|
}
|
|
|
} else {
|
|
|
- if(ironLoading1.get() <= 0){
|
|
|
+ if (ironLoading1.get() <= 0) {
|
|
|
chuzTime = "";
|
|
|
}
|
|
|
}
|
|
@@ -2253,6 +2301,7 @@ public class DeviceEventListener extends AbstractEventListener { //
|
|
|
TaskNameConstants.TASKNAME_OPEN_WARN,
|
|
|
TaskNameConstants.TASKNAME_TAPPING_WARN,
|
|
|
TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN,
|
|
|
+ TaskNameConstants.TAPPING_WEIGHTOUT_WARN,
|
|
|
TaskNameConstants.TASKNAME_HIT_MUD,
|
|
|
TaskNameConstants.TASKNAME_TAPPING_CONSTTIME,
|
|
|
TaskNameConstants.TASKNAME_TAPPING_TEST,
|