Browse Source

Alarm rules CF: improve alarm action handling

pull/14193/head
VIacheslavKlimov 12 months ago
parent
commit
43004ff5d8
  1. 6
      application/src/main/java/org/thingsboard/server/service/cf/ctx/state/alarm/AlarmCalculatedFieldState.java
  2. 2
      common/data/src/test/java/org/thingsboard/server/common/data/msg/TbMsgTypeTest.java

6
application/src/main/java/org/thingsboard/server/service/cf/ctx/state/alarm/AlarmCalculatedFieldState.java

@ -223,6 +223,9 @@ public class AlarmCalculatedFieldState extends BaseCalculatedFieldState {
private void processAlarmClear(Alarm alarm) { private void processAlarmClear(Alarm alarm) {
currentAlarm = null; currentAlarm = null;
createRuleStates.values().forEach(AlarmRuleState::clear); createRuleStates.values().forEach(AlarmRuleState::clear);
createRuleStates.clear();
clearState(clearRuleState);
clearRuleState = null;
} }
private void processAlarmAck(Alarm alarm) { private void processAlarmAck(Alarm alarm) {
@ -231,8 +234,7 @@ public class AlarmCalculatedFieldState extends BaseCalculatedFieldState {
} }
private void processAlarmDelete(Alarm alarm) { private void processAlarmDelete(Alarm alarm) {
currentAlarm = null; processAlarmClear(alarm);
createRuleStates.values().forEach(AlarmRuleState::clear);
} }
private TbAlarmResult createOrClearAlarms(Function<AlarmRuleState, AlarmEvalResult> evalFunction, private TbAlarmResult createOrClearAlarms(Function<AlarmRuleState, AlarmEvalResult> evalFunction,

2
common/data/src/test/java/org/thingsboard/server/common/data/msg/TbMsgTypeTest.java

@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test;
import java.util.List; import java.util.List;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.thingsboard.server.common.data.msg.TbMsgType.ALARM;
import static org.thingsboard.server.common.data.msg.TbMsgType.ALARM_DELETE; import static org.thingsboard.server.common.data.msg.TbMsgType.ALARM_DELETE;
import static org.thingsboard.server.common.data.msg.TbMsgType.DEDUPLICATION_TIMEOUT_SELF_MSG; import static org.thingsboard.server.common.data.msg.TbMsgType.DEDUPLICATION_TIMEOUT_SELF_MSG;
import static org.thingsboard.server.common.data.msg.TbMsgType.DELAY_TIMEOUT_SELF_MSG; import static org.thingsboard.server.common.data.msg.TbMsgType.DELAY_TIMEOUT_SELF_MSG;
@ -39,7 +38,6 @@ import static org.thingsboard.server.common.data.msg.TbMsgType.SEND_EMAIL;
class TbMsgTypeTest { class TbMsgTypeTest {
private static final List<TbMsgType> typesWithNullRuleNodeConnection = List.of( private static final List<TbMsgType> typesWithNullRuleNodeConnection = List.of(
ALARM,
ALARM_DELETE, ALARM_DELETE,
ENTITY_ASSIGNED_TO_EDGE, ENTITY_ASSIGNED_TO_EDGE,
ENTITY_UNASSIGNED_FROM_EDGE, ENTITY_UNASSIGNED_FROM_EDGE,

Loading…
Cancel
Save