Commit beeade8b07fab33cba37e458da49d2223c4e3257
1 parent
581bb536
findHighestAlarmStatus: code cleaning
Showing
5 changed files
with
16 additions
and
24 deletions
@@ -19,16 +19,18 @@ import com.google.common.util.concurrent.ListenableFuture; | @@ -19,16 +19,18 @@ import com.google.common.util.concurrent.ListenableFuture; | ||
19 | import org.thingsboard.server.common.data.alarm.Alarm; | 19 | import org.thingsboard.server.common.data.alarm.Alarm; |
20 | import org.thingsboard.server.common.data.alarm.AlarmInfo; | 20 | import org.thingsboard.server.common.data.alarm.AlarmInfo; |
21 | import org.thingsboard.server.common.data.alarm.AlarmQuery; | 21 | import org.thingsboard.server.common.data.alarm.AlarmQuery; |
22 | +import org.thingsboard.server.common.data.alarm.AlarmSeverity; | ||
23 | +import org.thingsboard.server.common.data.alarm.AlarmStatus; | ||
22 | import org.thingsboard.server.common.data.id.CustomerId; | 24 | import org.thingsboard.server.common.data.id.CustomerId; |
23 | import org.thingsboard.server.common.data.id.EntityId; | 25 | import org.thingsboard.server.common.data.id.EntityId; |
24 | import org.thingsboard.server.common.data.id.TenantId; | 26 | import org.thingsboard.server.common.data.id.TenantId; |
25 | import org.thingsboard.server.common.data.page.PageData; | 27 | import org.thingsboard.server.common.data.page.PageData; |
26 | import org.thingsboard.server.common.data.query.AlarmData; | 28 | import org.thingsboard.server.common.data.query.AlarmData; |
27 | -import org.thingsboard.server.common.data.query.AlarmDataPageLink; | ||
28 | import org.thingsboard.server.common.data.query.AlarmDataQuery; | 29 | import org.thingsboard.server.common.data.query.AlarmDataQuery; |
29 | import org.thingsboard.server.dao.Dao; | 30 | import org.thingsboard.server.dao.Dao; |
30 | 31 | ||
31 | import java.util.Collection; | 32 | import java.util.Collection; |
33 | +import java.util.Set; | ||
32 | import java.util.UUID; | 34 | import java.util.UUID; |
33 | 35 | ||
34 | /** | 36 | /** |
@@ -48,4 +50,6 @@ public interface AlarmDao extends Dao<Alarm> { | @@ -48,4 +50,6 @@ public interface AlarmDao extends Dao<Alarm> { | ||
48 | 50 | ||
49 | PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId, CustomerId customerId, | 51 | PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId, CustomerId customerId, |
50 | AlarmDataQuery query, Collection<EntityId> orderedEntityIds); | 52 | AlarmDataQuery query, Collection<EntityId> orderedEntityIds); |
53 | + | ||
54 | + Set<AlarmSeverity> findAlarmSeverities(TenantId tenantId, EntityId entityId, Set<AlarmStatus> status); | ||
51 | } | 55 | } |
@@ -52,7 +52,6 @@ import org.thingsboard.server.dao.entity.AbstractEntityService; | @@ -52,7 +52,6 @@ import org.thingsboard.server.dao.entity.AbstractEntityService; | ||
52 | import org.thingsboard.server.dao.entity.EntityService; | 52 | import org.thingsboard.server.dao.entity.EntityService; |
53 | import org.thingsboard.server.dao.exception.DataValidationException; | 53 | import org.thingsboard.server.dao.exception.DataValidationException; |
54 | import org.thingsboard.server.dao.service.DataValidator; | 54 | import org.thingsboard.server.dao.service.DataValidator; |
55 | -import org.thingsboard.server.dao.sql.alarm.AlarmRepository; | ||
56 | import org.thingsboard.server.dao.tenant.TenantDao; | 55 | import org.thingsboard.server.dao.tenant.TenantDao; |
57 | 56 | ||
58 | import javax.annotation.Nullable; | 57 | import javax.annotation.Nullable; |
@@ -61,7 +60,6 @@ import javax.annotation.PreDestroy; | @@ -61,7 +60,6 @@ import javax.annotation.PreDestroy; | ||
61 | import java.util.ArrayList; | 60 | import java.util.ArrayList; |
62 | import java.util.Collection; | 61 | import java.util.Collection; |
63 | import java.util.Collections; | 62 | import java.util.Collections; |
64 | -import java.util.Comparator; | ||
65 | import java.util.LinkedHashSet; | 63 | import java.util.LinkedHashSet; |
66 | import java.util.List; | 64 | import java.util.List; |
67 | import java.util.Set; | 65 | import java.util.Set; |
@@ -89,9 +87,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ | @@ -89,9 +87,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ | ||
89 | @Autowired | 87 | @Autowired |
90 | private EntityService entityService; | 88 | private EntityService entityService; |
91 | 89 | ||
92 | - @Autowired | ||
93 | - private AlarmRepository alarmRepository; | ||
94 | - | ||
95 | protected ExecutorService readResultsProcessingExecutor; | 90 | protected ExecutorService readResultsProcessingExecutor; |
96 | 91 | ||
97 | @PostConstruct | 92 | @PostConstruct |
@@ -327,7 +322,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ | @@ -327,7 +322,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ | ||
327 | statusList = Collections.singleton(alarmStatus); | 322 | statusList = Collections.singleton(alarmStatus); |
328 | } | 323 | } |
329 | 324 | ||
330 | - List<AlarmSeverity> alarmSeverities = alarmRepository.findHighestAlarmSeverity(tenantId.getId(), entityId.getId(), statusList); | 325 | + Set<AlarmSeverity> alarmSeverities = alarmDao.findAlarmSeverities(tenantId, entityId, statusList); |
331 | 326 | ||
332 | return alarmSeverities.stream().min(AlarmSeverity::compareTo).orElse(null); | 327 | return alarmSeverities.stream().min(AlarmSeverity::compareTo).orElse(null); |
333 | } | 328 | } |
@@ -336,16 +331,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ | @@ -336,16 +331,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ | ||
336 | return new AlarmDataQuery(new DeviceTypeFilter(), pageLink, null, null, null, Collections.EMPTY_LIST); | 331 | return new AlarmDataQuery(new DeviceTypeFilter(), pageLink, null, null, null, Collections.EMPTY_LIST); |
337 | } | 332 | } |
338 | 333 | ||
339 | - private AlarmSeverity detectHighestSeverity(List<AlarmData> alarms) { | ||
340 | - if (!alarms.isEmpty()) { | ||
341 | - List<AlarmInfo> sorted = new ArrayList(alarms); | ||
342 | - sorted.sort(Comparator.comparing(Alarm::getSeverity)); | ||
343 | - return sorted.get(0).getSeverity(); | ||
344 | - } else { | ||
345 | - return null; | ||
346 | - } | ||
347 | - } | ||
348 | - | ||
349 | private void deleteRelation(TenantId tenantId, EntityRelation alarmRelation) { | 334 | private void deleteRelation(TenantId tenantId, EntityRelation alarmRelation) { |
350 | log.debug("Deleting Alarm relation: {}", alarmRelation); | 335 | log.debug("Deleting Alarm relation: {}", alarmRelation); |
351 | relationService.deleteRelation(tenantId, alarmRelation); | 336 | relationService.deleteRelation(tenantId, alarmRelation); |
@@ -80,7 +80,7 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> { | @@ -80,7 +80,7 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> { | ||
80 | " WHERE alarm.tenantId = :tenantId" + | 80 | " WHERE alarm.tenantId = :tenantId" + |
81 | " AND alarm.originatorId = :entityId" + | 81 | " AND alarm.originatorId = :entityId" + |
82 | " AND ((:status) IS NULL OR alarm.status in (:status))") | 82 | " AND ((:status) IS NULL OR alarm.status in (:status))") |
83 | - List<AlarmSeverity> findHighestAlarmSeverity(@Param("tenantId") UUID tenantId, | 83 | + Set<AlarmSeverity> findAlarmSeverities(@Param("tenantId") UUID tenantId, |
84 | @Param("entityId") UUID entityId, | 84 | @Param("entityId") UUID entityId, |
85 | @Param("status") Set<AlarmStatus> status); | 85 | @Param("status") Set<AlarmStatus> status); |
86 | 86 |
@@ -24,6 +24,7 @@ import org.springframework.stereotype.Component; | @@ -24,6 +24,7 @@ import org.springframework.stereotype.Component; | ||
24 | import org.thingsboard.server.common.data.alarm.Alarm; | 24 | import org.thingsboard.server.common.data.alarm.Alarm; |
25 | import org.thingsboard.server.common.data.alarm.AlarmInfo; | 25 | import org.thingsboard.server.common.data.alarm.AlarmInfo; |
26 | import org.thingsboard.server.common.data.alarm.AlarmQuery; | 26 | import org.thingsboard.server.common.data.alarm.AlarmQuery; |
27 | +import org.thingsboard.server.common.data.alarm.AlarmSeverity; | ||
27 | import org.thingsboard.server.common.data.alarm.AlarmStatus; | 28 | import org.thingsboard.server.common.data.alarm.AlarmStatus; |
28 | import org.thingsboard.server.common.data.id.CustomerId; | 29 | import org.thingsboard.server.common.data.id.CustomerId; |
29 | import org.thingsboard.server.common.data.id.EntityId; | 30 | import org.thingsboard.server.common.data.id.EntityId; |
@@ -120,4 +121,9 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A | @@ -120,4 +121,9 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A | ||
120 | public PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId, CustomerId customerId, AlarmDataQuery query, Collection<EntityId> orderedEntityIds) { | 121 | public PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId, CustomerId customerId, AlarmDataQuery query, Collection<EntityId> orderedEntityIds) { |
121 | return alarmQueryRepository.findAlarmDataByQueryForEntities(tenantId, customerId, query, orderedEntityIds); | 122 | return alarmQueryRepository.findAlarmDataByQueryForEntities(tenantId, customerId, query, orderedEntityIds); |
122 | } | 123 | } |
124 | + | ||
125 | + @Override | ||
126 | + public Set<AlarmSeverity> findAlarmSeverities(TenantId tenantId, EntityId entityId, Set<AlarmStatus> status) { | ||
127 | + return alarmRepository.findAlarmSeverities(tenantId.getId(), entityId.getId(), status); | ||
128 | + } | ||
123 | } | 129 | } |
@@ -368,38 +368,35 @@ public abstract class BaseAlarmServiceTest extends AbstractServiceTest { | @@ -368,38 +368,35 @@ public abstract class BaseAlarmServiceTest extends AbstractServiceTest { | ||
368 | customerDevice.setCustomerId(customer.getId()); | 368 | customerDevice.setCustomerId(customer.getId()); |
369 | customerDevice = deviceService.saveDevice(customerDevice); | 369 | customerDevice = deviceService.saveDevice(customerDevice); |
370 | 370 | ||
371 | - long ts = System.currentTimeMillis(); | ||
372 | Alarm alarm1 = Alarm.builder() | 371 | Alarm alarm1 = Alarm.builder() |
373 | .tenantId(tenantId) | 372 | .tenantId(tenantId) |
374 | .originator(customerDevice.getId()) | 373 | .originator(customerDevice.getId()) |
375 | .type(TEST_ALARM) | 374 | .type(TEST_ALARM) |
376 | .severity(AlarmSeverity.MAJOR) | 375 | .severity(AlarmSeverity.MAJOR) |
377 | .status(AlarmStatus.ACTIVE_UNACK) | 376 | .status(AlarmStatus.ACTIVE_UNACK) |
378 | - .startTs(ts) | 377 | + .startTs(System.currentTimeMillis()) |
379 | .build(); | 378 | .build(); |
380 | alarm1 = alarmService.createOrUpdateAlarm(alarm1).getAlarm(); | 379 | alarm1 = alarmService.createOrUpdateAlarm(alarm1).getAlarm(); |
381 | alarmService.clearAlarm(tenantId, alarm1.getId(), null, System.currentTimeMillis()).get(); | 380 | alarmService.clearAlarm(tenantId, alarm1.getId(), null, System.currentTimeMillis()).get(); |
382 | 381 | ||
383 | - ts = System.currentTimeMillis(); | ||
384 | Alarm alarm2 = Alarm.builder() | 382 | Alarm alarm2 = Alarm.builder() |
385 | .tenantId(tenantId) | 383 | .tenantId(tenantId) |
386 | .originator(customerDevice.getId()) | 384 | .originator(customerDevice.getId()) |
387 | .type(TEST_ALARM) | 385 | .type(TEST_ALARM) |
388 | .severity(AlarmSeverity.MINOR) | 386 | .severity(AlarmSeverity.MINOR) |
389 | .status(AlarmStatus.ACTIVE_ACK) | 387 | .status(AlarmStatus.ACTIVE_ACK) |
390 | - .startTs(ts) | 388 | + .startTs(System.currentTimeMillis()) |
391 | .build(); | 389 | .build(); |
392 | alarm2 = alarmService.createOrUpdateAlarm(alarm2).getAlarm(); | 390 | alarm2 = alarmService.createOrUpdateAlarm(alarm2).getAlarm(); |
393 | alarmService.clearAlarm(tenantId, alarm2.getId(), null, System.currentTimeMillis()).get(); | 391 | alarmService.clearAlarm(tenantId, alarm2.getId(), null, System.currentTimeMillis()).get(); |
394 | 392 | ||
395 | - ts = System.currentTimeMillis(); | ||
396 | Alarm alarm3 = Alarm.builder() | 393 | Alarm alarm3 = Alarm.builder() |
397 | .tenantId(tenantId) | 394 | .tenantId(tenantId) |
398 | .originator(customerDevice.getId()) | 395 | .originator(customerDevice.getId()) |
399 | .type(TEST_ALARM) | 396 | .type(TEST_ALARM) |
400 | .severity(AlarmSeverity.CRITICAL) | 397 | .severity(AlarmSeverity.CRITICAL) |
401 | .status(AlarmStatus.ACTIVE_ACK) | 398 | .status(AlarmStatus.ACTIVE_ACK) |
402 | - .startTs(ts) | 399 | + .startTs(System.currentTimeMillis()) |
403 | .build(); | 400 | .build(); |
404 | alarm3 = alarmService.createOrUpdateAlarm(alarm3).getAlarm(); | 401 | alarm3 = alarmService.createOrUpdateAlarm(alarm3).getAlarm(); |
405 | 402 |