Refactor
This commit is contained in:
parent
1c1e3f9b96
commit
c39fb8c94d
@ -87,13 +87,7 @@ public class DefaultAlarmSubscriptionService extends AbstractSubscriptionService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Alarm createOrUpdateAlarm(Alarm alarm) {
|
public Alarm createOrUpdateAlarm(Alarm alarm) {
|
||||||
AlarmOperationResult result = alarmService.createOrUpdateAlarm(alarm,
|
AlarmOperationResult result = alarmService.createOrUpdateAlarm(alarm, apiUsageStateService.getApiUsageState(alarm.getTenantId()).isAlarmCreationEnabled());
|
||||||
() -> {
|
|
||||||
if (!apiUsageStateService.getApiUsageState(alarm.getTenantId()).isAlarmCreationEnabled()) {
|
|
||||||
throw new IllegalStateException("Alarms creation is disabled due to API limits");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
() -> {});
|
|
||||||
if (result.isSuccessful()) {
|
if (result.isSuccessful()) {
|
||||||
onAlarmUpdated(result);
|
onAlarmUpdated(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,9 +29,7 @@ import org.thingsboard.server.common.data.id.EntityId;
|
|||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.page.PageData;
|
import org.thingsboard.server.common.data.page.PageData;
|
||||||
import org.thingsboard.server.common.data.query.AlarmData;
|
import org.thingsboard.server.common.data.query.AlarmData;
|
||||||
import org.thingsboard.server.common.data.query.AlarmDataPageLink;
|
|
||||||
import org.thingsboard.server.common.data.query.AlarmDataQuery;
|
import org.thingsboard.server.common.data.query.AlarmDataQuery;
|
||||||
import org.thingsboard.server.common.msg.queue.TbCallback;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@ -42,7 +40,7 @@ public interface AlarmService {
|
|||||||
|
|
||||||
AlarmOperationResult createOrUpdateAlarm(Alarm alarm);
|
AlarmOperationResult createOrUpdateAlarm(Alarm alarm);
|
||||||
|
|
||||||
AlarmOperationResult createOrUpdateAlarm(Alarm alarm, Runnable onAlarmCreation, Runnable onAlarmUpdate);
|
AlarmOperationResult createOrUpdateAlarm(Alarm alarm, boolean alarmCreationEnabled);
|
||||||
|
|
||||||
AlarmOperationResult deleteAlarm(TenantId tenantId, AlarmId alarmId);
|
AlarmOperationResult deleteAlarm(TenantId tenantId, AlarmId alarmId);
|
||||||
|
|
||||||
|
|||||||
@ -41,13 +41,11 @@ import org.thingsboard.server.common.data.id.TenantId;
|
|||||||
import org.thingsboard.server.common.data.page.PageData;
|
import org.thingsboard.server.common.data.page.PageData;
|
||||||
import org.thingsboard.server.common.data.query.AlarmData;
|
import org.thingsboard.server.common.data.query.AlarmData;
|
||||||
import org.thingsboard.server.common.data.query.AlarmDataQuery;
|
import org.thingsboard.server.common.data.query.AlarmDataQuery;
|
||||||
import org.thingsboard.server.common.data.query.DeviceTypeFilter;
|
|
||||||
import org.thingsboard.server.common.data.relation.EntityRelation;
|
import org.thingsboard.server.common.data.relation.EntityRelation;
|
||||||
import org.thingsboard.server.common.data.relation.EntityRelationsQuery;
|
import org.thingsboard.server.common.data.relation.EntityRelationsQuery;
|
||||||
import org.thingsboard.server.common.data.relation.EntitySearchDirection;
|
import org.thingsboard.server.common.data.relation.EntitySearchDirection;
|
||||||
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
|
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
|
||||||
import org.thingsboard.server.common.data.relation.RelationsSearchParameters;
|
import org.thingsboard.server.common.data.relation.RelationsSearchParameters;
|
||||||
import org.thingsboard.server.common.msg.queue.TbCallback;
|
|
||||||
import org.thingsboard.server.dao.entity.AbstractEntityService;
|
import org.thingsboard.server.dao.entity.AbstractEntityService;
|
||||||
import org.thingsboard.server.dao.entity.EntityService;
|
import org.thingsboard.server.dao.entity.EntityService;
|
||||||
import org.thingsboard.server.dao.exception.DataValidationException;
|
import org.thingsboard.server.dao.exception.DataValidationException;
|
||||||
@ -66,7 +64,6 @@ import java.util.Set;
|
|||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@ -104,11 +101,11 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlarmOperationResult createOrUpdateAlarm(Alarm alarm) {
|
public AlarmOperationResult createOrUpdateAlarm(Alarm alarm) {
|
||||||
return createOrUpdateAlarm(alarm, () -> {}, () -> {});
|
return createOrUpdateAlarm(alarm, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AlarmOperationResult createOrUpdateAlarm(Alarm alarm, Runnable onAlarmCreation, Runnable onAlarmUpdate) {
|
public AlarmOperationResult createOrUpdateAlarm(Alarm alarm, boolean alarmCreationEnabled) {
|
||||||
alarmDataValidator.validate(alarm, Alarm::getTenantId);
|
alarmDataValidator.validate(alarm, Alarm::getTenantId);
|
||||||
try {
|
try {
|
||||||
if (alarm.getStartTs() == 0L) {
|
if (alarm.getStartTs() == 0L) {
|
||||||
@ -121,14 +118,14 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ
|
|||||||
if (alarm.getId() == null) {
|
if (alarm.getId() == null) {
|
||||||
Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType()).get();
|
Alarm existing = alarmDao.findLatestByOriginatorAndType(alarm.getTenantId(), alarm.getOriginator(), alarm.getType()).get();
|
||||||
if (existing == null || existing.getStatus().isCleared()) {
|
if (existing == null || existing.getStatus().isCleared()) {
|
||||||
onAlarmCreation.run();
|
if (!alarmCreationEnabled) {
|
||||||
|
throw new IllegalStateException("Alarm creation is disabled");
|
||||||
|
}
|
||||||
return createAlarm(alarm);
|
return createAlarm(alarm);
|
||||||
} else {
|
} else {
|
||||||
onAlarmUpdate.run();
|
|
||||||
return updateAlarm(existing, alarm);
|
return updateAlarm(existing, alarm);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
onAlarmUpdate.run();
|
|
||||||
return updateAlarm(alarm).get();
|
return updateAlarm(alarm).get();
|
||||||
}
|
}
|
||||||
} catch (ExecutionException | InterruptedException e) {
|
} catch (ExecutionException | InterruptedException e) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user