Browse Source

Merge pull request #4262 from YevhenBondarenko/fix/getHighestAlarmSeverity

fix getHighestAlarmSeverity for propagated entities
pull/4266/head
Igor Kulikov 6 years ago
committed by GitHub
parent
commit
0a27101e1f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
  2. 4
      dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java

19
dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java

@ -76,12 +76,17 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> {
@Param("searchText") String searchText, @Param("searchText") String searchText,
Pageable pageable); Pageable pageable);
@Query("SELECT alarm.severity FROM AlarmEntity alarm" + @Query(value = "SELECT a.severity FROM AlarmEntity a " +
" WHERE alarm.tenantId = :tenantId" + "LEFT JOIN RelationEntity re ON a.id = re.toId " +
" AND alarm.originatorId = :entityId" + "AND re.relationTypeGroup = 'ALARM' " +
" AND ((:status) IS NULL OR alarm.status in (:status))") "AND re.toType = 'ALARM' " +
"AND re.fromId = :affectedEntityId " +
"AND re.fromType = :affectedEntityType " +
"WHERE a.tenantId = :tenantId " +
"AND (a.originatorId = :affectedEntityId or re.fromId IS NOT NULL) " +
"AND ((:alarmStatuses) IS NULL OR a.status in (:alarmStatuses))")
Set<AlarmSeverity> findAlarmSeverities(@Param("tenantId") UUID tenantId, Set<AlarmSeverity> findAlarmSeverities(@Param("tenantId") UUID tenantId,
@Param("entityId") UUID entityId, @Param("affectedEntityId") UUID affectedEntityId,
@Param("status") Set<AlarmStatus> status); @Param("affectedEntityType") String affectedEntityType,
@Param("alarmStatuses") Set<AlarmStatus> alarmStatuses);
} }

4
dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java

@ -123,7 +123,7 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A
} }
@Override @Override
public Set<AlarmSeverity> findAlarmSeverities(TenantId tenantId, EntityId entityId, Set<AlarmStatus> status) { public Set<AlarmSeverity> findAlarmSeverities(TenantId tenantId, EntityId entityId, Set<AlarmStatus> statuses) {
return alarmRepository.findAlarmSeverities(tenantId.getId(), entityId.getId(), status); return alarmRepository.findAlarmSeverities(tenantId.getId(), entityId.getId(), entityId.getEntityType().name(), statuses);
} }
} }

Loading…
Cancel
Save