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;