Commit c4d7f52cf3e0c552286b1848074b0e6d2c1713b8

Authored by Bohdan Smetaniuk
1 parent d34c54b3

filtering EdgeEvents with TIMESERIES_UPDATE

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