Commit 0a27101e1f10fab4b8d3623ccf4d903323bad31e

Authored by Igor Kulikov
Committed by GitHub
2 parents bffd1368 9e0b26ab

Merge pull request #4262 from YevhenBondarenko/fix/getHighestAlarmSeverity

fix getHighestAlarmSeverity for propagated entities
... ... @@ -76,12 +76,17 @@ public interface AlarmRepository extends CrudRepository<AlarmEntity, UUID> {
76 76 @Param("searchText") String searchText,
77 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 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 123 }
124 124
125 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 }
... ...