Merge pull request #13070 from dashevchenko/diffTypeComparison
Different data type comparison
This commit is contained in:
commit
f1812a4722
@ -95,7 +95,6 @@ import org.thingsboard.server.dao.edge.EdgeService;
|
||||
import org.thingsboard.server.dao.entity.EntityService;
|
||||
import org.thingsboard.server.dao.entityview.EntityViewDao;
|
||||
import org.thingsboard.server.dao.entityview.EntityViewService;
|
||||
import org.thingsboard.server.dao.model.sqlts.ts.TsKvEntity;
|
||||
import org.thingsboard.server.dao.relation.RelationService;
|
||||
import org.thingsboard.server.dao.service.DaoSqlTest;
|
||||
import org.thingsboard.server.dao.sql.relation.RelationRepository;
|
||||
@ -1664,7 +1663,7 @@ public class EntityServiceTest extends AbstractControllerTest {
|
||||
List<ListenableFuture<TimeseriesSaveResult>> timeseriesFutures = new ArrayList<>();
|
||||
for (int i = 0; i < devices.size(); i++) {
|
||||
Device device = devices.get(i);
|
||||
timeseriesFutures.add(saveLongTimeseries(device.getId(), "temperature", temperatures.get(i)));
|
||||
timeseriesFutures.add(saveTimeseries(device.getId(), "temperature", temperatures.get(i)));
|
||||
}
|
||||
Futures.allAsList(timeseriesFutures).get();
|
||||
|
||||
@ -1711,6 +1710,13 @@ public class EntityServiceTest extends AbstractControllerTest {
|
||||
List<String> entitiesTelemetry = loadedEntities.stream().map(entityData -> entityData.getLatest().get(EntityKeyType.TIME_SERIES).get("temperature").getValue()).toList();
|
||||
assertThat(entitiesTelemetry).containsExactlyElementsOf(expectedSortedList);
|
||||
|
||||
// update temperature to long value for one of device
|
||||
long longTempValue = -100L;
|
||||
saveTimeseries(devices.get(new Random().nextInt(66)).getId(), "temperature", longTempValue).get();
|
||||
loadedEntities = loadAllData(querySortByTemp, deviceTemperatures.size());
|
||||
entitiesTelemetry = loadedEntities.stream().map(entityData -> entityData.getLatest().get(EntityKeyType.TIME_SERIES).get("temperature").getValue()).toList();
|
||||
assertThat(entitiesTelemetry.get(0)).isEqualTo(String.valueOf(longTempValue));
|
||||
|
||||
deviceService.deleteDevicesByTenantId(tenantId);
|
||||
}
|
||||
|
||||
@ -2252,15 +2258,18 @@ public class EntityServiceTest extends AbstractControllerTest {
|
||||
return attributesService.save(tenantId, entityId, scope, Collections.singletonList(attr));
|
||||
}
|
||||
|
||||
private ListenableFuture<TimeseriesSaveResult> saveLongTimeseries(EntityId entityId, String key, Double value) {
|
||||
TsKvEntity tsKv = new TsKvEntity();
|
||||
tsKv.setStrKey(key);
|
||||
tsKv.setDoubleValue(value);
|
||||
private ListenableFuture<TimeseriesSaveResult> saveTimeseries(EntityId entityId, String key, Double value) {
|
||||
KvEntry telemetryValue = new DoubleDataEntry(key, value);
|
||||
BasicTsKvEntry timeseries = new BasicTsKvEntry(42L, telemetryValue);
|
||||
return timeseriesService.save(tenantId, entityId, timeseries);
|
||||
}
|
||||
|
||||
private ListenableFuture<TimeseriesSaveResult> saveTimeseries(EntityId entityId, String key, Long value) {
|
||||
KvEntry telemetryValue = new LongDataEntry(key, value);
|
||||
BasicTsKvEntry timeseries = new BasicTsKvEntry(42L, telemetryValue);
|
||||
return timeseriesService.save(tenantId, entityId, timeseries);
|
||||
}
|
||||
|
||||
protected void createMultiRootHierarchy(List<Asset> buildings, List<Asset> apartments,
|
||||
Map<String, Map<UUID, String>> entityNameByTypeMap,
|
||||
Map<UUID, UUID> childParentRelationMap) throws InterruptedException {
|
||||
|
||||
@ -46,6 +46,10 @@ public class BoolDataPoint extends AbstractDataPoint {
|
||||
|
||||
@Override
|
||||
public int compareTo(DataPoint dataPoint) {
|
||||
return Boolean.compare(value, dataPoint.getBool());
|
||||
if (dataPoint.getType() == DataType.BOOLEAN) {
|
||||
return Boolean.compare(value, dataPoint.getBool());
|
||||
} else {
|
||||
return super.compareTo(dataPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,6 +46,10 @@ public class DoubleDataPoint extends AbstractDataPoint {
|
||||
|
||||
@Override
|
||||
public int compareTo(DataPoint dataPoint) {
|
||||
return Double.compare(value, dataPoint.getDouble());
|
||||
if (dataPoint.getType() == DataType.DOUBLE || dataPoint.getType() == DataType.LONG) {
|
||||
return Double.compare(value, dataPoint.getDouble());
|
||||
} else {
|
||||
return super.compareTo(dataPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,6 +51,12 @@ public class LongDataPoint extends AbstractDataPoint {
|
||||
|
||||
@Override
|
||||
public int compareTo(DataPoint dataPoint) {
|
||||
return Long.compare(value, dataPoint.getLong());
|
||||
if (dataPoint.getType() == DataType.DOUBLE) {
|
||||
return Double.compare(getDouble(), dataPoint.getDouble());
|
||||
} else if (dataPoint.getType() == DataType.LONG) {
|
||||
return Long.compare(value, dataPoint.getLong());
|
||||
} else {
|
||||
return super.compareTo(dataPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user