Commit 9e0b26ab12647bd08fe973f9fc8ffb8980201ba7

Authored by YevhenBondarenko
1 parent 430e96cd

fix getHighestAlarmSeverity for propagated entities

@@ -76,12 +76,17 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> { @@ -76,12 +76,17 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> {
76 @Param("searchText") String searchText, 76 @Param("searchText") String searchText,
77 Pageable pageable); 77 Pageable pageable);
78 78
79 - @Query("SELECT alarm.severity FROM AlarmEntity alarm" +  
80 - " WHERE alarm.tenantId = :tenantId" +  
81 - " AND alarm.originatorId = :entityId" +  
82 - " AND ((:status) IS NULL OR alarm.status in (:status))") 79 + @Query(value = "SELECT a.severity FROM AlarmEntity a " +
  80 + "LEFT JOIN RelationEntity re ON a.id = re.toId " +
  81 + "AND re.relationTypeGroup = 'ALARM' " +
  82 + "AND re.toType = 'ALARM' " +
  83 + "AND re.fromId = :affectedEntityId " +
  84 + "AND re.fromType = :affectedEntityType " +
  85 + "WHERE a.tenantId = :tenantId " +
  86 + "AND (a.originatorId = :affectedEntityId or re.fromId IS NOT NULL) " +
  87 + "AND ((:alarmStatuses) IS NULL OR a.status in (:alarmStatuses))")
83 Set<AlarmSeverity> findAlarmSeverities(@Param("tenantId") UUID tenantId, 88 Set<AlarmSeverity> findAlarmSeverities(@Param("tenantId") UUID tenantId,
84 - @Param("entityId") UUID entityId,  
85 - @Param("status") Set<AlarmStatus> status);  
86 - 89 + @Param("affectedEntityId") UUID affectedEntityId,
  90 + @Param("affectedEntityType") String affectedEntityType,
  91 + @Param("alarmStatuses") Set<AlarmStatus> alarmStatuses);
87 } 92 }
@@ -123,7 +123,7 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A @@ -123,7 +123,7 @@ public class JpaAlarmDao extends JpaAbstractDao<AlarmEntity, Alarm> implements A
123 } 123 }
124 124
125 @Override 125 @Override
126 - public Set<AlarmSeverity> findAlarmSeverities(TenantId tenantId, EntityId entityId, Set<AlarmStatus> status) {  
127 - return alarmRepository.findAlarmSeverities(tenantId.getId(), entityId.getId(), status); 126 + public Set<AlarmSeverity> findAlarmSeverities(TenantId tenantId, EntityId entityId, Set<AlarmStatus> statuses) {
  127 + return alarmRepository.findAlarmSeverities(tenantId.getId(), entityId.getId(), entityId.getEntityType().name(), statuses);
128 } 128 }
129 } 129 }