Commit c4d7f52cf3e0c552286b1848074b0e6d2c1713b8
1 parent
d34c54b3
filtering EdgeEvents with TIMESERIES_UPDATE
Showing
6 changed files
with
19 additions
and
10 deletions
... | ... | @@ -61,7 +61,7 @@ public class EdgeEventController extends BaseController { |
61 | 61 | EdgeId edgeId = new EdgeId(toUUID(strEdgeId)); |
62 | 62 | checkEdgeId(edgeId, Operation.READ); |
63 | 63 | TimePageLink pageLink = createPageLink(limit, startTime, endTime, ascOrder, offset); |
64 | - return checkNotNull(edgeEventService.findEdgeEvents(tenantId, edgeId, pageLink)); | |
64 | + return checkNotNull(edgeEventService.findEdgeEvents(tenantId, edgeId, pageLink, false)); | |
65 | 65 | } catch (Exception e) { |
66 | 66 | throw handleException(e); |
67 | 67 | } | ... | ... |
... | ... | @@ -16,9 +16,7 @@ |
16 | 16 | package org.thingsboard.server.dao.edge; |
17 | 17 | |
18 | 18 | import com.google.common.util.concurrent.ListenableFuture; |
19 | -import org.thingsboard.server.common.data.EntityType; | |
20 | 19 | import org.thingsboard.server.common.data.edge.EdgeEvent; |
21 | -import org.thingsboard.server.common.data.edge.EdgeEventType; | |
22 | 20 | import org.thingsboard.server.common.data.id.EdgeId; |
23 | 21 | import org.thingsboard.server.common.data.id.TenantId; |
24 | 22 | import org.thingsboard.server.common.data.page.TimePageData; |
... | ... | @@ -30,4 +28,5 @@ public interface EdgeEventService { |
30 | 28 | |
31 | 29 | TimePageData<EdgeEvent> findEdgeEvents(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink); |
32 | 30 | |
31 | + TimePageData<EdgeEvent> findEdgeEvents(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink, boolean withTsUpdate); | |
33 | 32 | } | ... | ... |
... | ... | @@ -35,7 +35,7 @@ import java.util.List; |
35 | 35 | public class BaseEdgeEventService implements EdgeEventService { |
36 | 36 | |
37 | 37 | @Autowired |
38 | - public EdgeEventDao edgeEventDao; | |
38 | + private EdgeEventDao edgeEventDao; | |
39 | 39 | |
40 | 40 | @Override |
41 | 41 | public ListenableFuture<EdgeEvent> saveAsync(EdgeEvent edgeEvent) { |
... | ... | @@ -45,7 +45,12 @@ public class BaseEdgeEventService implements EdgeEventService { |
45 | 45 | |
46 | 46 | @Override |
47 | 47 | public TimePageData<EdgeEvent> findEdgeEvents(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink) { |
48 | - List<EdgeEvent> events = edgeEventDao.findEdgeEvents(tenantId.getId(), edgeId, pageLink); | |
48 | + return findEdgeEvents(tenantId, edgeId, pageLink, true); | |
49 | + } | |
50 | + | |
51 | + @Override | |
52 | + public TimePageData<EdgeEvent> findEdgeEvents(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink, boolean withTsUpdate) { | |
53 | + List<EdgeEvent> events = edgeEventDao.findEdgeEvents(tenantId.getId(), edgeId, pageLink, withTsUpdate); | |
49 | 54 | return new TimePageData<>(events, pageLink); |
50 | 55 | } |
51 | 56 | ... | ... |
... | ... | @@ -53,7 +53,7 @@ public class CassandraEdgeEventDao extends CassandraAbstractSearchTimeDao<EdgeEv |
53 | 53 | } |
54 | 54 | |
55 | 55 | @Override |
56 | - public List<EdgeEvent> findEdgeEvents(UUID tenantId, EdgeId edgeId, TimePageLink pageLink) { | |
56 | + public List<EdgeEvent> findEdgeEvents(UUID tenantId, EdgeId edgeId, TimePageLink pageLink, boolean withTsUpdate) { | |
57 | 57 | return null; |
58 | 58 | } |
59 | 59 | } | ... | ... |
... | ... | @@ -46,6 +46,6 @@ public interface EdgeEventDao extends Dao<EdgeEvent> { |
46 | 46 | * @param pageLink the pageLink |
47 | 47 | * @return the event list |
48 | 48 | */ |
49 | - List<EdgeEvent> findEdgeEvents(UUID tenantId, EdgeId edgeId, TimePageLink pageLink); | |
49 | + List<EdgeEvent> findEdgeEvents(UUID tenantId, EdgeId edgeId, TimePageLink pageLink, boolean withTsUpdate); | |
50 | 50 | |
51 | 51 | } | ... | ... |
... | ... | @@ -26,6 +26,7 @@ import org.springframework.data.jpa.domain.Specification; |
26 | 26 | import org.springframework.data.repository.CrudRepository; |
27 | 27 | import org.springframework.stereotype.Component; |
28 | 28 | import org.thingsboard.server.common.data.UUIDConverter; |
29 | +import org.thingsboard.server.common.data.audit.ActionType; | |
29 | 30 | import org.thingsboard.server.common.data.edge.EdgeEvent; |
30 | 31 | import org.thingsboard.server.common.data.id.EdgeEventId; |
31 | 32 | import org.thingsboard.server.common.data.id.EdgeId; |
... | ... | @@ -75,9 +76,9 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTimeDao<EdgeEventEntit |
75 | 76 | } |
76 | 77 | |
77 | 78 | @Override |
78 | - public List<EdgeEvent> findEdgeEvents(UUID tenantId, EdgeId edgeId, TimePageLink pageLink) { | |
79 | + public List<EdgeEvent> findEdgeEvents(UUID tenantId, EdgeId edgeId, TimePageLink pageLink, boolean withTsUpdate) { | |
79 | 80 | Specification<EdgeEventEntity> timeSearchSpec = JpaAbstractSearchTimeDao.getTimeSearchPageSpec(pageLink, "id"); |
80 | - Specification<EdgeEventEntity> fieldsSpec = getEntityFieldsSpec(tenantId, edgeId); | |
81 | + Specification<EdgeEventEntity> fieldsSpec = getEntityFieldsSpec(tenantId, edgeId, withTsUpdate); | |
81 | 82 | Sort.Direction sortDirection = pageLink.isAscOrder() ? Sort.Direction.ASC : Sort.Direction.DESC; |
82 | 83 | Pageable pageable = PageRequest.of(0, pageLink.getLimit(), sortDirection, ID_PROPERTY); |
83 | 84 | return DaoUtil.convertDataList(edgeEventRepository.findAll(Specification.where(timeSearchSpec).and(fieldsSpec), pageable).getContent()); |
... | ... | @@ -95,7 +96,7 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTimeDao<EdgeEventEntit |
95 | 96 | return Optional.of(DaoUtil.getData(edgeEventRepository.save(entity))); |
96 | 97 | } |
97 | 98 | |
98 | - private Specification<EdgeEventEntity> getEntityFieldsSpec(UUID tenantId, EdgeId edgeId) { | |
99 | + private Specification<EdgeEventEntity> getEntityFieldsSpec(UUID tenantId, EdgeId edgeId, boolean withTsUpdate) { | |
99 | 100 | return (root, criteriaQuery, criteriaBuilder) -> { |
100 | 101 | List<Predicate> predicates = new ArrayList<>(); |
101 | 102 | if (tenantId != null) { |
... | ... | @@ -106,6 +107,10 @@ public class JpaBaseEdgeEventDao extends JpaAbstractSearchTimeDao<EdgeEventEntit |
106 | 107 | Predicate entityIdPredicate = criteriaBuilder.equal(root.get("edgeId"), UUIDConverter.fromTimeUUID(edgeId.getId())); |
107 | 108 | predicates.add(entityIdPredicate); |
108 | 109 | } |
110 | + if (!withTsUpdate) { | |
111 | + Predicate edgeEventActionPredicate = criteriaBuilder.notEqual(root.get("edgeEventAction"), ActionType.TIMESERIES_UPDATED.name()); | |
112 | + predicates.add(edgeEventActionPredicate); | |
113 | + } | |
109 | 114 | return criteriaBuilder.and(predicates.toArray(new Predicate[]{})); |
110 | 115 | }; |
111 | 116 | } | ... | ... |