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 | 19 | import org.thingsboard.server.common.data.alarm.Alarm; |
20 | 20 | import org.thingsboard.server.common.data.alarm.AlarmInfo; |
21 | 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 | 24 | import org.thingsboard.server.common.data.id.CustomerId; |
23 | 25 | import org.thingsboard.server.common.data.id.EntityId; |
24 | 26 | import org.thingsboard.server.common.data.id.TenantId; |
25 | 27 | import org.thingsboard.server.common.data.page.PageData; |
26 | 28 | import org.thingsboard.server.common.data.query.AlarmData; |
27 | -import org.thingsboard.server.common.data.query.AlarmDataPageLink; | |
28 | 29 | import org.thingsboard.server.common.data.query.AlarmDataQuery; |
29 | 30 | import org.thingsboard.server.dao.Dao; |
30 | 31 | |
31 | 32 | import java.util.Collection; |
33 | +import java.util.Set; | |
32 | 34 | import java.util.UUID; |
33 | 35 | |
34 | 36 | /** |
... | ... | @@ -48,4 +50,6 @@ public interface AlarmDao extends Dao<Alarm> { |
48 | 50 | |
49 | 51 | PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId, CustomerId customerId, |
50 | 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 | 52 | import org.thingsboard.server.dao.entity.EntityService; |
53 | 53 | import org.thingsboard.server.dao.exception.DataValidationException; |
54 | 54 | import org.thingsboard.server.dao.service.DataValidator; |
55 | -import org.thingsboard.server.dao.sql.alarm.AlarmRepository; | |
56 | 55 | import org.thingsboard.server.dao.tenant.TenantDao; |
57 | 56 | |
58 | 57 | import javax.annotation.Nullable; |
... | ... | @@ -61,7 +60,6 @@ import javax.annotation.PreDestroy; |
61 | 60 | import java.util.ArrayList; |
62 | 61 | import java.util.Collection; |
63 | 62 | import java.util.Collections; |
64 | -import java.util.Comparator; | |
65 | 63 | import java.util.LinkedHashSet; |
66 | 64 | import java.util.List; |
67 | 65 | import java.util.Set; |
... | ... | @@ -89,9 +87,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ |
89 | 87 | @Autowired |
90 | 88 | private EntityService entityService; |
91 | 89 | |
92 | - @Autowired | |
93 | - private AlarmRepository alarmRepository; | |
94 | - | |
95 | 90 | protected ExecutorService readResultsProcessingExecutor; |
96 | 91 | |
97 | 92 | @PostConstruct |
... | ... | @@ -327,7 +322,7 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ |
327 | 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 | 327 | return alarmSeverities.stream().min(AlarmSeverity::compareTo).orElse(null); |
333 | 328 | } |
... | ... | @@ -336,16 +331,6 @@ public class BaseAlarmService extends AbstractEntityService implements AlarmServ |
336 | 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 | 334 | private void deleteRelation(TenantId tenantId, EntityRelation alarmRelation) { |
350 | 335 | log.debug("Deleting Alarm relation: {}", alarmRelation); |
351 | 336 | relationService.deleteRelation(tenantId, alarmRelation); | ... | ... |
... | ... | @@ -80,7 +80,7 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> { |
80 | 80 | " WHERE alarm.tenantId = :tenantId" + |
81 | 81 | " AND alarm.originatorId = :entityId" + |
82 | 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 | 84 | @Param("entityId") UUID entityId, |
85 | 85 | @Param("status") Set<AlarmStatus> status); |
86 | 86 | ... | ... |
... | ... | @@ -24,6 +24,7 @@ import org.springframework.stereotype.Component; |
24 | 24 | import org.thingsboard.server.common.data.alarm.Alarm; |
25 | 25 | import org.thingsboard.server.common.data.alarm.AlarmInfo; |
26 | 26 | import org.thingsboard.server.common.data.alarm.AlarmQuery; |
27 | +import org.thingsboard.server.common.data.alarm.AlarmSeverity; | |
27 | 28 | import org.thingsboard.server.common.data.alarm.AlarmStatus; |
28 | 29 | import org.thingsboard.server.common.data.id.CustomerId; |
29 | 30 | import org.thingsboard.server.common.data.id.EntityId; |
... | ... | @@ -120,4 +121,9 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A |
120 | 121 | public PageData<AlarmData> findAlarmDataByQueryForEntities(TenantId tenantId, CustomerId customerId, AlarmDataQuery query, Collection<EntityId> orderedEntityIds) { |
121 | 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 | 368 | customerDevice.setCustomerId(customer.getId()); |
369 | 369 | customerDevice = deviceService.saveDevice(customerDevice); |
370 | 370 | |
371 | - long ts = System.currentTimeMillis(); | |
372 | 371 | Alarm alarm1 = Alarm.builder() |
373 | 372 | .tenantId(tenantId) |
374 | 373 | .originator(customerDevice.getId()) |
375 | 374 | .type(TEST_ALARM) |
376 | 375 | .severity(AlarmSeverity.MAJOR) |
377 | 376 | .status(AlarmStatus.ACTIVE_UNACK) |
378 | - .startTs(ts) | |
377 | + .startTs(System.currentTimeMillis()) | |
379 | 378 | .build(); |
380 | 379 | alarm1 = alarmService.createOrUpdateAlarm(alarm1).getAlarm(); |
381 | 380 | alarmService.clearAlarm(tenantId, alarm1.getId(), null, System.currentTimeMillis()).get(); |
382 | 381 | |
383 | - ts = System.currentTimeMillis(); | |
384 | 382 | Alarm alarm2 = Alarm.builder() |
385 | 383 | .tenantId(tenantId) |
386 | 384 | .originator(customerDevice.getId()) |
387 | 385 | .type(TEST_ALARM) |
388 | 386 | .severity(AlarmSeverity.MINOR) |
389 | 387 | .status(AlarmStatus.ACTIVE_ACK) |
390 | - .startTs(ts) | |
388 | + .startTs(System.currentTimeMillis()) | |
391 | 389 | .build(); |
392 | 390 | alarm2 = alarmService.createOrUpdateAlarm(alarm2).getAlarm(); |
393 | 391 | alarmService.clearAlarm(tenantId, alarm2.getId(), null, System.currentTimeMillis()).get(); |
394 | 392 | |
395 | - ts = System.currentTimeMillis(); | |
396 | 393 | Alarm alarm3 = Alarm.builder() |
397 | 394 | .tenantId(tenantId) |
398 | 395 | .originator(customerDevice.getId()) |
399 | 396 | .type(TEST_ALARM) |
400 | 397 | .severity(AlarmSeverity.CRITICAL) |
401 | 398 | .status(AlarmStatus.ACTIVE_ACK) |
402 | - .startTs(ts) | |
399 | + .startTs(System.currentTimeMillis()) | |
403 | 400 | .build(); |
404 | 401 | alarm3 = alarmService.createOrUpdateAlarm(alarm3).getAlarm(); |
405 | 402 | ... | ... |