Browse Source

Merge branch 'feature/entity-alarm-rules' of github.com:thingsboard/thingsboard into feature/aggregation-cf

pull/14141/head
IrynaMatveieva 10 months ago
parent
commit
6ebbc6dcd7
  1. 7
      application/src/main/java/org/thingsboard/server/service/cf/AlarmCalculatedFieldResult.java
  2. 6
      application/src/main/java/org/thingsboard/server/service/cf/ctx/state/alarm/AlarmCalculatedFieldState.java
  3. 3
      common/data/src/main/java/org/thingsboard/server/common/data/msg/TbMsgType.java
  4. 2
      common/data/src/test/java/org/thingsboard/server/common/data/msg/TbMsgTypeTest.java

7
application/src/main/java/org/thingsboard/server/service/cf/AlarmCalculatedFieldResult.java

@ -38,15 +38,20 @@ public class AlarmCalculatedFieldResult implements CalculatedFieldResult {
@Override
public TbMsg toTbMsg(EntityId entityId, List<CalculatedFieldId> cfIds) {
TbMsgType msgType;
TbMsgMetaData metaData = new TbMsgMetaData();
if (alarmResult.isCreated()) {
msgType = TbMsgType.ALARM_CREATED;
metaData.putValue(DataConstants.IS_NEW_ALARM, Boolean.TRUE.toString());
} else if (alarmResult.isUpdated()) {
msgType = TbMsgType.ALARM_UPDATED;
metaData.putValue(DataConstants.IS_EXISTING_ALARM, Boolean.TRUE.toString());
} else if (alarmResult.isSeverityUpdated()) {
msgType = TbMsgType.ALARM_SEVERITY_UPDATED;
metaData.putValue(DataConstants.IS_EXISTING_ALARM, Boolean.TRUE.toString());
metaData.putValue(DataConstants.IS_SEVERITY_UPDATED_ALARM, Boolean.TRUE.toString());
} else {
msgType = TbMsgType.ALARM_CLEAR;
metaData.putValue(DataConstants.IS_CLEARED_ALARM, Boolean.TRUE.toString());
}
if (alarmResult.getConditionRepeats() != null) {
@ -57,7 +62,7 @@ public class AlarmCalculatedFieldResult implements CalculatedFieldResult {
}
return TbMsg.newMsg()
.type(TbMsgType.ALARM)
.type(msgType)
.originator(entityId)
.data(JacksonUtil.toString(alarmResult.getAlarm()))
.metaData(metaData)

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

3
common/data/src/main/java/org/thingsboard/server/common/data/msg/TbMsgType.java

@ -39,6 +39,9 @@ public enum TbMsgType {
ATTRIBUTES_UPDATED("Attributes Updated"),
ATTRIBUTES_DELETED("Attributes Deleted"),
ALARM("Alarm"),
ALARM_CREATED("Alarm Created"),
ALARM_UPDATED("Alarm Updated"),
ALARM_SEVERITY_UPDATED("Alarm Severity Updated"),
ALARM_ACK("Alarm Acknowledged"),
ALARM_CLEAR("Alarm Cleared"),
ALARM_DELETE,

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 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.DEDUPLICATION_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 {
private static final List<TbMsgType> typesWithNullRuleNodeConnection = List.of(
ALARM,
ALARM_DELETE,
ENTITY_ASSIGNED_TO_EDGE,
ENTITY_UNASSIGNED_FROM_EDGE,

Loading…
Cancel
Save