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) { public void onDeviceUpdate(TransportProtos.SessionInfoProto sessionInfo, Device device, Optional<DeviceProfile> deviceProfileOpt) {
log.trace("[{}][{}] onDeviceUpdate: [{}]", gateway.getTenantId(), gateway.getDeviceId(), device); log.trace("[{}][{}] onDeviceUpdate: [{}]", gateway.getTenantId(), gateway.getDeviceId(), device);
JsonNode deviceAdditionalInfo = device.getAdditionalInfo(); JsonNode deviceAdditionalInfo = device.getAdditionalInfo();
if (deviceAdditionalInfo.has(GATEWAY_PROPERTY) if (deviceAdditionalInfo.has(GATEWAY_PROPERTY) && deviceAdditionalInfo.has(OVERWRITE_ACTIVITY_TIME)) {
&& deviceAdditionalInfo.get(GATEWAY_PROPERTY).asBoolean()
&& deviceAdditionalInfo.has(OVERWRITE_ACTIVITY_TIME)
&& deviceAdditionalInfo.get(OVERWRITE_ACTIVITY_TIME).isBoolean()) {
overwriteDevicesActivity = deviceAdditionalInfo.get(OVERWRITE_ACTIVITY_TIME).asBoolean(); overwriteDevicesActivity = deviceAdditionalInfo.get(OVERWRITE_ACTIVITY_TIME).asBoolean();
} }
} }

View File

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