Commit 051b2a4b34a0747323601fbe3b4c3f2f7324c256

Authored by 云中非
1 parent 6c095b29

fix(DEFECT-932): 自动创建网关子设备时,使用默认设备配置。

@@ -98,6 +98,7 @@ import org.thingsboard.server.queue.common.TbProtoQueueMsg; @@ -98,6 +98,7 @@ import org.thingsboard.server.queue.common.TbProtoQueueMsg;
98 import org.thingsboard.server.queue.util.TbCoreComponent; 98 import org.thingsboard.server.queue.util.TbCoreComponent;
99 import org.thingsboard.server.service.apiusage.TbApiUsageStateService; 99 import org.thingsboard.server.service.apiusage.TbApiUsageStateService;
100 import org.thingsboard.server.service.executors.DbCallbackExecutorService; 100 import org.thingsboard.server.service.executors.DbCallbackExecutorService;
  101 +import org.thingsboard.server.service.install.DefaultSystemDataLoaderService;
101 import org.thingsboard.server.service.profile.TbDeviceProfileCache; 102 import org.thingsboard.server.service.profile.TbDeviceProfileCache;
102 import org.thingsboard.server.service.resource.TbResourceService; 103 import org.thingsboard.server.service.resource.TbResourceService;
103 104
@@ -303,7 +304,7 @@ public class DefaultTransportApiService implements TransportApiService { @@ -303,7 +304,7 @@ public class DefaultTransportApiService implements TransportApiService {
303 device.setName(requestMsg.getDeviceName()); 304 device.setName(requestMsg.getDeviceName());
304 device.setType(requestMsg.getDeviceType()); 305 device.setType(requestMsg.getDeviceType());
305 device.setCustomerId(gateway.getCustomerId()); 306 device.setCustomerId(gateway.getCustomerId());
306 - DeviceProfile deviceProfile = deviceProfileCache.findOrCreateDeviceProfile(gateway.getTenantId(), requestMsg.getDeviceType()); 307 + DeviceProfile deviceProfile = deviceProfileCache.findOrCreateDeviceProfile(gateway.getTenantId(), DefaultSystemDataLoaderService.DEFAULT_DEVICE_TYPE);
307 device.setDeviceProfileId(deviceProfile.getId()); 308 device.setDeviceProfileId(deviceProfile.getId());
308 ObjectNode additionalInfo = JacksonUtil.newObjectNode(); 309 ObjectNode additionalInfo = JacksonUtil.newObjectNode();
309 additionalInfo.put(DataConstants.LAST_CONNECTED_GATEWAY, gatewayId.toString()); 310 additionalInfo.put(DataConstants.LAST_CONNECTED_GATEWAY, gatewayId.toString());
@@ -312,7 +313,7 @@ public class DefaultTransportApiService implements TransportApiService { @@ -312,7 +313,7 @@ public class DefaultTransportApiService implements TransportApiService {
312 313
313 314
314 //Thingskit function 315 //Thingskit function
315 - ytDeviceService.saveSlaveDevice(savedDevice.getId().getId().toString(), savedDevice.getName(), gateway.getId().getId().toString(),gateway.getCreatedTime()); 316 + ytDeviceService.saveSlaveDevice(savedDevice.getId().getId().toString(), savedDevice.getName(),deviceProfile.getId().getId().toString(), gateway.getId().getId().toString(),gateway.getCreatedTime());
316 317
317 318
318 tbClusterService.onDeviceUpdated(savedDevice, null); 319 tbClusterService.onDeviceUpdated(savedDevice, null);
@@ -44,6 +44,7 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev @@ -44,6 +44,7 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev
44 implements TkDeviceService { 44 implements TkDeviceService {
45 45
46 private final DeviceProfileDao deviceProfileDao; 46 private final DeviceProfileDao deviceProfileDao;
  47 + private final TkDeviceProfileMapper tkProfileMapper;
47 48
48 private final OrganizationMapper tkOrganizationMapper; 49 private final OrganizationMapper tkOrganizationMapper;
49 private final SceneLinkageMapper sceneLinkageMapper; 50 private final SceneLinkageMapper sceneLinkageMapper;
@@ -491,7 +492,7 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev @@ -491,7 +492,7 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev
491 492
492 @Override 493 @Override
493 public boolean saveSlaveDevice( 494 public boolean saveSlaveDevice(
494 - String slaveId, String slaveName, String gatewayId, Long createTime) { 495 + String slaveId, String slaveName, String tbProfileId, String gatewayId, Long createTime) {
495 LambdaQueryWrapper<TkDeviceEntity> deviceFilter = 496 LambdaQueryWrapper<TkDeviceEntity> deviceFilter =
496 new QueryWrapper<TkDeviceEntity>().lambda().eq(TkDeviceEntity::getTbDeviceId, gatewayId); 497 new QueryWrapper<TkDeviceEntity>().lambda().eq(TkDeviceEntity::getTbDeviceId, gatewayId);
497 TkDeviceEntity gateway = baseMapper.selectOne(deviceFilter); 498 TkDeviceEntity gateway = baseMapper.selectOne(deviceFilter);
@@ -505,7 +506,9 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev @@ -505,7 +506,9 @@ public class TkDeviceServiceImpl extends AbstractBaseService<DeviceMapper, TkDev
505 JacksonUtil.toJsonNode( 506 JacksonUtil.toJsonNode(
506 "{\"avatar\": \"\",\"longitude\": \"\",\"latitude\": \"\",\"address\": \"\"}")); 507 "{\"avatar\": \"\",\"longitude\": \"\",\"latitude\": \"\",\"address\": \"\"}"));
507 508
508 - slaveDevice.setProfileId(gateway.getProfileId()); 509 + DeviceProfileDTO profileDTO = tkProfileMapper.selectDetail(gateway.getTenantId(),tbProfileId);
  510 + slaveDevice.setProfileId(profileDTO.getTbProfileId());
  511 + slaveDevice.setDeviceProfileId(profileDTO.getId());
509 slaveDevice.setGatewayId(gateway.getId()); 512 slaveDevice.setGatewayId(gateway.getId());
510 slaveDevice.setOrganizationId(gateway.getOrganizationId()); 513 slaveDevice.setOrganizationId(gateway.getOrganizationId());
511 slaveDevice.setTenantId(gateway.getTenantId()); 514 slaveDevice.setTenantId(gateway.getTenantId());
@@ -156,7 +156,7 @@ public interface TkDeviceService extends BaseService<TkDeviceEntity> { @@ -156,7 +156,7 @@ public interface TkDeviceService extends BaseService<TkDeviceEntity> {
156 * @param gatewayId 网关设备TB平台的ID 156 * @param gatewayId 网关设备TB平台的ID
157 * @return 157 * @return
158 */ 158 */
159 - boolean saveSlaveDevice(String slaveId, String slaveName, String gatewayId, Long createTime); 159 + boolean saveSlaveDevice(String slaveId, String slaveName, String tbProfileId,String gatewayId, Long createTime);
160 160
161 /** 161 /**
162 * 通过设备ids查询设备信息列表 162 * 通过设备ids查询设备信息列表