Showing
5 changed files
with
88 additions
and
9 deletions
@@ -24,10 +24,7 @@ import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | @@ -24,10 +24,7 @@ import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | ||
24 | import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; | 24 | import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; |
25 | import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | 25 | import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; |
26 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 26 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
27 | -import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | ||
28 | -import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; | ||
29 | -import org.thingsboard.server.common.data.yunteng.dto.ThingsModelDTO; | ||
30 | -import org.thingsboard.server.common.data.yunteng.dto.TkThingsModel; | 27 | +import org.thingsboard.server.common.data.yunteng.dto.*; |
31 | import org.thingsboard.server.common.data.yunteng.dto.thingsmodel.ImportThingsModelDTO; | 28 | import org.thingsboard.server.common.data.yunteng.dto.thingsmodel.ImportThingsModelDTO; |
32 | import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | 29 | import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; |
33 | import org.thingsboard.server.common.data.yunteng.enums.ImportEnum; | 30 | import org.thingsboard.server.common.data.yunteng.enums.ImportEnum; |
@@ -44,6 +41,7 @@ import java.io.IOException; | @@ -44,6 +41,7 @@ import java.io.IOException; | ||
44 | import java.io.InputStream; | 41 | import java.io.InputStream; |
45 | import java.util.HashMap; | 42 | import java.util.HashMap; |
46 | import java.util.List; | 43 | import java.util.List; |
44 | +import java.util.Map; | ||
47 | 45 | ||
48 | import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; | 46 | import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; |
49 | import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.ORDER_TYPE; | 47 | import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.ORDER_TYPE; |
@@ -367,4 +365,16 @@ public class ThingsModelController extends BaseController { | @@ -367,4 +365,16 @@ public class ThingsModelController extends BaseController { | ||
367 | return null; | 365 | return null; |
368 | } | 366 | } |
369 | } | 367 | } |
368 | + | ||
369 | + @PostMapping("/batch/get_tsl") | ||
370 | + @ApiOperation("获取多个产品的物模型数据") | ||
371 | + public ResponseEntity<List<BatchDeviceProfileInfoDTO>> getDeviceProfilesTSL(@RequestBody DeviceProfileTSLDTO profileTSLDTO) | ||
372 | + throws ThingsboardException { | ||
373 | + if(null == profileTSLDTO.getDeviceProfileIds() || null == profileTSLDTO.getFunctionTypeEnum() || | ||
374 | + profileTSLDTO.getDeviceProfileIds().isEmpty()){ | ||
375 | + throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
376 | + } | ||
377 | + return ResponseEntity.ok(thingsModelService.getDeviceProfileTSLInfoByIds(getCurrentUser().getCurrentTenantId(), | ||
378 | + profileTSLDTO.getDeviceProfileIds(),profileTSLDTO.getFunctionTypeEnum())); | ||
379 | + } | ||
370 | } | 380 | } |
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +import io.swagger.annotations.ApiModelProperty; | ||
5 | +import lombok.Data; | ||
6 | +import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | ||
7 | + | ||
8 | +@Data | ||
9 | +public class BatchDeviceProfileInfoDTO { | ||
10 | + | ||
11 | + @ApiModelProperty(value = "产品ID/设备配置ID") | ||
12 | + private String id; | ||
13 | + @ApiModelProperty(value = "产品名称/设备配置名称") | ||
14 | + private String name; | ||
15 | + @ApiModelProperty(value = "传输协议") | ||
16 | + private String transportType; | ||
17 | + @ApiModelProperty(value = "产品类型:GATEWAY,DIRECT_CONNECTION,SENSOR") | ||
18 | + private DeviceTypeEnum deviceType; | ||
19 | + @ApiModelProperty(value = "物模型TSL") | ||
20 | + private JsonNode tsl; | ||
21 | +} |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/DeviceProfileTSLDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | +import lombok.Data; | ||
5 | +import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | ||
6 | + | ||
7 | +import java.util.List; | ||
8 | + | ||
9 | +@Data | ||
10 | +public class DeviceProfileTSLDTO { | ||
11 | + | ||
12 | + @ApiModelProperty(value = "产品id列表", required = true) | ||
13 | + private List<String> deviceProfileIds; | ||
14 | + | ||
15 | + @ApiModelProperty(value = "查询的物模型类型", required = true) | ||
16 | + private FunctionTypeEnum functionTypeEnum; | ||
17 | +} |
@@ -188,7 +188,7 @@ public class ThingsModelServiceImpl | @@ -188,7 +188,7 @@ public class ThingsModelServiceImpl | ||
188 | new LambdaQueryWrapper<TkThingsModelEntity>() | 188 | new LambdaQueryWrapper<TkThingsModelEntity>() |
189 | .eq(TkThingsModelEntity::getTenantId, tenantId) | 189 | .eq(TkThingsModelEntity::getTenantId, tenantId) |
190 | .eq(TkThingsModelEntity::getDeviceProfileId, deviceProfileId) | 190 | .eq(TkThingsModelEntity::getDeviceProfileId, deviceProfileId) |
191 | - .eq(TkThingsModelEntity::getFunctionType, typeEnum) | 191 | + .eq(!typeEnum.equals(FunctionTypeEnum.all),TkThingsModelEntity::getFunctionType, typeEnum) |
192 | .eq(TkThingsModelEntity::getStatus, StatusEnum.ENABLE.getIndex())); | 192 | .eq(TkThingsModelEntity::getStatus, StatusEnum.ENABLE.getIndex())); |
193 | if (entityList.isEmpty()) { | 193 | if (entityList.isEmpty()) { |
194 | return null; | 194 | return null; |
@@ -267,7 +267,7 @@ public class ThingsModelServiceImpl | @@ -267,7 +267,7 @@ public class ThingsModelServiceImpl | ||
267 | for (ThingsModelDTO thingsModelDTO : thingsModelDTOS) { | 267 | for (ThingsModelDTO thingsModelDTO : thingsModelDTOS) { |
268 | JsonNode functionJson = thingsModelDTO.getFunctionJson(); | 268 | JsonNode functionJson = thingsModelDTO.getFunctionJson(); |
269 | if (null != functionJson) { | 269 | if (null != functionJson) { |
270 | - switch (typeEnum) { | 270 | + switch (thingsModelDTO.getFunctionType()) { |
271 | case properties: | 271 | case properties: |
272 | AttributeModelDTO attributeModelDTO = new AttributeModelDTO(); | 272 | AttributeModelDTO attributeModelDTO = new AttributeModelDTO(); |
273 | BeanUtils.copyProperties(thingsModelDTO, attributeModelDTO); | 273 | BeanUtils.copyProperties(thingsModelDTO, attributeModelDTO); |
@@ -440,6 +440,30 @@ public class ThingsModelServiceImpl | @@ -440,6 +440,30 @@ public class ThingsModelServiceImpl | ||
440 | } | 440 | } |
441 | return true; | 441 | return true; |
442 | } | 442 | } |
443 | + | ||
444 | + @Override | ||
445 | + public List<BatchDeviceProfileInfoDTO> getDeviceProfileTSLInfoByIds(String tenantId, List<String> deviceProfileIds, FunctionTypeEnum functionTypeEnum) { | ||
446 | + List<BatchDeviceProfileInfoDTO> list = new ArrayList<>(); | ||
447 | + if(null != deviceProfileIds && !deviceProfileIds.isEmpty()){ | ||
448 | + deviceProfileIds.stream().forEach(deviceProfileId->{ | ||
449 | + BatchDeviceProfileInfoDTO batchDeviceProfileInfo = new BatchDeviceProfileInfoDTO(); | ||
450 | + DeviceProfileDTO deviceProfileDTO = tkDeviceProfileService.getDeviceProfile(tenantId,deviceProfileId); | ||
451 | + if(null != deviceProfileDTO){ | ||
452 | + batchDeviceProfileInfo.setId(deviceProfileId); | ||
453 | + batchDeviceProfileInfo.setName(deviceProfileDTO.getName()); | ||
454 | + batchDeviceProfileInfo.setDeviceType(deviceProfileDTO.getDeviceType()); | ||
455 | + batchDeviceProfileInfo.setTransportType(deviceProfileDTO.getTransportType()); | ||
456 | + JsonNode tsl = getTingsModelTSL(functionTypeEnum,tenantId,deviceProfileId); | ||
457 | + if(null != tsl && tsl.isArray()){ | ||
458 | + batchDeviceProfileInfo.setTsl(tsl); | ||
459 | + } | ||
460 | + list.add(batchDeviceProfileInfo); | ||
461 | + } | ||
462 | + }); | ||
463 | + } | ||
464 | + return list; | ||
465 | + } | ||
466 | + | ||
443 | private void checkNameAndIdentifier( | 467 | private void checkNameAndIdentifier( |
444 | List<String> existIdentifiers, | 468 | List<String> existIdentifiers, |
445 | FunctionTypeEnum functionType, | 469 | FunctionTypeEnum functionType, |
1 | package org.thingsboard.server.dao.yunteng.service; | 1 | package org.thingsboard.server.dao.yunteng.service; |
2 | 2 | ||
3 | import com.fasterxml.jackson.databind.JsonNode; | 3 | import com.fasterxml.jackson.databind.JsonNode; |
4 | +import org.thingsboard.server.common.data.yunteng.dto.BatchDeviceProfileInfoDTO; | ||
4 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | 5 | import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; |
5 | import org.thingsboard.server.common.data.yunteng.dto.ThingsModelDTO; | 6 | import org.thingsboard.server.common.data.yunteng.dto.ThingsModelDTO; |
6 | import org.thingsboard.server.common.data.yunteng.dto.TkThingsModel; | 7 | import org.thingsboard.server.common.data.yunteng.dto.TkThingsModel; |
@@ -50,8 +51,14 @@ public interface ThingsModelService extends BaseService<TkThingsModelEntity>{ | @@ -50,8 +51,14 @@ public interface ThingsModelService extends BaseService<TkThingsModelEntity>{ | ||
50 | 51 | ||
51 | boolean getByIdentifier(String tenantId, String deviceProfileId,String categoryId,String identifier); | 52 | boolean getByIdentifier(String tenantId, String deviceProfileId,String categoryId,String identifier); |
52 | 53 | ||
53 | - | ||
54 | - | ||
55 | - | 54 | + /** |
55 | + * 获取对应产品列表的物模型信息 | ||
56 | + * @param tenantId 租户ID | ||
57 | + * @param deviceProfileIds 产品列表 | ||
58 | + * @param functionTypeEnum | ||
59 | + * @return | ||
60 | + */ | ||
61 | + List<BatchDeviceProfileInfoDTO> getDeviceProfileTSLInfoByIds(String tenantId, List<String> deviceProfileIds, | ||
62 | + FunctionTypeEnum functionTypeEnum); | ||
56 | 63 | ||
57 | } | 64 | } |