diff --git a/integrations/msc-integration/src/main/java/com/milesight/beaveriot/integration/msc/service/MscDataSyncService.java b/integrations/msc-integration/src/main/java/com/milesight/beaveriot/integration/msc/service/MscDataSyncService.java index 1cc540c..77d695f 100644 --- a/integrations/msc-integration/src/main/java/com/milesight/beaveriot/integration/msc/service/MscDataSyncService.java +++ b/integrations/msc-integration/src/main/java/com/milesight/beaveriot/integration/msc/service/MscDataSyncService.java @@ -356,7 +356,7 @@ private void syncPropertiesHistory(Device device, long lastSyncTime) { page.getData().getList().forEach(item -> { val objectMapper = mscClientProvider.getMscClient().getObjectMapper(); val properties = objectMapper.convertValue(item.getProperties(), JsonNode.class); - saveHistoryData(device.getKey(), null, properties, item.getTs() == null ? TimeUtils.currentTimeMillis() : item.getTs(), isLatestData.get()); + saveHistoryData(device.getKey(), null, properties, truncateTimestampMs(item.getTs()), isLatestData.get()); if (isLatestData.get()) { isLatestData.set(false); } @@ -364,6 +364,13 @@ private void syncPropertiesHistory(Device device, long lastSyncTime) { } } + private static long truncateTimestampMs(Long ts) { + if (ts == null) { + return TimeUtils.currentTimeMillis(); + } + return ts - ts % 1000; + } + public void saveHistoryData(String deviceKey, String eventId, JsonNode data, long timestampMs, boolean isLatestData) { val payload = eventId == null ? MscTslUtils.convertJsonNodeToExchangePayload(deviceKey, data)