|
@@ -235,6 +235,9 @@ public class DeviceEventListener extends EventListener { //
|
|
// 模型统一管理
|
|
// 模型统一管理
|
|
private Map<String, TIronModel> modelMap = new ConcurrentHashMap<>();
|
|
private Map<String, TIronModel> modelMap = new ConcurrentHashMap<>();
|
|
|
|
|
|
|
|
+ // 新增成员变量
|
|
|
|
+ private double lastIronLoading1 = -1;
|
|
|
|
+
|
|
@PostConstruct
|
|
@PostConstruct
|
|
public void init() {
|
|
public void init() {
|
|
taskExecutor.submit(() -> {
|
|
taskExecutor.submit(() -> {
|
|
@@ -317,7 +320,7 @@ public class DeviceEventListener extends EventListener { //
|
|
if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_speed)) {
|
|
if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_speed)) {
|
|
StandardConstans.STANDARD_SPEED = mIronParam.getParamValue();
|
|
StandardConstans.STANDARD_SPEED = mIronParam.getParamValue();
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.pressure_diff_value)) {
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.pressure_diff_value)) {
|
|
- StandardConstans.STANDARD_PRESSURE_DIFF = new AtomicDouble(Double.parseDouble(mIronParam.getParamValue()));
|
|
|
|
|
|
+ StandardConstans.STANDARD_PRESSURE_DIFF = Double.parseDouble(mIronParam.getParamValue());
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_time)) {
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_time)) {
|
|
StandardConstans.STANDARD_IRON_TIME = mIronParam.getParamValue();
|
|
StandardConstans.STANDARD_IRON_TIME = mIronParam.getParamValue();
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.server_url)) {
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.server_url)) {
|
|
@@ -325,14 +328,14 @@ public class DeviceEventListener extends EventListener { //
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.ironwater_temp)) {
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.ironwater_temp)) {
|
|
StandardConstans.STANDARD_TEMP = mIronParam.getParamValue();
|
|
StandardConstans.STANDARD_TEMP = mIronParam.getParamValue();
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.open_hour)) {
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.open_hour)) {
|
|
- StandardConstans.STANDARD_OPEN_HOUR = new AtomicDouble(Double.parseDouble(mIronParam.getParamValue()));
|
|
|
|
|
|
+ StandardConstans.STANDARD_OPEN_HOUR = Integer.parseInt(mIronParam.getParamValue());
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_weight)) {
|
|
} else if (Objects.equals(mIronParam.getParamName(), ParamsConstants.iron_weight)) {
|
|
StandardConstans.STANDARD_IRON_WEIGHT = mIronParam.getParamValue();
|
|
StandardConstans.STANDARD_IRON_WEIGHT = mIronParam.getParamValue();
|
|
}
|
|
}
|
|
// mContext.setVariable(ExpressionConstants.stdSpeed, STANDARD_SPEED.get());
|
|
// mContext.setVariable(ExpressionConstants.stdSpeed, STANDARD_SPEED.get());
|
|
mContext.setVariable(ExpressionConstants.stdSpeedMin, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[0]));
|
|
mContext.setVariable(ExpressionConstants.stdSpeedMin, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[0]));
|
|
mContext.setVariable(ExpressionConstants.stdSpeedMax, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[1]));
|
|
mContext.setVariable(ExpressionConstants.stdSpeedMax, Double.parseDouble(StandardConstans.STANDARD_SPEED.split("-")[1]));
|
|
- mContext.setVariable(ExpressionConstants.stdPressureDiff, StandardConstans.STANDARD_PRESSURE_DIFF.get());
|
|
|
|
|
|
+ mContext.setVariable(ExpressionConstants.stdPressureDiff, StandardConstans.STANDARD_PRESSURE_DIFF);
|
|
// mContext.setVariable(ExpressionConstants.stdIronTime, STANDARD_IRON_TIME.get());
|
|
// mContext.setVariable(ExpressionConstants.stdIronTime, STANDARD_IRON_TIME.get());
|
|
mContext.setVariable(ExpressionConstants.stdIronTimeMin, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[0]));
|
|
mContext.setVariable(ExpressionConstants.stdIronTimeMin, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[0]));
|
|
mContext.setVariable(ExpressionConstants.stdIronTimeMax, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[1]));
|
|
mContext.setVariable(ExpressionConstants.stdIronTimeMax, Double.parseDouble(StandardConstans.STANDARD_IRON_TIME.split("-")[1]));
|
|
@@ -879,7 +882,7 @@ public class DeviceEventListener extends EventListener { //
|
|
mContext.setVariable(ExpressionConstants.rtIronTempDiff, rtTempMax.get() - rtTempMin.get());
|
|
mContext.setVariable(ExpressionConstants.rtIronTempDiff, rtTempMax.get() - rtTempMin.get());
|
|
|
|
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_CAR11(opcData.getServerType())) || opcData.getPointName().contains(SubscribeTagConstants.TAG_CAR12(opcData.getServerType()))) {
|
|
} else if (opcData.getPointName().contains(SubscribeTagConstants.TAG_CAR11(opcData.getServerType())) || opcData.getPointName().contains(SubscribeTagConstants.TAG_CAR12(opcData.getServerType()))) {
|
|
- //1TH-1号车受铁速度
|
|
|
|
|
|
+ //1TH-1号车受铁速度、1TH-2号车受铁速度、
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
RealtimeData realtimeData = new RealtimeData();
|
|
realtimeData.setValue(opcData.getData());
|
|
realtimeData.setValue(opcData.getData());
|
|
realtimeData.setUnit("t/s");
|
|
realtimeData.setUnit("t/s");
|
|
@@ -1111,8 +1114,26 @@ public class DeviceEventListener extends EventListener { //
|
|
|
|
|
|
private String stepLogId;
|
|
private String stepLogId;
|
|
|
|
|
|
- //计算每步结果
|
|
|
|
|
|
+ //计算每步结果为0(不通过)或者为1(通过)
|
|
private synchronized void setStepResult(List<IronStepVO> mSteps) {
|
|
private synchronized void setStepResult(List<IronStepVO> mSteps) {
|
|
|
|
+ // 检查ironLoading1是否从1变为0
|
|
|
|
+ if (lastIronLoading1 == 1 && ironLoading1.get() == 0) {
|
|
|
|
+ setAllStepPassResult(mSteps, 0);
|
|
|
|
+ lastIronLoading1 = ironLoading1.get();
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ IronStepVO lastStep = null;
|
|
|
|
+ if (mSteps != null && !mSteps.isEmpty()) {
|
|
|
|
+ lastStep = mSteps.get(mSteps.size() - 1);
|
|
|
|
+ }
|
|
|
|
+ // 1. 如果最后一个步骤为lqctcz且passResult为1,并且ironLoading1为1,则所有步骤passResult都保持为1
|
|
|
|
+ if (lastStep != null && StepConstans.STEP_LQCTCZ.equals(lastStep.getIdentifier()) && lastStep.getPassResult() == 1 && ironLoading1.get() == 1) {
|
|
|
|
+ setAllStepPassResult(mSteps, 1);
|
|
|
|
+ lastIronLoading1 = ironLoading1.get();
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 原有逻辑
|
|
boolean foundFalsePass = false;
|
|
boolean foundFalsePass = false;
|
|
//发现第一个pass是false,后续都为false,包括父项、子项、孙子项
|
|
//发现第一个pass是false,后续都为false,包括父项、子项、孙子项
|
|
for (IronStepVO stepDTO : mSteps) {
|
|
for (IronStepVO stepDTO : mSteps) {
|
|
@@ -1127,6 +1148,19 @@ public class DeviceEventListener extends EventListener { //
|
|
//父项 验证是否通过
|
|
//父项 验证是否通过
|
|
foundFalsePass = isFoundFalsePass(stepDTO, foundFalsePass);
|
|
foundFalsePass = isFoundFalsePass(stepDTO, foundFalsePass);
|
|
}
|
|
}
|
|
|
|
+ // 最后更新lastIronLoading1
|
|
|
|
+ lastIronLoading1 = ironLoading1.get();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 工具方法:递归设置所有步骤的passResult
|
|
|
|
+ private void setAllStepPassResult(List<IronStepVO> steps, int value) {
|
|
|
|
+ if (steps == null) return;
|
|
|
|
+ for (IronStepVO step : steps) {
|
|
|
|
+ step.setPassResult(value);
|
|
|
|
+ if (step.getChilds() != null && !step.getChilds().isEmpty()) {
|
|
|
|
+ setAllStepPassResult(step.getChilds(), value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/***
|
|
/***
|
|
@@ -1261,7 +1295,7 @@ public class DeviceEventListener extends EventListener { //
|
|
|
|
|
|
//炉前出铁操作,10分钟内打开铁口,未打开系统告警并记录
|
|
//炉前出铁操作,10分钟内打开铁口,未打开系统告警并记录
|
|
if ("1".equals(scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getStatus())) {
|
|
if ("1".equals(scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getStatus())) {
|
|
- scheduledTaskManager.addTask(scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getName(), scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getDelay(), scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getPeriod(), TimeUnit.SECONDS, () -> {
|
|
|
|
|
|
+ scheduledTaskManager.addTask(scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getName(), StandardConstans.STANDARD_OPEN_HOUR * 60, scheduleMap.get(TaskNameConstants.TASKNAME_OPEN_WARN).getPeriod(), TimeUnit.SECONDS, () -> {
|
|
log.info("开口预警");
|
|
log.info("开口预警");
|
|
// 出铁预警,打开系统告警并记录
|
|
// 出铁预警,打开系统告警并记录
|
|
PushData.send2Warn(WarnData.warnOpen("急需开口告警", openAlarmUrl));
|
|
PushData.send2Warn(WarnData.warnOpen("急需开口告警", openAlarmUrl));
|