Commit 0a27101e1f10fab4b8d3623ccf4d903323bad31e
Committed by
GitHub
Merge pull request #4262 from YevhenBondarenko/fix/getHighestAlarmSeverity
fix getHighestAlarmSeverity for propagated entities
Showing
2 changed files
with
14 additions
and
9 deletions
... | ... | @@ -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 | } | ... | ... |