|
@@ -4,13 +4,13 @@ import com.corundumstudio.socketio.SocketIOClient;
|
|
|
import com.corundumstudio.socketio.annotation.OnEvent;
|
|
|
import com.google.common.eventbus.Subscribe;
|
|
|
import com.sckj.camera.util.LocalDateUtils;
|
|
|
-import com.sckj.common.core.AjaxResult;
|
|
|
import com.sckj.common.eventbus.EventListener;
|
|
|
import com.sckj.common.manager.ScheduledTaskManager;
|
|
|
import com.sckj.common.socketio.SocketUtil;
|
|
|
import com.sckj.common.util.RedisUtils;
|
|
|
import com.sckj.iron.dto.IronStepDTO;
|
|
|
import com.sckj.iron.dto.RealtimeData;
|
|
|
+import com.sckj.iron.dto.WarnData;
|
|
|
import com.sckj.iron.entity.TIronData;
|
|
|
import com.sckj.iron.entity.TIronParam;
|
|
|
import com.sckj.iron.entity.TL2Data;
|
|
@@ -27,7 +27,6 @@ import com.sckj.opc.utils.CustomUtil;
|
|
|
import com.sckj.warn.service.ITExceptionLogService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
|
|
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
|
@@ -137,7 +136,7 @@ public class DeviceEventListener extends EventListener {
|
|
|
//摆动溜咀
|
|
|
private static final String MOUTH_STATUS = "bdlz";
|
|
|
//冲渣状态
|
|
|
- private static final String FLUSH_STATUS = "flushStatus";
|
|
|
+ private static final String FLUSH_STATUS = "AOD25607.PV";
|
|
|
//预计出铁结束时间
|
|
|
private static final String PLAN_END_TIME = "planEndTime";
|
|
|
|
|
@@ -174,7 +173,8 @@ public class DeviceEventListener extends EventListener {
|
|
|
//出铁诊断
|
|
|
private static final String TASKNAME_IRON_TEST = "TASKNAME_IRON_TEST";
|
|
|
|
|
|
- private static final String TASKNAME_DRY = "dry";
|
|
|
+ //打泥量预计
|
|
|
+ private static final String TASKNAME_MUD = "TASKNAME_DRY";
|
|
|
|
|
|
//是否出铁中
|
|
|
//1 出铁中 0 出铁结束
|
|
@@ -195,6 +195,8 @@ public class DeviceEventListener extends EventListener {
|
|
|
private float STANDARD_SPEED;
|
|
|
//开口耗时
|
|
|
private int OPEND_HOUR;
|
|
|
+ private int PRESSURE_DIFF_VALUE;
|
|
|
+
|
|
|
|
|
|
//redis保存最多数量数据
|
|
|
private static final int MAX_REDIS_COUNT = 50;
|
|
@@ -215,6 +217,7 @@ public class DeviceEventListener extends EventListener {
|
|
|
.collect(Collectors.toMap(TIronParam::getParamName, ironParam -> ironParam, (existing, replacement) -> existing));
|
|
|
STANDARD_SPEED = Float.parseFloat(mIronParamMap.get("iron_speed").getParamValue());
|
|
|
OPEND_HOUR = Integer.parseInt(mIronParamMap.get("open_hours").getParamValue());
|
|
|
+ PRESSURE_DIFF_VALUE = Integer.parseInt(mIronParamMap.get("pressure_diff_value").getParamValue());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -376,7 +379,7 @@ public class DeviceEventListener extends EventListener {
|
|
|
//根据理论铁量、实时铁水流速,推测距离出铁结束的剩余时间
|
|
|
//剩余时间=总时间-已经流去的时间
|
|
|
// mContext.lookupVariable("");
|
|
|
- //计算理论铁量= 矿批 × 综合品位 × 1.06,其中矿批是指L2中的干量
|
|
|
+
|
|
|
|
|
|
// Date ironTime = mOPCData.getServerTime();
|
|
|
// lastIronEndTimeRecently
|
|
@@ -400,23 +403,25 @@ public class DeviceEventListener extends EventListener {
|
|
|
log.info("堵口预警:{},speed1:{},speed2:{},STANDARD_SPEED:{}", speed1, speed2, TASKNAME_OPEN_WARN);
|
|
|
if (speed1 > STANDARD_SPEED || speed2 > STANDARD_SPEED) {
|
|
|
//流速过大可能是由于铁口深度不足或发生跑大流问题,则提示将当前铁口堵口
|
|
|
- PushData.send2Warn("流速过快,请堵口");
|
|
|
+ PushData.send2Warn(WarnData.warnClose("流速过快,请堵口"));
|
|
|
} else if ((speed1 < STANDARD_SPEED || speed2 < STANDARD_SPEED) && (ironLoading2 || ironLoading3 || ironLoading4)) {
|
|
|
//若流速过小,但其它铁口正在出铁,则提示将当前铁口堵口
|
|
|
- PushData.send2Warn("请堵口");
|
|
|
+ PushData.send2Warn(WarnData.warnClose("请堵口"));
|
|
|
} else if ((speed1 < STANDARD_SPEED || speed2 < STANDARD_SPEED) && (!ironLoading2 && !ironLoading3 && !ironLoading4)) {
|
|
|
//若流速过小且其他铁口均未出铁,则提示先将其它铁口打开,再进行堵口
|
|
|
- PushData.send2Warn("请先将其它铁口打开,再堵口");
|
|
|
+ PushData.send2Warn(WarnData.warnClose("请先将其它铁口打开,再堵口"));
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- //计算总干量
|
|
|
- //
|
|
|
- scheduledTaskManager.addTask(TASKNAME_DRY, 0, 30, TimeUnit.SECONDS, () -> {
|
|
|
+ //调用打泥量模型,计算预计使用多少打泥量进行堵口
|
|
|
+ scheduledTaskManager.addTask(TASKNAME_MUD, 0, 30, TimeUnit.SECONDS, () -> {
|
|
|
log.info("堵口预警:{},speed1:{},speed2:{},STANDARD_SPEED:{}", speed1, speed2, TASKNAME_OPEN_WARN);
|
|
|
-
|
|
|
+ String dryString = totalDry.toPlainString();
|
|
|
+ //
|
|
|
//堵口预警
|
|
|
- scheduledTaskManager.cancelTask(TASKNAME_DRY);
|
|
|
+ //计算理论铁量= 矿批 × 综合品位 × 1.06,其中矿批是指L2中的干量
|
|
|
+
|
|
|
+ scheduledTaskManager.cancelTask(TASKNAME_MUD);
|
|
|
});
|
|
|
|
|
|
|
|
@@ -430,7 +435,7 @@ public class DeviceEventListener extends EventListener {
|
|
|
scheduledTaskManager.cancelTask(TASKNAME_OPEN_WARN);
|
|
|
scheduledTaskManager.cancelTask(TASKNAME_CLOSE_WARN);
|
|
|
scheduledTaskManager.cancelTask(TASKNAME_IRON_WARN);
|
|
|
- scheduledTaskManager.cancelTask(TASKNAME_DRY);
|
|
|
+ scheduledTaskManager.cancelTask(TASKNAME_MUD);
|
|
|
recordAfter();
|
|
|
recordBlock();
|
|
|
|
|
@@ -475,6 +480,7 @@ public class DeviceEventListener extends EventListener {
|
|
|
|
|
|
//实时出铁总重量/总流量
|
|
|
private BigDecimal totalWeight = BigDecimal.ZERO;
|
|
|
+
|
|
|
//总干量
|
|
|
private BigDecimal totalDry = BigDecimal.ZERO;
|
|
|
|
|
@@ -586,18 +592,18 @@ public class DeviceEventListener extends EventListener {
|
|
|
realtimeData.setValue(opcData.getData());
|
|
|
realtimeData.setDesc("冲渣状态");
|
|
|
mRealtimeStatus.put(FLUSH_STATUS, realtimeData);
|
|
|
- } else if (opcData.getPointName().contains(PLAN_END_TIME)) {
|
|
|
- RealtimeData realtimeData = new RealtimeData();
|
|
|
- realtimeData.setValue(opcData.getData());
|
|
|
- realtimeData.setDesc("预计出铁结束时间");
|
|
|
- mRealtimeData.put(PLAN_END_TIME, realtimeData);
|
|
|
}
|
|
|
+// else if (opcData.getPointName().contains(PLAN_END_TIME)) {
|
|
|
+// RealtimeData realtimeData = new RealtimeData();
|
|
|
+// realtimeData.setValue(opcData.getData());
|
|
|
+// realtimeData.setDesc("预计出铁结束时间");
|
|
|
+// mRealtimeData.put(PLAN_END_TIME, realtimeData);
|
|
|
+// }
|
|
|
|
|
|
|
|
|
float yc = Float.valueOf(ObjectUtils.defaultIfNull(mContext.lookupVariable("yc"), "0").toString());
|
|
|
- if (yc > 190) {
|
|
|
- log.info("预警出铁");
|
|
|
- PushData.send2Warn(AjaxResult.success("预警出铁"));
|
|
|
+ if (yc > PRESSURE_DIFF_VALUE) {
|
|
|
+ PushData.send2Warn(WarnData.warnOpen("预警出铁"));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -653,7 +659,7 @@ public class DeviceEventListener extends EventListener {
|
|
|
if (ObjectUtils.isEmpty(newPointName)) {
|
|
|
continue;
|
|
|
}
|
|
|
- newPointName = CustomUtil.createNewPointName(newPointName);
|
|
|
+ newPointName = CustomUtil.createNewPointName(newPointName);
|
|
|
if (Objects.equals(newPointName, pointName)) {
|
|
|
//3.创建变量上下文,设置变量
|
|
|
childchild.setData(data);
|