From 901b15945294322655f7f96c99703a0cb5eeeeb6 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Tue, 14 Apr 2026 22:31:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=B8=89=E7=9B=B8=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E7=BC=BA=E7=9B=B8=EF=BC=8C=E7=BC=BA=E7=9B=B8=E6=97=A0=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=EF=BC=8Cbug=E4=BF=AE=E5=A4=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../intc/iot/handler/DeviceDataHandler.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/intc-modules/intc-iot/src/main/java/com/intc/iot/handler/DeviceDataHandler.java b/intc-modules/intc-iot/src/main/java/com/intc/iot/handler/DeviceDataHandler.java index 34dc641..9a9ac06 100644 --- a/intc-modules/intc-iot/src/main/java/com/intc/iot/handler/DeviceDataHandler.java +++ b/intc-modules/intc-iot/src/main/java/com/intc/iot/handler/DeviceDataHandler.java @@ -1399,7 +1399,30 @@ public class DeviceDataHandler { String message = null; int switchIndex = 0; - if (errorCode >= DefineDeviceErrorCode.Three_Switch1LosePhaseA + if (errorCode >= DefineDeviceErrorCode.Three_InputLosePhaseA + && errorCode <= DefineDeviceErrorCode.Three_InputLosePhaseC) { + // 三相输入缺相(1001-1003):强制关闭所有4路开关 + String phaseName = DefineDeviceErrorCode.getPhaseName(errorCode - DefineDeviceErrorCode.Three_InputLosePhaseA); + for (int i = 1; i <= 4; i++) { + forceSwitchOff(device, i); + } + if (warnTrigger) { + title = "控制器输入缺相"; + message = String.format("%s塘口中%s(%s)输入缺%s相", + pondName, displayName, device.getSerialNum(), phaseName); + } + } else if (errorCode >= DefineDeviceErrorCode.Three_PhaseA_OverVoltage + && errorCode <= DefineDeviceErrorCode.Three_PhaseC_UnderVoltage) { + // 三相过压欠压(1004-1009):不强制关闭开关 + boolean isOver = (errorCode - DefineDeviceErrorCode.Three_PhaseA_OverVoltage) % 2 == 0; + int phaseIndex = (errorCode - DefineDeviceErrorCode.Three_PhaseA_OverVoltage) / 2; + String phaseName = DefineDeviceErrorCode.getPhaseName(phaseIndex); + if (warnTrigger) { + title = isOver ? "控制器输入过压" : "控制器输入欠压"; + message = String.format("%s塘口中%s(%s)%s相%s", + pondName, displayName, device.getSerialNum(), phaseName, isOver ? "过压" : "欠压"); + } + } else if (errorCode >= DefineDeviceErrorCode.Three_Switch1LosePhaseA && errorCode <= DefineDeviceErrorCode.Three_Switch4LosePhaseC) { // 三相开关输出缺相 int tempIndex = errorCode - DefineDeviceErrorCode.Three_Switch1LosePhaseA;