Commit c4d7f52cf3e0c552286b1848074b0e6d2c1713b8

Authored by Bohdan Smetaniuk
1 parent d34c54b3

filtering EdgeEvents with TIMESERIES_UPDATE

... ... @@ -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 }
... ...