Improvement for update of overwrite activity time

This commit is contained in:
imbeacon 2024-04-08 13:05:58 +03:00
parent bead94d832
commit a6143f3c8a
2 changed files with 5 additions and 9 deletions

View File

@ -243,10 +243,7 @@ public abstract class AbstractGatewaySessionHandler<T extends AbstractGatewayDev
public void onDeviceUpdate(TransportProtos.SessionInfoProto sessionInfo, Device device, Optional<DeviceProfile> deviceProfileOpt) {
log.trace("[{}][{}] onDeviceUpdate: [{}]", gateway.getTenantId(), gateway.getDeviceId(), device);
JsonNode deviceAdditionalInfo = device.getAdditionalInfo();
if (deviceAdditionalInfo.has(GATEWAY_PROPERTY)
&& deviceAdditionalInfo.get(GATEWAY_PROPERTY).asBoolean()
&& deviceAdditionalInfo.has(OVERWRITE_ACTIVITY_TIME)
&& deviceAdditionalInfo.get(OVERWRITE_ACTIVITY_TIME).isBoolean()) {
if (deviceAdditionalInfo.has(GATEWAY_PROPERTY) && deviceAdditionalInfo.has(OVERWRITE_ACTIVITY_TIME)) {
overwriteDevicesActivity = deviceAdditionalInfo.get(OVERWRITE_ACTIVITY_TIME).asBoolean();
}
}

View File

@ -15,6 +15,7 @@
*/
package org.thingsboard.server.common.transport.service;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;
@ -1047,11 +1048,9 @@ public class DefaultTransportService extends TransportActivityManager implements
.setDeviceProfileIdLSB(deviceProfileIdLSB)
.setDeviceName(device.getName())
.setDeviceType(device.getType()).build();
if (device.getAdditionalInfo().has("gateway")
&& device.getAdditionalInfo().get("gateway").asBoolean()
&& device.getAdditionalInfo().has(OVERWRITE_ACTIVITY_TIME)
&& device.getAdditionalInfo().get(OVERWRITE_ACTIVITY_TIME).isBoolean()) {
md.setOverwriteActivityTime(device.getAdditionalInfo().get(OVERWRITE_ACTIVITY_TIME).asBoolean());
JsonNode deviceAdditionalInfo = device.getAdditionalInfo();
if (deviceAdditionalInfo.has("gateway") && deviceAdditionalInfo.has(OVERWRITE_ACTIVITY_TIME)) {
md.setOverwriteActivityTime(deviceAdditionalInfo.get(OVERWRITE_ACTIVITY_TIME).asBoolean());
}
md.setSessionInfo(newSessionInfo);
transportCallbackExecutor.submit(() -> md.getListener().onDeviceUpdate(newSessionInfo, device, Optional.ofNullable(newDeviceProfile)));