From 9c8df2054579c9b1e79c3d2f5311bbc93fab049d Mon Sep 17 00:00:00 2001 From: wangyan <405898180@qq.com> Date: Sat, 15 Nov 2025 09:08:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(scheduled):=20=E8=B0=83=E6=95=B4=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E6=8C=81=E7=BB=AD=E6=97=B6=E9=97=B4=E5=92=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将最小报警持续时间从10秒调整为30秒 - 移除对B枪工作位状态的判断逻辑-优化A枪工作位状态的数据处理流程 - 根据A枪工作位状态决定是否处理A1/B1和A2/B2数据 - 更新数据匹配规则,统一使用A枪状态进行判断-未匹配到配置数据时跳过处理并记录日志 --- .../dataDocking/MesDataScheduled.java | 110 ++++++++---------- 1 file changed, 47 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java b/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java index 0d22359..93b4bbf 100644 --- a/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java +++ b/src/main/java/com/zcloud/scheduled/dataDocking/MesDataScheduled.java @@ -72,8 +72,8 @@ public class MesDataScheduled extends IJobHandler { // 报警确认次数阈值 private static final int ALARM_CONFIRM_THRESHOLD = 3; - // 最小报警持续时间(毫秒),默认10秒 - private static final long MIN_ALARM_DURATION = 10 * 1000; + // 最小报警持续时间(毫秒),默认30秒 + private static final long MIN_ALARM_DURATION = 30 * 1000; @Override @XxlJob(value = "mesDataJob") @@ -216,10 +216,8 @@ public class MesDataScheduled extends IJobHandler { Set keySet = map.keySet(); // 获取A枪和B枪的工作位状态 Object aGunWorkPos1 = map.get("A枪工作位_1"); - Object bGunWorkPos1 = map.get("B枪工作位_1"); Object aGunWorkPos2 = map.get("A枪工作位_2"); - Object bGunWorkPos2 = map.get("B枪工作位_2"); - + for (String key : keySet) { HashMap mesData = new HashMap<>(); mesData.put("MONITORING_ID", UuidUtil.get32UUID()); @@ -246,47 +244,52 @@ public class MesDataScheduled extends IJobHandler { collect = jll2TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key)).collect(Collectors.toList()); } else if (suffix.equals("A1") || suffix.equals("B1")) { mesData.put("EQUIPMENT_ID", "21a32f0f65a41f2949ac832ac39714f0"); - // 根据枪的工作位状态决定匹配规则 - if ("A1".equals(suffix)) { - // 当处理A1数据时 - if (aGunWorkPos1 != null && "0".equals(aGunWorkPos1.toString())) { - // A枪工作位为0时,正常匹配A1数据 - collect = zl1TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key)).collect(Collectors.toList()); - } else if (bGunWorkPos1 != null && "0".equals(bGunWorkPos1.toString())) { - // B枪工作位为0时,用A1的阈值匹配B1数据 - collect = zl1TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key.replace("_B1", "_A1"))).collect(Collectors.toList()); - } - } else if ("B1".equals(suffix)) { - // 当处理B1数据时 - if (bGunWorkPos1 != null && "0".equals(bGunWorkPos1.toString())) { - // B枪工作位为0时,用A1的阈值匹配B1数据 - collect = zl1TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key.replace("_B1", "_A1"))).collect(Collectors.toList()); - } else if (aGunWorkPos1 != null && "0".equals(aGunWorkPos1.toString())) { - // A枪工作位为0时,正常匹配B1数据 - collect = zl1TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key)).collect(Collectors.toList()); + // 根据A枪工作位_1的值决定处理哪些数据 + boolean shouldProcess = false; + if ("A1".equals(suffix) && aGunWorkPos1 != null && "0".equals(aGunWorkPos1.toString())) { + // 当suffix为A1且A枪工作位_1为0时,处理A1数据 + shouldProcess = true; + } else if ("B1".equals(suffix) && aGunWorkPos1 != null && !"0".equals(aGunWorkPos1.toString())) { + // 当suffix为B1且A枪工作位_1不为0时,处理B1数据 + shouldProcess = true; + } + + if (shouldProcess) { + // 使用zl1TargetList中A1的配置项进行匹配 + final String targetKey; + if ("B1".equals(suffix)) { + // 如果是B1数据,将其替换为A1来匹配配置项 + targetKey = key.replace("_B1", "_A1"); + mesData.put("TARGET_NAME", targetKey); + + } else { + targetKey = key; } + collect = zl1TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(targetKey)).collect(Collectors.toList()); } } else if (suffix.equals("A2") || suffix.equals("B2")) { mesData.put("EQUIPMENT_ID", "2c83b99df54e80a674be5657b11db55c"); - // 根据枪的工作位状态决定匹配规则 - if ("A2".equals(suffix)) { - // 当处理A2数据时 - if (aGunWorkPos2 != null && "0".equals(aGunWorkPos2.toString())) { - // A枪工作位为0时,正常匹配A2数据 - collect = zl2TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key)).collect(Collectors.toList()); - } else if (bGunWorkPos2 != null && "0".equals(bGunWorkPos2.toString())) { - // B枪工作位为0时,用A2的阈值匹配B2数据 - collect = zl2TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key.replace("_B2", "_A2"))).collect(Collectors.toList()); - } - } else if ("B2".equals(suffix)) { - // 当处理B2数据时 - if (bGunWorkPos2 != null && "0".equals(bGunWorkPos2.toString())) { - // B枪工作位为0时,用A2的阈值匹配B2数据 - collect = zl2TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key.replace("_B2", "_A2"))).collect(Collectors.toList()); - } else if (aGunWorkPos2 != null && "0".equals(aGunWorkPos2.toString())) { - // A枪工作位为0时,正常匹配B2数据 - collect = zl2TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(key)).collect(Collectors.toList()); + // 根据A枪工作位_2的值决定处理哪些数据 + boolean shouldProcess = false; + if ("A2".equals(suffix) && aGunWorkPos2 != null && "0".equals(aGunWorkPos2.toString())) { + // 当suffix为A2且A枪工作位_2为0时,处理A2数据 + shouldProcess = true; + } else if ("B2".equals(suffix) && aGunWorkPos2 != null && !"0".equals(aGunWorkPos2.toString())) { + // 当suffix为B2且A枪工作位_2不为0时,处理B2数据 + shouldProcess = true; + } + + if (shouldProcess) { + // 使用zl2TargetList中A2的配置项进行匹配 + final String targetKey; + if ("B2".equals(suffix)) { + // 如果是B2数据,将其替换为A2来匹配配置项 + targetKey = key.replace("_B2", "_A2"); + mesData.put("TARGET_NAME", targetKey); + } else { + targetKey = key; } + collect = zl2TargetList.stream().filter(item -> item.getString("TARGET_NAME").equals(targetKey)).collect(Collectors.toList()); } } else if (key.contains("1#高炉")) { mesData.put("EQUIPMENT_ID", "c6825a6e1c959c3e5c800433516b2e8d"); @@ -356,30 +359,11 @@ public class MesDataScheduled extends IJobHandler { checkThresholdWithDelayConfirmation(mesData); } } + mesSaveList.add(mesData); } else { - mesData.put("IPCDEVICE_ID", ""); - mesData.put("DEVICE_ID",""); - mesData.put("PLC_ID", ""); - mesData.put("PLC_NAME", ""); - mesData.put("TARGET_TYPE", ""); - mesData.put("TARGET_PLACE", ""); - mesData.put("TARGET_UNIT", ""); - mesData.put("THRESHOLD_UP_LIMIT", ""); - mesData.put("THRESHOLD_UP_UP_LIMIT", ""); - mesData.put("THRESHOLD_DOWN_LIMIT", ""); - mesData.put("THRESHOLD_DOWN_DOWN_LIMIT", ""); - mesData.put("RANGE_UP", ""); - mesData.put("RANGE_DOWN", ""); - mesData.put("TARGET_DESCRIPTION", ""); - mesData.put("BIT_NO", ""); - mesData.put("SIGNAL_TYPE", ""); - mesData.put("ALARM_VALUE", ""); - mesData.put("TARGET_STATUS", ""); - mesData.put("CORPINFO_ID", ""); - mesData.put("REPORT_ID", ""); - mesData.put("OPEN_ALARM", ""); + // 如果没有匹配到配置数据,则不添加到mesSaveList中 + XxlJobHelper.log("未找到 {} 的配置数据,跳过处理", key); } - mesSaveList.add(mesData); } }