Commit 5de3deec3700de6e761bd858581eea94fc9c4d3c
1 parent
c5a65561
fix: add thingsModel and change table name
Showing
89 changed files
with
962 additions
and
392 deletions
application/src/main/java/org/thingsboard/server/controller/yunteng/ThingsModelController.java
0 → 100644
1 | +package org.thingsboard.server.controller.yunteng; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +import io.swagger.annotations.Api; | ||
5 | +import io.swagger.annotations.ApiOperation; | ||
6 | +import lombok.RequiredArgsConstructor; | ||
7 | +import org.springframework.http.ResponseEntity; | ||
8 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
9 | +import org.springframework.validation.annotation.Validated; | ||
10 | +import org.springframework.web.bind.annotation.*; | ||
11 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
12 | +import org.thingsboard.server.common.data.yunteng.common.AddGroup; | ||
13 | +import org.thingsboard.server.common.data.yunteng.common.DeleteGroup; | ||
14 | +import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; | ||
15 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; | ||
16 | +import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | ||
17 | +import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | ||
18 | +import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; | ||
19 | +import org.thingsboard.server.common.data.yunteng.dto.ThingsModelDTO; | ||
20 | +import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | ||
21 | +import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; | ||
22 | +import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | ||
23 | +import org.thingsboard.server.controller.BaseController; | ||
24 | +import org.thingsboard.server.dao.yunteng.service.ThingsModelService; | ||
25 | +import org.thingsboard.server.dao.yunteng.service.YtDeviceProfileService; | ||
26 | + | ||
27 | +import java.util.HashMap; | ||
28 | + | ||
29 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; | ||
30 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.ORDER_TYPE; | ||
31 | + | ||
32 | +@RestController | ||
33 | +@RequiredArgsConstructor | ||
34 | +@RequestMapping("api/yt/things_model") | ||
35 | +@Api(tags = {"物模型管理"}) | ||
36 | +public class ThingsModelController extends BaseController { | ||
37 | + private final ThingsModelService thingsModelService; | ||
38 | + private final YtDeviceProfileService ytDeviceProfileService; | ||
39 | + | ||
40 | + @GetMapping( | ||
41 | + path = "/page", | ||
42 | + params = {PAGE_SIZE, PAGE}) | ||
43 | + @ApiOperation(value = "分页") | ||
44 | + public YtPageData<ThingsModelDTO> page( | ||
45 | + @RequestParam(PAGE_SIZE) int pageSize, | ||
46 | + @RequestParam(PAGE) int page, | ||
47 | + @RequestParam(value = "nameOrIdentifier", required = false) String nameOrIdentifier, | ||
48 | + @RequestParam(value = ORDER_FILED, required = false) String orderBy, | ||
49 | + @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) | ||
50 | + throws ThingsboardException { | ||
51 | + HashMap<String, Object> queryMap = new HashMap<>(); | ||
52 | + queryMap.put("nameOrIdentifier", nameOrIdentifier); | ||
53 | + queryMap.put(PAGE_SIZE, pageSize); | ||
54 | + queryMap.put(PAGE, page); | ||
55 | + queryMap.put(ORDER_FILED, orderBy); | ||
56 | + if (orderType != null) { | ||
57 | + queryMap.put(ORDER_TYPE, orderType.name()); | ||
58 | + } | ||
59 | + return thingsModelService.page(queryMap, getCurrentUser().getCurrentTenantId()); | ||
60 | + } | ||
61 | + | ||
62 | + @PostMapping() | ||
63 | + @ApiOperation("保存物模型") | ||
64 | + // @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:things_model:post'})") | ||
65 | + public ResponseEntity<ThingsModelDTO> save( | ||
66 | + @Validated(AddGroup.class) @RequestBody ThingsModelDTO thingsModelDTO) | ||
67 | + throws ThingsboardException { | ||
68 | + return ResponseEntity.ok(saveOrUpdate(thingsModelDTO)); | ||
69 | + } | ||
70 | + | ||
71 | + @PutMapping() | ||
72 | + @ApiOperation("修改物模型") | ||
73 | + // @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:things_model:put'})") | ||
74 | + public ResponseEntity<ThingsModelDTO> update( | ||
75 | + @Validated(UpdateGroup.class) @RequestBody ThingsModelDTO thingsModelDTO) | ||
76 | + throws ThingsboardException { | ||
77 | + return ResponseEntity.ok(saveOrUpdate(thingsModelDTO)); | ||
78 | + } | ||
79 | + | ||
80 | + @DeleteMapping | ||
81 | + @ApiOperation("删除") | ||
82 | + // @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:things_model:delete'})") | ||
83 | + public boolean delete(@Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) | ||
84 | + throws ThingsboardException { | ||
85 | + deleteDTO.setTenantId(getCurrentUser().getCurrentTenantId()); | ||
86 | + return thingsModelService.delete(deleteDTO); | ||
87 | + } | ||
88 | + | ||
89 | + @GetMapping("/{functionType}/{deviceProfileId}") | ||
90 | + @ApiOperation("获取物模型TSL") | ||
91 | + // @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:things_model:json:view'})") | ||
92 | + public ResponseEntity<JsonNode> getTSL( | ||
93 | + @PathVariable("functionType") FunctionTypeEnum functionType, | ||
94 | + @PathVariable("deviceProfileId") String deviceProfileId) | ||
95 | + throws ThingsboardException { | ||
96 | + return ResponseEntity.ok( | ||
97 | + thingsModelService.getTingsModelJson( | ||
98 | + functionType, getCurrentUser().getCurrentTenantId(), deviceProfileId)); | ||
99 | + } | ||
100 | + | ||
101 | + private ThingsModelDTO saveOrUpdate(ThingsModelDTO thingsModelDTO) throws ThingsboardException { | ||
102 | + | ||
103 | + String tenantId = getCurrentUser().getCurrentTenantId(); | ||
104 | + DeviceProfileDTO deviceProfileDTO = | ||
105 | + ytDeviceProfileService.findDeviceProfileById(tenantId, thingsModelDTO.getDeviceProfileId()); | ||
106 | + if (null == deviceProfileDTO) { | ||
107 | + throw new YtDataValidationException(ErrorMessage.NOT_BELONG_CURRENT_TENANT.getMessage()); | ||
108 | + } | ||
109 | + thingsModelDTO.setTenantId(tenantId); | ||
110 | + return thingsModelService.saveOrUpdate(thingsModelDTO); | ||
111 | + } | ||
112 | +} |
@@ -9,7 +9,6 @@ import io.swagger.annotations.ApiParam; | @@ -9,7 +9,6 @@ import io.swagger.annotations.ApiParam; | ||
9 | import lombok.RequiredArgsConstructor; | 9 | import lombok.RequiredArgsConstructor; |
10 | import lombok.extern.slf4j.Slf4j; | 10 | import lombok.extern.slf4j.Slf4j; |
11 | import org.apache.commons.lang3.StringUtils; | 11 | import org.apache.commons.lang3.StringUtils; |
12 | -import org.springframework.http.HttpStatus; | ||
13 | import org.springframework.http.ResponseEntity; | 12 | import org.springframework.http.ResponseEntity; |
14 | import org.springframework.security.access.prepost.PreAuthorize; | 13 | import org.springframework.security.access.prepost.PreAuthorize; |
15 | import org.springframework.validation.annotation.Validated; | 14 | import org.springframework.validation.annotation.Validated; |
@@ -18,7 +17,6 @@ import org.thingsboard.rule.engine.api.msg.DeviceCredentialsUpdateNotificationMs | @@ -18,7 +17,6 @@ import org.thingsboard.rule.engine.api.msg.DeviceCredentialsUpdateNotificationMs | ||
18 | import org.thingsboard.server.common.data.Device; | 17 | import org.thingsboard.server.common.data.Device; |
19 | import org.thingsboard.server.common.data.audit.ActionType; | 18 | import org.thingsboard.server.common.data.audit.ActionType; |
20 | import org.thingsboard.server.common.data.edge.EdgeEventActionType; | 19 | import org.thingsboard.server.common.data.edge.EdgeEventActionType; |
21 | -import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; | ||
22 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 20 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
23 | import org.thingsboard.server.common.data.id.*; | 21 | import org.thingsboard.server.common.data.id.*; |
24 | import org.thingsboard.server.common.data.relation.EntityRelation; | 22 | import org.thingsboard.server.common.data.relation.EntityRelation; |
@@ -38,6 +36,7 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult; | @@ -38,6 +36,7 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.ResponseResult; | ||
38 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | 36 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
39 | import org.thingsboard.server.controller.BaseController; | 37 | import org.thingsboard.server.controller.BaseController; |
40 | import org.thingsboard.server.dao.device.DeviceService; | 38 | import org.thingsboard.server.dao.device.DeviceService; |
39 | +import org.thingsboard.server.dao.yunteng.service.YtDeviceProfileService; | ||
41 | import org.thingsboard.server.dao.yunteng.service.YtDeviceService; | 40 | import org.thingsboard.server.dao.yunteng.service.YtDeviceService; |
42 | import org.thingsboard.server.service.security.permission.Operation; | 41 | import org.thingsboard.server.service.security.permission.Operation; |
43 | import org.thingsboard.server.service.security.permission.Resource; | 42 | import org.thingsboard.server.service.security.permission.Resource; |
@@ -58,7 +57,7 @@ public class YtDeviceController extends BaseController { | @@ -58,7 +57,7 @@ public class YtDeviceController extends BaseController { | ||
58 | private final YtDeviceService deviceService; | 57 | private final YtDeviceService deviceService; |
59 | private final DeviceService tbDeviceService; | 58 | private final DeviceService tbDeviceService; |
60 | private final ObjectMapper objectMapper; | 59 | private final ObjectMapper objectMapper; |
61 | - String sePL = new Date().toString(); | 60 | + private final YtDeviceProfileService ytDeviceProfileService; |
62 | 61 | ||
63 | @PostMapping | 62 | @PostMapping |
64 | @ApiOperation("创建|编辑") | 63 | @ApiOperation("创建|编辑") |
@@ -68,66 +67,59 @@ public class YtDeviceController extends BaseController { | @@ -68,66 +67,59 @@ public class YtDeviceController extends BaseController { | ||
68 | @Validated(AddGroup.class) @RequestBody DeviceDTO deviceDTO) | 67 | @Validated(AddGroup.class) @RequestBody DeviceDTO deviceDTO) |
69 | throws ThingsboardException, ExecutionException, InterruptedException { | 68 | throws ThingsboardException, ExecutionException, InterruptedException { |
70 | String currentTenantId = getCurrentUser().getCurrentTenantId(); | 69 | String currentTenantId = getCurrentUser().getCurrentTenantId(); |
71 | - deviceService.validateFormdata(currentTenantId, deviceDTO); | 70 | + deviceService.validateFormData(currentTenantId, deviceDTO); |
72 | 71 | ||
73 | - | ||
74 | - | ||
75 | - | ||
76 | - /**网关是否有效*/ | 72 | + /** 网关是否有效 */ |
77 | String gatewayId = deviceDTO.getGatewayId(); | 73 | String gatewayId = deviceDTO.getGatewayId(); |
78 | DeviceDTO gateWay = null; | 74 | DeviceDTO gateWay = null; |
79 | if (StringUtils.isNotEmpty(gatewayId)) { | 75 | if (StringUtils.isNotEmpty(gatewayId)) { |
80 | - gateWay = deviceService.checkDeviceByTenantIdAndDeviceId(getCurrentUser().getCurrentTenantId(), gatewayId); | 76 | + gateWay = |
77 | + deviceService.checkDeviceByTenantIdAndDeviceId( | ||
78 | + getCurrentUser().getCurrentTenantId(), gatewayId); | ||
81 | if (null == gateWay) { | 79 | if (null == gateWay) { |
82 | throw new YtDataValidationException( | 80 | throw new YtDataValidationException( |
83 | ErrorMessage.DEVICE_NOT_EXISTENCE_IN_TENANT.getMessage()); | 81 | ErrorMessage.DEVICE_NOT_EXISTENCE_IN_TENANT.getMessage()); |
84 | } | 82 | } |
85 | } | 83 | } |
86 | 84 | ||
87 | - | ||
88 | - | ||
89 | - | ||
90 | - /** 子设备编辑业务逻辑: 设备地址码必须同时设置到附加信息字段内。 | ||
91 | - * 1、新增或编辑网关和直连设备 | ||
92 | - * 2、新增网关子设备 | ||
93 | - * 3、编辑网关子设备时,关联关系已存在(未切换网关) | ||
94 | - * 4、编辑网关子设备时,关联关系不存在(切换网关) | ||
95 | - * 5、编辑网关子设备时,修改其它设备信息,例如:设备名称等。 | ||
96 | - * */ | 85 | + /** |
86 | + * 子设备编辑业务逻辑: 设备地址码必须同时设置到附加信息字段内。 1、新增或编辑网关和直连设备 2、新增网关子设备 3、编辑网关子设备时,关联关系已存在(未切换网关) | ||
87 | + * 4、编辑网关子设备时,关联关系不存在(切换网关) 5、编辑网关子设备时,修改其它设备信息,例如:设备名称等。 | ||
88 | + */ | ||
97 | Device tbDevice = buildTbDeviceFromDeviceDTO(getCurrentUser().getTenantId(), deviceDTO); | 89 | Device tbDevice = buildTbDeviceFromDeviceDTO(getCurrentUser().getTenantId(), deviceDTO); |
98 | DeviceId selfTbId = updateTbDevice(tbDevice, deviceDTO.getDeviceToken()); | 90 | DeviceId selfTbId = updateTbDevice(tbDevice, deviceDTO.getDeviceToken()); |
99 | String selfTbIdStr = selfTbId.getId().toString(); | 91 | String selfTbIdStr = selfTbId.getId().toString(); |
100 | deviceDTO.setTbDeviceId(selfTbIdStr); | 92 | deviceDTO.setTbDeviceId(selfTbIdStr); |
101 | 93 | ||
102 | - | ||
103 | if (selfTbIdStr != null | 94 | if (selfTbIdStr != null |
104 | - && deviceDTO.getDeviceType().equals(DeviceTypeEnum.SENSOR) | ||
105 | - && StringUtils.isNotEmpty(gatewayId)) { | 95 | + && deviceDTO.getDeviceType().equals(DeviceTypeEnum.SENSOR) |
96 | + && StringUtils.isNotEmpty(gatewayId)) { | ||
106 | boolean relationNotMatched = true; | 97 | boolean relationNotMatched = true; |
107 | 98 | ||
108 | EntityId slaveId = EntityIdFactory.getByTypeAndId("DEVICE", selfTbIdStr); | 99 | EntityId slaveId = EntityIdFactory.getByTypeAndId("DEVICE", selfTbIdStr); |
109 | - List<EntityRelationInfo> relations = relationService.findInfoByTo(getTenantId(), slaveId, RelationTypeGroup.COMMON).get(); | 100 | + List<EntityRelationInfo> relations = |
101 | + relationService.findInfoByTo(getTenantId(), slaveId, RelationTypeGroup.COMMON).get(); | ||
110 | 102 | ||
111 | for (EntityRelationInfo relationInfo : relations) { | 103 | for (EntityRelationInfo relationInfo : relations) { |
112 | - if(!FastIotConstants.Relation.relationType.equals(relationInfo.getType())){ | 104 | + if (!FastIotConstants.Relation.relationType.equals(relationInfo.getType())) { |
113 | continue; | 105 | continue; |
114 | } | 106 | } |
115 | if (relationInfo.getFrom().getId().toString().equals(gateWay.getTbDeviceId())) { | 107 | if (relationInfo.getFrom().getId().toString().equals(gateWay.getTbDeviceId())) { |
116 | relationNotMatched = false; | 108 | relationNotMatched = false; |
117 | - }else { | ||
118 | - relationService.deleteRelation(getTenantId(),relationInfo); | ||
119 | - sendRelationNotificationMsg(getTenantId(), relationInfo, EdgeEventActionType.RELATION_DELETED); | 109 | + } else { |
110 | + relationService.deleteRelation(getTenantId(), relationInfo); | ||
111 | + sendRelationNotificationMsg( | ||
112 | + getTenantId(), relationInfo, EdgeEventActionType.RELATION_DELETED); | ||
120 | } | 113 | } |
121 | } | 114 | } |
122 | 115 | ||
123 | - if(relationNotMatched){ | 116 | + if (relationNotMatched) { |
124 | addRelation(getTenantId(), gateWay.getTbDeviceId(), selfTbIdStr); | 117 | addRelation(getTenantId(), gateWay.getTbDeviceId(), selfTbIdStr); |
125 | } | 118 | } |
126 | } | 119 | } |
127 | 120 | ||
128 | - | ||
129 | - | ||
130 | - DeviceDTO newDeviceDTO = deviceService.insertOrUpdate(getCurrentUser().getCurrentTenantId(), deviceDTO); | 121 | + DeviceDTO newDeviceDTO = |
122 | + deviceService.insertOrUpdate(getCurrentUser().getCurrentTenantId(), deviceDTO); | ||
131 | return ResponseEntity.ok(newDeviceDTO); | 123 | return ResponseEntity.ok(newDeviceDTO); |
132 | } | 124 | } |
133 | 125 | ||
@@ -334,25 +326,29 @@ public class YtDeviceController extends BaseController { | @@ -334,25 +326,29 @@ public class YtDeviceController extends BaseController { | ||
334 | @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{})") | 326 | @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN'},{})") |
335 | @ApiOperation("获取特定设备类型的所有设备") | 327 | @ApiOperation("获取特定设备类型的所有设备") |
336 | public List<DeviceDTO> getGatewayDevices( | 328 | public List<DeviceDTO> getGatewayDevices( |
337 | - | ||
338 | - @ApiParam(value = "设备类型") @PathVariable("deviceType") DeviceTypeEnum deviceType, | ||
339 | - @ApiParam(value = "组织ID") @RequestParam(value="organizationId", required = false) String organizationId, | ||
340 | - @ApiParam(value = "设备标签") @RequestParam(value="deviceLabel", required = false) String deviceLabel) | ||
341 | - throws ThingsboardException { | 329 | + @ApiParam(value = "设备类型") @PathVariable("deviceType") DeviceTypeEnum deviceType, |
330 | + @ApiParam(value = "组织ID") @RequestParam(value = "organizationId", required = false) | ||
331 | + String organizationId, | ||
332 | + @ApiParam(value = "设备标签") @RequestParam(value = "deviceLabel", required = false) | ||
333 | + String deviceLabel) | ||
334 | + throws ThingsboardException { | ||
342 | return deviceService.findDevicesByDeviceTypeAndOrganizationId( | 335 | return deviceService.findDevicesByDeviceTypeAndOrganizationId( |
343 | - deviceType, getCurrentUser().getCurrentTenantId(), organizationId,deviceLabel); | 336 | + deviceType, getCurrentUser().getCurrentTenantId(), organizationId, deviceLabel); |
344 | } | 337 | } |
345 | 338 | ||
346 | @GetMapping("/list") | 339 | @GetMapping("/list") |
347 | @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{})") | 340 | @PreAuthorize("@check.checkPermissions({'TENANT_ADMIN','CUSTOMER_USER'},{})") |
348 | @ApiOperation("获取满足条件的所有设备") | 341 | @ApiOperation("获取满足条件的所有设备") |
349 | public List<DeviceDTO> getDevices( | 342 | public List<DeviceDTO> getDevices( |
350 | - @ApiParam(value = "设备类型") @RequestParam(value="deviceType", required = false) DeviceTypeEnum deviceType, | ||
351 | - @ApiParam(value = "组织ID") @RequestParam(value="organizationId", required = false) String organizationId, | ||
352 | - @ApiParam(value = "设备标签") @RequestParam(value="deviceLabel", required = false) String deviceLabel) | ||
353 | - throws ThingsboardException { | 343 | + @ApiParam(value = "设备类型") @RequestParam(value = "deviceType", required = false) |
344 | + DeviceTypeEnum deviceType, | ||
345 | + @ApiParam(value = "组织ID") @RequestParam(value = "organizationId", required = false) | ||
346 | + String organizationId, | ||
347 | + @ApiParam(value = "设备标签") @RequestParam(value = "deviceLabel", required = false) | ||
348 | + String deviceLabel) | ||
349 | + throws ThingsboardException { | ||
354 | return deviceService.findDevicesByDeviceTypeAndOrganizationId( | 350 | return deviceService.findDevicesByDeviceTypeAndOrganizationId( |
355 | - deviceType, getCurrentUser().getCurrentTenantId(), organizationId,deviceLabel); | 351 | + deviceType, getCurrentUser().getCurrentTenantId(), organizationId, deviceLabel); |
356 | } | 352 | } |
357 | 353 | ||
358 | @GetMapping("/list/master/{organizationId}") | 354 | @GetMapping("/list/master/{organizationId}") |
@@ -427,7 +423,7 @@ public class YtDeviceController extends BaseController { | @@ -427,7 +423,7 @@ public class YtDeviceController extends BaseController { | ||
427 | tbDevice.setId(id); | 423 | tbDevice.setId(id); |
428 | } | 424 | } |
429 | 425 | ||
430 | - /**扩展设备附加信息,例如:设备地址码、上下线时间等*/ | 426 | + /** 扩展设备附加信息,例如:设备地址码、上下线时间等 */ |
431 | ObjectNode additionalInfo = objectMapper.createObjectNode(); | 427 | ObjectNode additionalInfo = objectMapper.createObjectNode(); |
432 | additionalInfo.put( | 428 | additionalInfo.put( |
433 | "gateway", | 429 | "gateway", |
@@ -441,9 +437,9 @@ public class YtDeviceController extends BaseController { | @@ -441,9 +437,9 @@ public class YtDeviceController extends BaseController { | ||
441 | .map(JsonNode::asText) | 437 | .map(JsonNode::asText) |
442 | .orElse("")); | 438 | .orElse("")); |
443 | additionalInfo.put("overwriteActivityTime", false); | 439 | additionalInfo.put("overwriteActivityTime", false); |
444 | - //TCP协议需要设备地址码分发数据给对应设备 | ||
445 | - if(StringUtils.isNotEmpty(deviceDTO.getCode())){ | ||
446 | - additionalInfo.put(FastIotConstants.TCP_DEVICE_IDENTIFY_FILED,deviceDTO.getCode()); | 440 | + // TCP协议需要设备地址码分发数据给对应设备 |
441 | + if (StringUtils.isNotEmpty(deviceDTO.getCode())) { | ||
442 | + additionalInfo.put(FastIotConstants.TCP_DEVICE_IDENTIFY_FILED, deviceDTO.getCode()); | ||
447 | } | 443 | } |
448 | 444 | ||
449 | DeviceProfileId deviceProfileId = | 445 | DeviceProfileId deviceProfileId = |
@@ -487,4 +483,17 @@ public class YtDeviceController extends BaseController { | @@ -487,4 +483,17 @@ public class YtDeviceController extends BaseController { | ||
487 | result.setMessage(str); | 483 | result.setMessage(str); |
488 | return result; | 484 | return result; |
489 | } | 485 | } |
486 | + | ||
487 | + @GetMapping({"/attributes/{profileId}/{id}"}) | ||
488 | + @ApiOperation("获取设备的属性") | ||
489 | + public ResponseEntity<JsonNode> getDeviceAttributes( | ||
490 | + @PathVariable("profileId") String profileId, @PathVariable("id") String id) | ||
491 | + throws ThingsboardException { | ||
492 | + String tenantId = getCurrentUser().getCurrentTenantId(); | ||
493 | + DeviceProfileDTO dto = ytDeviceProfileService.findByTbDeviceProfileId(tenantId, profileId); | ||
494 | + if (null == dto) { | ||
495 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
496 | + } | ||
497 | + return ResponseEntity.ok(deviceService.getDeviceAttributes(profileId,dto.getId(), id, tenantId)); | ||
498 | + } | ||
490 | } | 499 | } |
application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java
@@ -176,7 +176,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { | @@ -176,7 +176,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { | ||
176 | 176 | ||
177 | @Override | 177 | @Override |
178 | public void createSysAdmin() { | 178 | public void createSysAdmin() { |
179 | - createUser(Authority.SYS_ADMIN, null, null, "sysadmin@qq.com", "Sysadmin@123"); | 179 | + createUser(Authority.SYS_ADMIN, null, null, "sysadmin@yunteng.com", "Sysadmin@123"); |
180 | } | 180 | } |
181 | 181 | ||
182 | @Override | 182 | @Override |
@@ -3,63 +3,63 @@ package org.thingsboard.server.common.data.yunteng.constant; | @@ -3,63 +3,63 @@ package org.thingsboard.server.common.data.yunteng.constant; | ||
3 | public final class ModelConstants { | 3 | public final class ModelConstants { |
4 | public static class Table { | 4 | public static class Table { |
5 | /** 系统用户表 */ | 5 | /** 系统用户表 */ |
6 | - public static final String USER_TABLE_NAME = "sys_user"; | 6 | + public static final String SYS_USER_TABLE_NAME = "sys_user"; |
7 | /** 租户表 */ | 7 | /** 租户表 */ |
8 | - public static final String TENANT_TABLE_NAME = "sys_tenant"; | 8 | + public static final String SYS_TENANT_TABLE_NAME = "sys_tenant"; |
9 | /** 租户菜单表 */ | 9 | /** 租户菜单表 */ |
10 | - public static final String TENANT_MENU_TABLE_NAME = "sys_tenant_menu"; | 10 | + public static final String SYS_TENANT_MENU_TABLE_NAME = "sys_tenant_menu"; |
11 | /** 租户角色表 */ | 11 | /** 租户角色表 */ |
12 | - public static final String TENANT_ROLE_TABLE_NAME = "sys_tenant_role"; | 12 | + public static final String SYS_TENANT_ROLE_TABLE_NAME = "sys_tenant_role"; |
13 | /** 菜单表 */ | 13 | /** 菜单表 */ |
14 | - public static final String MENU_TABLE_NAME = "sys_menu"; | 14 | + public static final String SYS_MENU_TABLE_NAME = "sys_menu"; |
15 | /** 通知管理 */ | 15 | /** 通知管理 */ |
16 | public static final String SYS_NOTICE_TABLE_NAME = "sys_notice"; | 16 | public static final String SYS_NOTICE_TABLE_NAME = "sys_notice"; |
17 | /** 我的通知 */ | 17 | /** 我的通知 */ |
18 | public static final String SYS_NOTICE_USER_TABLE_NAME = "sys_notice_user"; | 18 | public static final String SYS_NOTICE_USER_TABLE_NAME = "sys_notice_user"; |
19 | /** 角色表 */ | 19 | /** 角色表 */ |
20 | - public static final String ROLE_TABLE_NAME = "sys_role"; | 20 | + public static final String SYS_ROLE_TABLE_NAME = "sys_role"; |
21 | /** 用户角色关系表 */ | 21 | /** 用户角色关系表 */ |
22 | - public static final String USER_ROLE_TABLE_NAME = "sys_user_role"; | 22 | + public static final String SYS_USER_ROLE_TABLE_NAME = "sys_user_role"; |
23 | /** 系统用户设置表 */ | 23 | /** 系统用户设置表 */ |
24 | - public static final String ADMIN_SETTING_TABLE_NAME = "sys_admin_setting"; | 24 | + public static final String SYS_ADMIN_SETTING_TABLE_NAME = "sys_admin_setting"; |
25 | /** 字典表 */ | 25 | /** 字典表 */ |
26 | - public static final String DICT_TABLE_NAME = "sys_dict"; | 26 | + public static final String SYS_DICT_TABLE_NAME = "sys_dict"; |
27 | /** 字典值表 */ | 27 | /** 字典值表 */ |
28 | - public static final String DICT_ITEM_TABLE_NAME = "sys_dict_item"; | 28 | + public static final String SYS_DICT_ITEM_TABLE_NAME = "sys_dict_item"; |
29 | /** 消息字典表 */ | 29 | /** 消息字典表 */ |
30 | - public static final String MESSAGE_CONFIG_TABLE_NAME = "message_config"; | 30 | + public static final String TK_MESSAGE_CONFIG_TABLE_NAME = "tk_message_config"; |
31 | /** 消息模板表 */ | 31 | /** 消息模板表 */ |
32 | - public static final String MESSAGE_TEMPLATE_TABLE_NAME = "message_template"; | 32 | + public static final String TK_MESSAGE_TEMPLATE_TABLE_NAME = "tk_message_template"; |
33 | /** 短信发送记录表 */ | 33 | /** 短信发送记录表 */ |
34 | - public static final String SMS_LOG_TABLE_NAME = "sms_log"; | 34 | + public static final String TK_SMS_LOG_TABLE_NAME = "tk_sms_log"; |
35 | /** 邮件发送记录表 */ | 35 | /** 邮件发送记录表 */ |
36 | - public static final String MAIL_LOG_TABLE_NAME = "mail_log"; | 36 | + public static final String TK_MAIL_LOG_TABLE_NAME = "tk_mail_log"; |
37 | /** 限流表 */ | 37 | /** 限流表 */ |
38 | - public static final String RATE_LIMIT_TABLE_NAME = "sys_rate_limit"; | 38 | + public static final String SYS_RATE_LIMIT_TABLE_NAME = "sys_rate_limit"; |
39 | /** 系统部门表 */ | 39 | /** 系统部门表 */ |
40 | - public static final String DEPT_TABLE_NAME = "sys_dept"; | 40 | + public static final String SYS_DEPT_TABLE_NAME = "sys_dept"; |
41 | /** 系统定时任务表 */ | 41 | /** 系统定时任务表 */ |
42 | - public static final String JOB_TABLE_NAME = "sys_job"; | 42 | + public static final String SYS_JOB_TABLE_NAME = "sys_job"; |
43 | /** 定时任务执行记录表 */ | 43 | /** 定时任务执行记录表 */ |
44 | - public static final String JOB_LOG_TABLE_NAME = "sys_job_log"; | 44 | + public static final String SYS_JOB_LOG_TABLE_NAME = "sys_job_log"; |
45 | /** 组织表 */ | 45 | /** 组织表 */ |
46 | - public static final String IOTFS_ORGANIZATION_TABLE_NAME = "iotfs_organization"; | 46 | + public static final String TK_ORGANIZATION_TABLE_NAME = "tk_organization"; |
47 | /** 用户与组织映射表 */ | 47 | /** 用户与组织映射表 */ |
48 | - public static final String IOTFS_USER_ORGANIZATION_MAPPING_TABLE_NAME = | ||
49 | - "iotfs_user_organization_mapping"; | 48 | + public static final String TK_USER_ORGANIZATION_MAPPING_TABLE_NAME = |
49 | + "tk_user_organization_mapping"; | ||
50 | /** 设备表 */ | 50 | /** 设备表 */ |
51 | - public static final String IOTFS_DEVICE_TABLE_NAME = "iotfs_device"; | 51 | + public static final String TK_DEVICE_TABLE_NAME = "tk_device"; |
52 | /** 产品信息(设备配置)扩展表 */ | 52 | /** 产品信息(设备配置)扩展表 */ |
53 | - public static final String IOTFS_DEVICE_PROFILE_TABLE_NAME = "iotfs_device_profile"; | 53 | + public static final String TK_DEVICE_PROFILE_TABLE_NAME = "tk_device_profile"; |
54 | /** 自定义数据协议解析脚本 */ | 54 | /** 自定义数据协议解析脚本 */ |
55 | - public static final String IOTFS_DEVICE_SCRIPT_TABLE_NAME = "iotfs_java_script"; | 55 | + public static final String TK_DEVICE_SCRIPT_TABLE_NAME = "tk_java_script"; |
56 | 56 | ||
57 | /** 设备类型表 */ | 57 | /** 设备类型表 */ |
58 | - public static final String IOTFS_DEVICE_TYPE_TABLE_NAME = "iotfs_device_type"; | 58 | + public static final String TK_DEVICE_TYPE_TABLE_NAME = "tk_device_type"; |
59 | /** 告警配置表 */ | 59 | /** 告警配置表 */ |
60 | - public static final String IOTFS_ALARM_PROFILE_TABLE_NAME = "iotfs_alarm_profile"; | 60 | + public static final String TK_ALARM_PROFILE_TABLE_NAME = "tk_alarm_profile"; |
61 | /** 告警联系人 */ | 61 | /** 告警联系人 */ |
62 | - public static final String IOTFS_ALARM_CONTACT_TABLE_NAME = "iotfs_alarm_contact"; | 62 | + public static final String TK_ALARM_CONTACT_TABLE_NAME = "tk_alarm_contact"; |
63 | /** 企业信息 */ | 63 | /** 企业信息 */ |
64 | public static final String SYS_ENTERPRISE_TABLE_NAME = "sys_enterprise"; | 64 | public static final String SYS_ENTERPRISE_TABLE_NAME = "sys_enterprise"; |
65 | /** 平台定制 */ | 65 | /** 平台定制 */ |
@@ -67,47 +67,47 @@ public final class ModelConstants { | @@ -67,47 +67,47 @@ public final class ModelConstants { | ||
67 | /** APP定制 */ | 67 | /** APP定制 */ |
68 | public static final String SYS_APP_DESIGN_TABLE_NAME = "sys_app_design"; | 68 | public static final String SYS_APP_DESIGN_TABLE_NAME = "sys_app_design"; |
69 | /** 场景联动表 */ | 69 | /** 场景联动表 */ |
70 | - public static final String IOTFS_SCENE_LINKAGE_TABLE_NAME = "iotfs_scene_linkage"; | 70 | + public static final String TK_SCENE_LINKAGE_TABLE_NAME = "tk_scene_linkage"; |
71 | /** 场景触发器 */ | 71 | /** 场景触发器 */ |
72 | - public static final String IOTFS_TRIGGER_TABLE_NAME = "iotfs_trigger"; | 72 | + public static final String TK_TRIGGER_TABLE_NAME = "tk_trigger"; |
73 | /** 执行条件表 */ | 73 | /** 执行条件表 */ |
74 | - public static final String IOTFS_DO_CONDITION_TABLE_NAME = "iotfs_do_condition"; | 74 | + public static final String TK_DO_CONDITION_TABLE_NAME = "tk_do_condition"; |
75 | /** 条件动作表 */ | 75 | /** 条件动作表 */ |
76 | - public static final String IOTFS_DO_ACTION_TABLE_NAME = "iotfs_do_action"; | 76 | + public static final String TK_DO_ACTION_TABLE_NAME = "tk_do_action"; |
77 | /** 中国城镇区街 */ | 77 | /** 中国城镇区街 */ |
78 | public static final String SYS_AREA_TABLE_NAME = "sys_area"; | 78 | public static final String SYS_AREA_TABLE_NAME = "sys_area"; |
79 | /** 数据流转配置表 */ | 79 | /** 数据流转配置表 */ |
80 | - public static final String IOTFS_CONVERT_CONFIG_TABLE_NAME = "iotfs_convert_config"; | 80 | + public static final String TK_CONVERT_CONFIG_TABLE_NAME = "tk_convert_config"; |
81 | /** 组态中心 */ | 81 | /** 组态中心 */ |
82 | - public static final String IOTFS_CONFIGURATION_CENTER_NAME = "iotfs_configuration_center"; | 82 | + public static final String TK_CONFIGURATION_CENTER_NAME = "tk_configuration_center"; |
83 | /** 组态内容 */ | 83 | /** 组态内容 */ |
84 | - public static final String IOTFS_CONFIGURATION_CONTENT_NAME = "iotfs_configuration_content"; | 84 | + public static final String TK_CONFIGURATION_CONTENT_NAME = "tk_configuration_content"; |
85 | /** 组态节点数据源 */ | 85 | /** 组态节点数据源 */ |
86 | - public static final String IOTFS_CONFIGURATION_DATASOURCE = "iotfs_configuration_datasource"; | 86 | + public static final String TK_CONFIGURATION_DATASOURCE = "tk_configuration_datasource"; |
87 | /** 组态节点数据交互 */ | 87 | /** 组态节点数据交互 */ |
88 | - public static final String IOTFS_CONFIGURATION_EVENT = "iotfs_configuration_event"; | 88 | + public static final String TK_CONFIGURATION_EVENT = "tk_configuration_event"; |
89 | /** 组态节点动画效果 */ | 89 | /** 组态节点动画效果 */ |
90 | - public static final String IOTFS_CONFIGURATION_ACT = "iotfs_configuration_act"; | 90 | + public static final String TK_CONFIGURATION_ACT = "tk_configuration_act"; |
91 | /** 视频流 */ | 91 | /** 视频流 */ |
92 | - public static final String IOTFS_VIDEO_STREAM_TABLE_NAME = "iotfs_device_camera"; | 92 | + public static final String TK_VIDEO_STREAM_TABLE_NAME = "tk_device_camera"; |
93 | /** 流媒体配置 */ | 93 | /** 流媒体配置 */ |
94 | - public static final String IOTFS_VIDEO_PLATFORM_TABLE_NAME = "iotfs_video_platform"; | 94 | + public static final String TK_VIDEO_PLATFORM_TABLE_NAME = "tk_video_platform"; |
95 | /** 意见反馈 */ | 95 | /** 意见反馈 */ |
96 | - public static final String IOTFS_OPINION_TABLE_NAME = "iotfs_opinion"; | 96 | + public static final String TK_OPINION_TABLE_NAME = "tk_opinion"; |
97 | /** 第三方用户表 */ | 97 | /** 第三方用户表 */ |
98 | - public static final String IOTFS_THIRD_USER_TABLE_NAME = "iotfs_third_user"; | 98 | + public static final String TK_THIRD_USER_TABLE_NAME = "tk_third_user"; |
99 | /** frp内网穿透信息表 */ | 99 | /** frp内网穿透信息表 */ |
100 | - public static final String IOTFS_FRP_INFO_NAME = "iotfs_frp_info"; | 100 | + public static final String TK_FRP_INFO_NAME = "tk_frp_info"; |
101 | /** 报表配置表 */ | 101 | /** 报表配置表 */ |
102 | - public static final String IOTFS_REPORT_FORM_CONFIG_NAME = "iotfs_report_form_config"; | 102 | + public static final String TK_REPORT_FORM_CONFIG_NAME = "tk_report_form_config"; |
103 | /** 报表生成记录表 */ | 103 | /** 报表生成记录表 */ |
104 | - public static final String IOTFS_REPORT_GENERATE_RECORD_NAME = "iotfs_report_generate_record"; | 104 | + public static final String TK_REPORT_GENERATE_RECORD_NAME = "tk_report_generate_record"; |
105 | /** 数据看板 */ | 105 | /** 数据看板 */ |
106 | - public static final String IOTFS_DATA_BOARD_NAME = "iotfs_data_board"; | 106 | + public static final String TK_DATA_BOARD_NAME = "tk_data_board"; |
107 | /** 数据组件 */ | 107 | /** 数据组件 */ |
108 | - public static final String IOTFS_DATA_COMPONENT_NAME = "iotfs_data_component"; | 108 | + public static final String TK_DATA_COMPONENT_NAME = "tk_data_component"; |
109 | /** 物模型 */ | 109 | /** 物模型 */ |
110 | - public static final String IOTFS_THING_MODEL = "iotfs_model"; | 110 | + public static final String TK_THING_MODEL = "tk_things_model"; |
111 | } | 111 | } |
112 | 112 | ||
113 | public static class TableFields { | 113 | public static class TableFields { |
@@ -84,6 +84,7 @@ public enum ErrorMessage { | @@ -84,6 +84,7 @@ public enum ErrorMessage { | ||
84 | MESSAGE_SEND_FAILED(4010060, "消息发送失败!"), | 84 | MESSAGE_SEND_FAILED(4010060, "消息发送失败!"), |
85 | PROJECT_USED_SCRIPT(400061,"产品【%s】正在使用待删除的解析脚本"), | 85 | PROJECT_USED_SCRIPT(400061,"产品【%s】正在使用待删除的解析脚本"), |
86 | RULE_CHAIN_NOT_ENABLE(400062,"规则链不是有效的!"), | 86 | RULE_CHAIN_NOT_ENABLE(400062,"规则链不是有效的!"), |
87 | + DUPLICATE_IDENTIFIERS_EXIST(400063,"存在重复的功能标识符。"), | ||
87 | HAVE_NO_PERMISSION(500002,"没有修改权限"); | 88 | HAVE_NO_PERMISSION(500002,"没有修改权限"); |
88 | private final int code; | 89 | private final int code; |
89 | private String message; | 90 | private String message; |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/AttributeModelDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +import io.swagger.annotations.ApiModel; | ||
5 | +import io.swagger.annotations.ApiModelProperty; | ||
6 | +import lombok.Data; | ||
7 | +import org.thingsboard.server.common.data.yunteng.enums.DataTypeEnum; | ||
8 | + | ||
9 | +@Data | ||
10 | +@ApiModel("属性模型") | ||
11 | +public class AttributeModelDTO extends BaseModelDTO { | ||
12 | + @ApiModelProperty("数据类型") | ||
13 | + private DataTypeEnum dataType; | ||
14 | + | ||
15 | + @ApiModelProperty("读写类型:0只读 1读写") | ||
16 | + private Integer readWrite; | ||
17 | + | ||
18 | + @ApiModelProperty("规格内容") | ||
19 | + private JsonNode specs; | ||
20 | +} |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/BaseModelDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | +import lombok.Data; | ||
5 | + | ||
6 | +@Data | ||
7 | +public class BaseModelDTO { | ||
8 | + @ApiModelProperty("功能名称") | ||
9 | + private String functionName; | ||
10 | + | ||
11 | + @ApiModelProperty("标识符") | ||
12 | + private String identifier; | ||
13 | + | ||
14 | + @ApiModelProperty("备注") | ||
15 | + private String remark; | ||
16 | +} |
@@ -26,6 +26,8 @@ public class DeviceDTO extends TenantDTO { | @@ -26,6 +26,8 @@ public class DeviceDTO extends TenantDTO { | ||
26 | */ | 26 | */ |
27 | private JsonNode deviceInfo; | 27 | private JsonNode deviceInfo; |
28 | 28 | ||
29 | + @ApiModelProperty(value = "别名") | ||
30 | + private String alias; | ||
29 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | 31 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
30 | private LocalDateTime activeTime; | 32 | private LocalDateTime activeTime; |
31 | 33 |
1 | package org.thingsboard.server.common.data.yunteng.dto; | 1 | package org.thingsboard.server.common.data.yunteng.dto; |
2 | 2 | ||
3 | -import com.fasterxml.jackson.databind.JsonNode; | ||
4 | import io.swagger.annotations.ApiModelProperty; | 3 | import io.swagger.annotations.ApiModelProperty; |
5 | import lombok.Data; | 4 | import lombok.Data; |
6 | import lombok.EqualsAndHashCode; | 5 | import lombok.EqualsAndHashCode; |
@@ -18,7 +17,6 @@ import javax.validation.constraints.NotEmpty; | @@ -18,7 +17,6 @@ import javax.validation.constraints.NotEmpty; | ||
18 | import javax.validation.constraints.NotNull; | 17 | import javax.validation.constraints.NotNull; |
19 | import java.time.Instant; | 18 | import java.time.Instant; |
20 | import java.time.LocalDateTime; | 19 | import java.time.LocalDateTime; |
21 | -import java.time.ZoneId; | ||
22 | import java.time.ZoneOffset; | 20 | import java.time.ZoneOffset; |
23 | import java.util.Optional; | 21 | import java.util.Optional; |
24 | import java.util.UUID; | 22 | import java.util.UUID; |
@@ -26,72 +24,84 @@ import java.util.UUID; | @@ -26,72 +24,84 @@ import java.util.UUID; | ||
26 | @EqualsAndHashCode(callSuper = true) | 24 | @EqualsAndHashCode(callSuper = true) |
27 | @Data | 25 | @Data |
28 | public class DeviceProfileDTO extends BaseDTO { | 26 | public class DeviceProfileDTO extends BaseDTO { |
29 | - @NotEmpty(message = "设备配置名称不能为空或者空字符串", groups = AddGroup.class) | ||
30 | - @ApiModelProperty(value = "产品(设备配置)名称") | ||
31 | - private String name; | ||
32 | - | ||
33 | - private String description; | ||
34 | - | ||
35 | - /** | ||
36 | - * TCP协议的解析脚本ID,由后端自己回填 | ||
37 | - */ | ||
38 | - private String scriptId; | ||
39 | - | ||
40 | - @ApiModelProperty(value = "租户ID") | ||
41 | - private String tenantId; | ||
42 | - @NotEmpty(message = "传输协议不能为空或者空字符串", groups = AddGroup.class) | ||
43 | - @ApiModelProperty(value = "传输协议", required = true) | ||
44 | - private String transportType; | ||
45 | - | ||
46 | - private String provisionType; | ||
47 | - | ||
48 | - @NotNull(message = "产品类型不能为空", groups = {AddGroup.class}) | ||
49 | - @ApiModelProperty(value = "产品类型:GATEWAY,DIRECT_CONNECTION,SENSOR", required = true) | ||
50 | - private DeviceTypeEnum deviceType; | ||
51 | - | ||
52 | - /** | ||
53 | - * TB的设备配置文件 | ||
54 | - */ | ||
55 | - private String tbProfileId; | ||
56 | - @Valid | ||
57 | - private transient DeviceProfileData profileData; | ||
58 | - @ApiModelProperty(value = "关联规则链,默认关联根规则链", required = false) | ||
59 | - private String defaultRuleChainId; | ||
60 | - /** | ||
61 | - * 告警通知配置 | ||
62 | - */ | ||
63 | - private AlarmProfileDTO alarmProfile; | ||
64 | - | ||
65 | - /**默认消息队列*/ | ||
66 | - private String defaultQueueName; | ||
67 | - | ||
68 | - /**设备配置图片*/ | ||
69 | - private String image; | ||
70 | - /**是否默认设备配置*/ | ||
71 | - private boolean isDefault; | ||
72 | - private String type; | ||
73 | - | ||
74 | - public DeviceProfileDTO() { | ||
75 | - } | ||
76 | - | ||
77 | - public DeviceProfileDTO(UUID id, String name, Long time, String description, DeviceTransportType transportType, UUID defaultRuleChainId,boolean isDefault,String image,DeviceProfileType type,Object profileData) { | ||
78 | - setId(id.toString()); | ||
79 | - setCreateTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneOffset.of("+8"))); | ||
80 | - this.name = name; | ||
81 | - this.isDefault = isDefault; | ||
82 | - this.image = image; | ||
83 | - this.description = description; | ||
84 | - this.type = type.name(); | ||
85 | - this.transportType = transportType.name(); | ||
86 | - this.defaultRuleChainId = Optional.ofNullable(defaultRuleChainId).map(chainId -> chainId.toString()).orElse(null); | ||
87 | - this.profileData = JacksonUtil.convertValue(profileData, DeviceProfileData.class); | ||
88 | - | ||
89 | - } | ||
90 | - public DeviceProfileDTO(String name, TenantId tenantId, DeviceProfileId tbProfileId, DeviceTypeEnum deviceType) { | ||
91 | - this.name = name; | ||
92 | - this.tenantId =tenantId.getId().toString(); | ||
93 | - this.tbProfileId = tbProfileId.getId().toString(); | ||
94 | - this.deviceType = deviceType; | ||
95 | - } | 27 | + @NotEmpty(message = "设备配置名称不能为空或者空字符串", groups = AddGroup.class) |
28 | + @ApiModelProperty(value = "产品(设备配置)名称") | ||
29 | + private String name; | ||
96 | 30 | ||
31 | + private String description; | ||
32 | + | ||
33 | + /** TCP协议的解析脚本ID,由后端自己回填 */ | ||
34 | + private String scriptId; | ||
35 | + | ||
36 | + @ApiModelProperty(value = "租户ID") | ||
37 | + private String tenantId; | ||
38 | + | ||
39 | + @NotEmpty(message = "传输协议不能为空或者空字符串", groups = AddGroup.class) | ||
40 | + @ApiModelProperty(value = "传输协议", required = true) | ||
41 | + private String transportType; | ||
42 | + | ||
43 | + private String provisionType; | ||
44 | + | ||
45 | + @NotNull( | ||
46 | + message = "产品类型不能为空", | ||
47 | + groups = {AddGroup.class}) | ||
48 | + @ApiModelProperty(value = "产品类型:GATEWAY,DIRECT_CONNECTION,SENSOR", required = true) | ||
49 | + private DeviceTypeEnum deviceType; | ||
50 | + | ||
51 | + /** TB的设备配置文件 */ | ||
52 | + private String tbProfileId; | ||
53 | + | ||
54 | + @Valid private transient DeviceProfileData profileData; | ||
55 | + | ||
56 | + @ApiModelProperty(value = "关联规则链,默认关联根规则链") | ||
57 | + private String defaultRuleChainId; | ||
58 | + /** 告警通知配置 */ | ||
59 | + private AlarmProfileDTO alarmProfile; | ||
60 | + | ||
61 | + /** 默认消息队列 */ | ||
62 | + private String defaultQueueName; | ||
63 | + | ||
64 | + /** 设备配置图片 */ | ||
65 | + private String image; | ||
66 | + /** 是否默认设备配置 */ | ||
67 | + private boolean isDefault; | ||
68 | + | ||
69 | + private String type; | ||
70 | + | ||
71 | + @ApiModelProperty(value = "物模型") | ||
72 | + private ThingsModelDTO thingsModel; | ||
73 | + | ||
74 | + public DeviceProfileDTO() {} | ||
75 | + | ||
76 | + public DeviceProfileDTO( | ||
77 | + UUID id, | ||
78 | + String name, | ||
79 | + Long time, | ||
80 | + String description, | ||
81 | + DeviceTransportType transportType, | ||
82 | + UUID defaultRuleChainId, | ||
83 | + boolean isDefault, | ||
84 | + String image, | ||
85 | + DeviceProfileType type, | ||
86 | + Object profileData) { | ||
87 | + setId(id.toString()); | ||
88 | + setCreateTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneOffset.of("+8"))); | ||
89 | + this.name = name; | ||
90 | + this.isDefault = isDefault; | ||
91 | + this.image = image; | ||
92 | + this.description = description; | ||
93 | + this.type = type.name(); | ||
94 | + this.transportType = transportType.name(); | ||
95 | + this.defaultRuleChainId = | ||
96 | + Optional.ofNullable(defaultRuleChainId).map(UUID::toString).orElse(null); | ||
97 | + this.profileData = JacksonUtil.convertValue(profileData, DeviceProfileData.class); | ||
98 | + } | ||
99 | + | ||
100 | + public DeviceProfileDTO( | ||
101 | + String name, TenantId tenantId, DeviceProfileId tbProfileId, DeviceTypeEnum deviceType) { | ||
102 | + this.name = name; | ||
103 | + this.tenantId = tenantId.getId().toString(); | ||
104 | + this.tbProfileId = tbProfileId.getId().toString(); | ||
105 | + this.deviceType = deviceType; | ||
106 | + } | ||
97 | } | 107 | } |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/EventModelDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +import io.swagger.annotations.ApiModel; | ||
5 | +import io.swagger.annotations.ApiModelProperty; | ||
6 | +import lombok.Data; | ||
7 | +import lombok.EqualsAndHashCode; | ||
8 | + | ||
9 | +@EqualsAndHashCode(callSuper = true) | ||
10 | +@Data | ||
11 | +@ApiModel("事件模型") | ||
12 | +public class EventModelDTO extends BaseModelDTO { | ||
13 | + @ApiModelProperty("时间类型:0 信息 1告警 2故障") | ||
14 | + private Integer type; | ||
15 | + | ||
16 | + @ApiModelProperty("输出参数") | ||
17 | + private JsonNode outputData; | ||
18 | +} |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/ServiceModelDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +import io.swagger.annotations.ApiModel; | ||
5 | +import io.swagger.annotations.ApiModelProperty; | ||
6 | +import lombok.Data; | ||
7 | +import lombok.EqualsAndHashCode; | ||
8 | + | ||
9 | +@EqualsAndHashCode(callSuper = true) | ||
10 | +@Data | ||
11 | +@ApiModel("服务模型") | ||
12 | +public class ServiceModelDTO extends BaseModelDTO { | ||
13 | + @ApiModelProperty("调用方式:0 同步 1异步") | ||
14 | + private Integer method; | ||
15 | + | ||
16 | + @ApiModelProperty("输入参数") | ||
17 | + private JsonNode inputData; | ||
18 | + | ||
19 | + @ApiModelProperty("输出参数") | ||
20 | + private JsonNode outputData; | ||
21 | +} |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/ThingsModelDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +import io.swagger.annotations.ApiModel; | ||
5 | +import io.swagger.annotations.ApiModelProperty; | ||
6 | +import lombok.Data; | ||
7 | +import lombok.EqualsAndHashCode; | ||
8 | +import org.thingsboard.server.common.data.yunteng.common.AddGroup; | ||
9 | +import org.thingsboard.server.common.data.yunteng.common.UpdateGroup; | ||
10 | +import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | ||
11 | + | ||
12 | +import javax.validation.constraints.NotEmpty; | ||
13 | +import javax.validation.constraints.NotNull; | ||
14 | + | ||
15 | +@Data | ||
16 | +@EqualsAndHashCode(callSuper = true) | ||
17 | +@ApiModel("物模型") | ||
18 | +public class ThingsModelDTO extends TenantDTO { | ||
19 | + @ApiModelProperty("功能类型") | ||
20 | + @NotNull( | ||
21 | + message = "功能类型不能为空", | ||
22 | + groups = {AddGroup.class, UpdateGroup.class}) | ||
23 | + private FunctionTypeEnum functionType; | ||
24 | + | ||
25 | + @ApiModelProperty("功能名称") | ||
26 | + @NotEmpty( | ||
27 | + message = "功能名称不能为空或空字符串", | ||
28 | + groups = {AddGroup.class}) | ||
29 | + private String functionName; | ||
30 | + | ||
31 | + @NotEmpty( | ||
32 | + message = "功能标识不能为空或空字符串", | ||
33 | + groups = {AddGroup.class}) | ||
34 | + @ApiModelProperty("功能标识") | ||
35 | + private String identifier; | ||
36 | + | ||
37 | + @ApiModelProperty("功能json") | ||
38 | + @NotNull( | ||
39 | + message = "功能json不能为空", | ||
40 | + groups = {AddGroup.class}) | ||
41 | + private JsonNode functionJson; | ||
42 | + | ||
43 | + @ApiModelProperty("设备配置ID") | ||
44 | + @NotEmpty( | ||
45 | + message = "设备配置ID不能为空或空字符串", | ||
46 | + groups = {AddGroup.class, UpdateGroup.class}) | ||
47 | + private String deviceProfileId; | ||
48 | + | ||
49 | + @ApiModelProperty("备注") | ||
50 | + private String remark; | ||
51 | +} |
@@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
9 | import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; | 9 | import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; |
10 | 10 | ||
11 | @Data | 11 | @Data |
12 | -@TableName(value = ModelConstants.Table.IOTFS_CONVERT_CONFIG_TABLE_NAME, autoResultMap = true) | 12 | +@TableName(value = ModelConstants.Table.TK_CONVERT_CONFIG_TABLE_NAME, autoResultMap = true) |
13 | public class ConvertConfig extends TenantBaseEntity { | 13 | public class ConvertConfig extends TenantBaseEntity { |
14 | private static final long serialVersionUID = -8354537796750197427L; | 14 | private static final long serialVersionUID = -8354537796750197427L; |
15 | private String name; | 15 | private String name; |
@@ -9,7 +9,7 @@ import java.time.LocalDateTime; | @@ -9,7 +9,7 @@ import java.time.LocalDateTime; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = false) | 11 | @EqualsAndHashCode(callSuper = false) |
12 | -@TableName(ModelConstants.Table.ADMIN_SETTING_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_ADMIN_SETTING_TABLE_NAME) |
13 | public class AdminSetting extends BaseEntity { | 13 | public class AdminSetting extends BaseEntity { |
14 | 14 | ||
15 | private static final long serialVersionUID = -881433375246560135L; | 15 | private static final long serialVersionUID = -881433375246560135L; |
@@ -16,7 +16,7 @@ import java.time.LocalDateTime; | @@ -16,7 +16,7 @@ import java.time.LocalDateTime; | ||
16 | */ | 16 | */ |
17 | @Data | 17 | @Data |
18 | @EqualsAndHashCode(callSuper = true) | 18 | @EqualsAndHashCode(callSuper = true) |
19 | -@TableName(ModelConstants.Table.IOTFS_ALARM_CONTACT_TABLE_NAME) | 19 | +@TableName(ModelConstants.Table.TK_ALARM_CONTACT_TABLE_NAME) |
20 | public class AlarmContact extends TenantBaseEntity{ | 20 | public class AlarmContact extends TenantBaseEntity{ |
21 | 21 | ||
22 | private static final long serialVersionUID= -3982884827995610164L; | 22 | private static final long serialVersionUID= -3982884827995610164L; |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @EqualsAndHashCode(callSuper = true) | 9 | @EqualsAndHashCode(callSuper = true) |
10 | -@TableName(ModelConstants.Table.IOTFS_ALARM_PROFILE_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.TK_ALARM_PROFILE_TABLE_NAME) |
11 | public class AlarmProfile extends TenantBaseEntity { | 11 | public class AlarmProfile extends TenantBaseEntity { |
12 | 12 | ||
13 | private static final long serialVersionUID = -4922707705163155569L; | 13 | private static final long serialVersionUID = -4922707705163155569L; |
@@ -14,7 +14,7 @@ import org.thingsboard.server.common.data.yunteng.enums.ActTypeEnum; | @@ -14,7 +14,7 @@ import org.thingsboard.server.common.data.yunteng.enums.ActTypeEnum; | ||
14 | * @author Administrator | 14 | * @author Administrator |
15 | */ | 15 | */ |
16 | @EqualsAndHashCode(callSuper = true) | 16 | @EqualsAndHashCode(callSuper = true) |
17 | -@TableName(value = ModelConstants.Table.IOTFS_CONFIGURATION_ACT, autoResultMap = true) | 17 | +@TableName(value = ModelConstants.Table.TK_CONFIGURATION_ACT, autoResultMap = true) |
18 | @Data | 18 | @Data |
19 | public class ConfigurationAct extends ConfigurationBaseEntity { | 19 | public class ConfigurationAct extends ConfigurationBaseEntity { |
20 | private static final long serialVersionUID = -4125982858197381343L; | 20 | private static final long serialVersionUID = -4125982858197381343L; |
@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; | @@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; | ||
6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
7 | 7 | ||
8 | @EqualsAndHashCode(callSuper = true) | 8 | @EqualsAndHashCode(callSuper = true) |
9 | -@TableName(ModelConstants.Table.IOTFS_CONFIGURATION_CENTER_NAME) | 9 | +@TableName(ModelConstants.Table.TK_CONFIGURATION_CENTER_NAME) |
10 | @Data | 10 | @Data |
11 | public class ConfigurationCenter extends TenantBaseEntity { | 11 | public class ConfigurationCenter extends TenantBaseEntity { |
12 | private static final long serialVersionUID = -7825135358032541445L; | 12 | private static final long serialVersionUID = -7825135358032541445L; |
@@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; | @@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; | ||
6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
7 | 7 | ||
8 | @EqualsAndHashCode(callSuper = true) | 8 | @EqualsAndHashCode(callSuper = true) |
9 | -@TableName(ModelConstants.Table.IOTFS_CONFIGURATION_CONTENT_NAME) | 9 | +@TableName(ModelConstants.Table.TK_CONFIGURATION_CONTENT_NAME) |
10 | @Data | 10 | @Data |
11 | public class ConfigurationContent extends TenantBaseEntity { | 11 | public class ConfigurationContent extends TenantBaseEntity { |
12 | 12 |
@@ -7,15 +7,12 @@ import com.fasterxml.jackson.databind.JsonNode; | @@ -7,15 +7,12 @@ import com.fasterxml.jackson.databind.JsonNode; | ||
7 | import lombok.Data; | 7 | import lombok.Data; |
8 | import lombok.EqualsAndHashCode; | 8 | import lombok.EqualsAndHashCode; |
9 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 9 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
10 | -import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; | ||
11 | - | ||
12 | -import java.util.List; | ||
13 | 10 | ||
14 | /** | 11 | /** |
15 | * @author Administrator | 12 | * @author Administrator |
16 | */ | 13 | */ |
17 | @EqualsAndHashCode(callSuper = true) | 14 | @EqualsAndHashCode(callSuper = true) |
18 | -@TableName(value = ModelConstants.Table.IOTFS_CONFIGURATION_DATASOURCE, autoResultMap = true) | 15 | +@TableName(value = ModelConstants.Table.TK_CONFIGURATION_DATASOURCE, autoResultMap = true) |
19 | @Data | 16 | @Data |
20 | public class ConfigurationDatasource extends ConfigurationBaseEntity { | 17 | public class ConfigurationDatasource extends ConfigurationBaseEntity { |
21 | private static final long serialVersionUID = 2830393872646826226L; | 18 | private static final long serialVersionUID = 2830393872646826226L; |
@@ -14,7 +14,7 @@ import org.thingsboard.server.common.data.yunteng.enums.EventTypeEnum; | @@ -14,7 +14,7 @@ import org.thingsboard.server.common.data.yunteng.enums.EventTypeEnum; | ||
14 | * @author Administrator | 14 | * @author Administrator |
15 | */ | 15 | */ |
16 | @EqualsAndHashCode(callSuper = true) | 16 | @EqualsAndHashCode(callSuper = true) |
17 | -@TableName(value = ModelConstants.Table.IOTFS_CONFIGURATION_EVENT, autoResultMap = true) | 17 | +@TableName(value = ModelConstants.Table.TK_CONFIGURATION_EVENT, autoResultMap = true) |
18 | @Data | 18 | @Data |
19 | public class ConfigurationEvent extends ConfigurationBaseEntity { | 19 | public class ConfigurationEvent extends ConfigurationBaseEntity { |
20 | private static final long serialVersionUID = 4613503997176066996L; | 20 | private static final long serialVersionUID = 4613503997176066996L; |
@@ -11,7 +11,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -11,7 +11,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
11 | import org.thingsboard.server.common.data.yunteng.enums.ViewType; | 11 | import org.thingsboard.server.common.data.yunteng.enums.ViewType; |
12 | 12 | ||
13 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
14 | -@TableName(value = ModelConstants.Table.IOTFS_DATA_BOARD_NAME, autoResultMap = true) | 14 | +@TableName(value = ModelConstants.Table.TK_DATA_BOARD_NAME, autoResultMap = true) |
15 | @Data | 15 | @Data |
16 | public class DataBoard extends TenantBaseEntity { | 16 | public class DataBoard extends TenantBaseEntity { |
17 | 17 |
@@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
10 | 10 | ||
11 | @Data | 11 | @Data |
12 | @EqualsAndHashCode(callSuper = true) | 12 | @EqualsAndHashCode(callSuper = true) |
13 | -@TableName(value = ModelConstants.Table.IOTFS_DATA_COMPONENT_NAME, autoResultMap = true) | 13 | +@TableName(value = ModelConstants.Table.TK_DATA_COMPONENT_NAME, autoResultMap = true) |
14 | public class DataComponent extends TenantBaseEntity { | 14 | public class DataComponent extends TenantBaseEntity { |
15 | 15 | ||
16 | private static final long serialVersionUID = -1500982711916168023L; | 16 | private static final long serialVersionUID = -1500982711916168023L; |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @EqualsAndHashCode(callSuper = true) | 9 | @EqualsAndHashCode(callSuper = true) |
10 | -@TableName(ModelConstants.Table.IOTFS_DEVICE_TYPE_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.TK_DEVICE_TYPE_TABLE_NAME) |
11 | public class DeviceType extends TenantBaseEntity { | 11 | public class DeviceType extends TenantBaseEntity { |
12 | 12 | ||
13 | private static final long serialVersionUID = -3777232331298040322L; | 13 | private static final long serialVersionUID = -3777232331298040322L; |
@@ -3,7 +3,6 @@ package org.thingsboard.server.dao.yunteng.entities; | @@ -3,7 +3,6 @@ package org.thingsboard.server.dao.yunteng.entities; | ||
3 | import com.baomidou.mybatisplus.annotation.TableField; | 3 | import com.baomidou.mybatisplus.annotation.TableField; |
4 | import com.baomidou.mybatisplus.annotation.TableName; | 4 | import com.baomidou.mybatisplus.annotation.TableName; |
5 | import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | 5 | import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; |
6 | -import com.fasterxml.jackson.annotation.JsonIgnore; | ||
7 | import com.fasterxml.jackson.databind.JsonNode; | 6 | import com.fasterxml.jackson.databind.JsonNode; |
8 | import lombok.Data; | 7 | import lombok.Data; |
9 | import lombok.EqualsAndHashCode; | 8 | import lombok.EqualsAndHashCode; |
@@ -13,14 +12,13 @@ import org.thingsboard.server.common.data.yunteng.enums.ActionTypeEnum; | @@ -13,14 +12,13 @@ import org.thingsboard.server.common.data.yunteng.enums.ActionTypeEnum; | ||
13 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; | 12 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; |
14 | import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; | 13 | import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; |
15 | 14 | ||
16 | -import java.util.Arrays; | ||
17 | import java.util.List; | 15 | import java.util.List; |
18 | 16 | ||
19 | /** | 17 | /** |
20 | * @Description 执行动作 @Author cxy @Date 2021/11/24 17:24 | 18 | * @Description 执行动作 @Author cxy @Date 2021/11/24 17:24 |
21 | */ | 19 | */ |
22 | @Data | 20 | @Data |
23 | -@TableName(value = ModelConstants.Table.IOTFS_DO_ACTION_TABLE_NAME, autoResultMap = true) | 21 | +@TableName(value = ModelConstants.Table.TK_DO_ACTION_TABLE_NAME, autoResultMap = true) |
24 | @EqualsAndHashCode(callSuper = true) | 22 | @EqualsAndHashCode(callSuper = true) |
25 | public class DoAction extends TenantBaseEntity { | 23 | public class DoAction extends TenantBaseEntity { |
26 | 24 |
@@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | @@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
6 | import lombok.Data; | 6 | import lombok.Data; |
7 | import lombok.EqualsAndHashCode; | 7 | import lombok.EqualsAndHashCode; |
8 | import org.apache.ibatis.type.EnumTypeHandler; | 8 | import org.apache.ibatis.type.EnumTypeHandler; |
9 | -import org.thingsboard.server.common.data.device.profile.AlarmCondition; | ||
10 | import org.thingsboard.server.common.data.device.profile.AlarmRule; | 9 | import org.thingsboard.server.common.data.device.profile.AlarmRule; |
11 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 10 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
12 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; | 11 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; |
13 | import org.thingsboard.server.common.data.yunteng.enums.TriggerTypeEnum; | 12 | import org.thingsboard.server.common.data.yunteng.enums.TriggerTypeEnum; |
14 | import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; | 13 | import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; |
15 | 14 | ||
16 | -import java.util.Arrays; | ||
17 | import java.util.List; | 15 | import java.util.List; |
18 | 16 | ||
19 | /** | 17 | /** |
20 | * @Description 执行条件实体表 @Author cxy @Date 2021/11/24 17:16 | 18 | * @Description 执行条件实体表 @Author cxy @Date 2021/11/24 17:16 |
21 | */ | 19 | */ |
22 | @Data | 20 | @Data |
23 | -@TableName(value = ModelConstants.Table.IOTFS_DO_CONDITION_TABLE_NAME, autoResultMap = true) | 21 | +@TableName(value = ModelConstants.Table.TK_DO_CONDITION_TABLE_NAME, autoResultMap = true) |
24 | @EqualsAndHashCode(callSuper = true) | 22 | @EqualsAndHashCode(callSuper = true) |
25 | public class DoCondition extends TenantBaseEntity { | 23 | public class DoCondition extends TenantBaseEntity { |
26 | private static final long serialVersionUID = 2827674377416477646L; | 24 | private static final long serialVersionUID = 2827674377416477646L; |
@@ -9,7 +9,7 @@ import java.time.LocalDateTime; | @@ -9,7 +9,7 @@ import java.time.LocalDateTime; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = true) | 11 | @EqualsAndHashCode(callSuper = true) |
12 | -@TableName(value = ModelConstants.Table.IOTFS_FRP_INFO_NAME, autoResultMap = true) | 12 | +@TableName(value = ModelConstants.Table.TK_FRP_INFO_NAME, autoResultMap = true) |
13 | public class FrpInfo extends BaseEntity { | 13 | public class FrpInfo extends BaseEntity { |
14 | 14 | ||
15 | private static final long serialVersionUID = 970621268444886639L; | 15 | private static final long serialVersionUID = 970621268444886639L; |
@@ -12,7 +12,7 @@ import java.time.LocalDateTime; | @@ -12,7 +12,7 @@ import java.time.LocalDateTime; | ||
12 | 12 | ||
13 | @Data | 13 | @Data |
14 | @EqualsAndHashCode(callSuper = false) | 14 | @EqualsAndHashCode(callSuper = false) |
15 | -@TableName(value = ModelConstants.Table.MAIL_LOG_TABLE_NAME,autoResultMap = true) | 15 | +@TableName(value = ModelConstants.Table.TK_MAIL_LOG_TABLE_NAME,autoResultMap = true) |
16 | public class MailLog extends BaseEntity { | 16 | public class MailLog extends BaseEntity { |
17 | private static final long serialVersionUID = -8847842025838559296L; | 17 | private static final long serialVersionUID = -8847842025838559296L; |
18 | 18 |
@@ -11,7 +11,7 @@ import org.thingsboard.server.common.data.yunteng.enums.MenuTypeEnum; | @@ -11,7 +11,7 @@ import org.thingsboard.server.common.data.yunteng.enums.MenuTypeEnum; | ||
11 | 11 | ||
12 | @Data | 12 | @Data |
13 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
14 | -@TableName(ModelConstants.Table.MENU_TABLE_NAME) | 14 | +@TableName(ModelConstants.Table.SYS_MENU_TABLE_NAME) |
15 | public class Menu extends TenantBaseEntity { | 15 | public class Menu extends TenantBaseEntity { |
16 | 16 | ||
17 | private static final long serialVersionUID = 6319718763792214142L; | 17 | private static final long serialVersionUID = 6319718763792214142L; |
@@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
10 | 10 | ||
11 | @Data | 11 | @Data |
12 | @EqualsAndHashCode(callSuper = true) | 12 | @EqualsAndHashCode(callSuper = true) |
13 | -@TableName(value = ModelConstants.Table.MESSAGE_CONFIG_TABLE_NAME, autoResultMap = true) | 13 | +@TableName(value = ModelConstants.Table.TK_MESSAGE_CONFIG_TABLE_NAME, autoResultMap = true) |
14 | public class MessageConfig extends TenantBaseEntity { | 14 | public class MessageConfig extends TenantBaseEntity { |
15 | 15 | ||
16 | private static final long serialVersionUID = -3624943194108704138L; | 16 | private static final long serialVersionUID = -3624943194108704138L; |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @EqualsAndHashCode(callSuper = true) | 9 | @EqualsAndHashCode(callSuper = true) |
10 | -@TableName(ModelConstants.Table.MESSAGE_TEMPLATE_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.TK_MESSAGE_TEMPLATE_TABLE_NAME) |
11 | public class MessageTemplate extends TenantBaseEntity { | 11 | public class MessageTemplate extends TenantBaseEntity { |
12 | 12 | ||
13 | private static final long serialVersionUID = 6347635507829273091L; | 13 | private static final long serialVersionUID = 6347635507829273091L; |
@@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = true) | 11 | @EqualsAndHashCode(callSuper = true) |
12 | -@TableName(ModelConstants.Table.IOTFS_ORGANIZATION_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.TK_ORGANIZATION_TABLE_NAME) |
13 | public class Organization extends TenantBaseEntity { | 13 | public class Organization extends TenantBaseEntity { |
14 | 14 | ||
15 | @TableField(updateStrategy = FieldStrategy.IGNORED) | 15 | @TableField(updateStrategy = FieldStrategy.IGNORED) |
@@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.enums.RateLimitType; | @@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.enums.RateLimitType; | ||
9 | import java.time.LocalTime; | 9 | import java.time.LocalTime; |
10 | 10 | ||
11 | @Data | 11 | @Data |
12 | -@TableName(ModelConstants.Table.RATE_LIMIT_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_RATE_LIMIT_TABLE_NAME) |
13 | public class RateLimiterEntity { | 13 | public class RateLimiterEntity { |
14 | private String id; | 14 | private String id; |
15 | private String path; | 15 | private String path; |
@@ -11,7 +11,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -11,7 +11,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
11 | 11 | ||
12 | @Data | 12 | @Data |
13 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
14 | -@TableName(value = ModelConstants.Table.IOTFS_REPORT_FORM_CONFIG_NAME, autoResultMap = true) | 14 | +@TableName(value = ModelConstants.Table.TK_REPORT_FORM_CONFIG_NAME, autoResultMap = true) |
15 | public class ReportFormConfig extends TenantBaseEntity { | 15 | public class ReportFormConfig extends TenantBaseEntity { |
16 | 16 | ||
17 | private static final long serialVersionUID = -1678849271872511953L; | 17 | private static final long serialVersionUID = -1678849271872511953L; |
@@ -11,7 +11,7 @@ import java.time.LocalDateTime; | @@ -11,7 +11,7 @@ import java.time.LocalDateTime; | ||
11 | 11 | ||
12 | @Data | 12 | @Data |
13 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
14 | -@TableName(value = ModelConstants.Table.IOTFS_REPORT_GENERATE_RECORD_NAME, autoResultMap = true) | 14 | +@TableName(value = ModelConstants.Table.TK_REPORT_GENERATE_RECORD_NAME, autoResultMap = true) |
15 | public class ReportGenerateRecord extends TenantBaseEntity { | 15 | public class ReportGenerateRecord extends TenantBaseEntity { |
16 | 16 | ||
17 | /** 报表配置名称 */ | 17 | /** 报表配置名称 */ |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @EqualsAndHashCode(callSuper = false) | 9 | @EqualsAndHashCode(callSuper = false) |
10 | -@TableName(ModelConstants.Table.ROLE_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.SYS_ROLE_TABLE_NAME) |
11 | public class Role extends TenantBaseEntity { | 11 | public class Role extends TenantBaseEntity { |
12 | 12 | ||
13 | private static final long serialVersionUID = 3915852360063998830L; | 13 | private static final long serialVersionUID = 3915852360063998830L; |
@@ -6,7 +6,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -6,7 +6,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
6 | 6 | ||
7 | /** @Description 场景联动实体表 @Author cxy @Date 2021/11/24 16:40 */ | 7 | /** @Description 场景联动实体表 @Author cxy @Date 2021/11/24 16:40 */ |
8 | @Data | 8 | @Data |
9 | -@TableName(value = ModelConstants.Table.IOTFS_SCENE_LINKAGE_TABLE_NAME) | 9 | +@TableName(value = ModelConstants.Table.TK_SCENE_LINKAGE_TABLE_NAME) |
10 | @EqualsAndHashCode(callSuper = true) | 10 | @EqualsAndHashCode(callSuper = true) |
11 | public class SceneLinkage extends TenantBaseEntity { | 11 | public class SceneLinkage extends TenantBaseEntity { |
12 | 12 |
@@ -13,7 +13,7 @@ import java.time.LocalDateTime; | @@ -13,7 +13,7 @@ import java.time.LocalDateTime; | ||
13 | 13 | ||
14 | @Data | 14 | @Data |
15 | @EqualsAndHashCode(callSuper = false) | 15 | @EqualsAndHashCode(callSuper = false) |
16 | -@TableName(value = ModelConstants.Table.SMS_LOG_TABLE_NAME,autoResultMap = true) | 16 | +@TableName(value = ModelConstants.Table.TK_SMS_LOG_TABLE_NAME,autoResultMap = true) |
17 | public class SmsLog extends BaseEntity { | 17 | public class SmsLog extends BaseEntity { |
18 | 18 | ||
19 | private static final long serialVersionUID = 2778820322396894328L; | 19 | private static final long serialVersionUID = 2778820322396894328L; |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @EqualsAndHashCode(callSuper = true) | 9 | @EqualsAndHashCode(callSuper = true) |
10 | -@TableName(ModelConstants.Table.DEPT_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.SYS_DEPT_TABLE_NAME) |
11 | public class SysDept extends TenantBaseEntity { | 11 | public class SysDept extends TenantBaseEntity { |
12 | 12 | ||
13 | 13 |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @EqualsAndHashCode(callSuper = false) | 9 | @EqualsAndHashCode(callSuper = false) |
10 | -@TableName(ModelConstants.Table.DICT_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.SYS_DICT_TABLE_NAME) |
11 | public class SysDict extends TenantBaseEntity { | 11 | public class SysDict extends TenantBaseEntity { |
12 | 12 | ||
13 | private static final long serialVersionUID = -5381101569947327544L; | 13 | private static final long serialVersionUID = -5381101569947327544L; |
@@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -7,7 +7,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
7 | 7 | ||
8 | @Data | 8 | @Data |
9 | @RequiredArgsConstructor | 9 | @RequiredArgsConstructor |
10 | -@TableName(ModelConstants.Table.DICT_ITEM_TABLE_NAME) | 10 | +@TableName(ModelConstants.Table.SYS_DICT_ITEM_TABLE_NAME) |
11 | public class SysDictItem extends TenantBaseEntity { | 11 | public class SysDictItem extends TenantBaseEntity { |
12 | 12 | ||
13 | private static final long serialVersionUID = 9177617160310722864L; | 13 | private static final long serialVersionUID = 9177617160310722864L; |
@@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
9 | /** 定时任务调度表 sys_job */ | 9 | /** 定时任务调度表 sys_job */ |
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = true) | 11 | @EqualsAndHashCode(callSuper = true) |
12 | -@TableName(ModelConstants.Table.JOB_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_JOB_TABLE_NAME) |
13 | public class SysJob extends TenantBaseEntity { | 13 | public class SysJob extends TenantBaseEntity { |
14 | 14 | ||
15 | private static final long serialVersionUID = -5277603237529335023L; | 15 | private static final long serialVersionUID = -5277603237529335023L; |
@@ -6,7 +6,6 @@ import lombok.EqualsAndHashCode; | @@ -6,7 +6,6 @@ import lombok.EqualsAndHashCode; | ||
6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
7 | 7 | ||
8 | import java.time.LocalDateTime; | 8 | import java.time.LocalDateTime; |
9 | -import java.util.Date; | ||
10 | 9 | ||
11 | /** | 10 | /** |
12 | * 定时任务调度日志表 sys_job_log | 11 | * 定时任务调度日志表 sys_job_log |
@@ -14,7 +13,7 @@ import java.util.Date; | @@ -14,7 +13,7 @@ import java.util.Date; | ||
14 | */ | 13 | */ |
15 | @Data | 14 | @Data |
16 | @EqualsAndHashCode(callSuper = true) | 15 | @EqualsAndHashCode(callSuper = true) |
17 | -@TableName(ModelConstants.Table.JOB_LOG_TABLE_NAME) | 16 | +@TableName(ModelConstants.Table.SYS_JOB_LOG_TABLE_NAME) |
18 | public class SysJobLog extends BaseEntity { | 17 | public class SysJobLog extends BaseEntity { |
19 | 18 | ||
20 | private static final long serialVersionUID = 1739849551616104371L; | 19 | private static final long serialVersionUID = 1739849551616104371L; |
@@ -9,7 +9,7 @@ import java.time.LocalDateTime; | @@ -9,7 +9,7 @@ import java.time.LocalDateTime; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = false) | 11 | @EqualsAndHashCode(callSuper = false) |
12 | -@TableName(ModelConstants.Table.TENANT_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_TENANT_TABLE_NAME) |
13 | public class Tenant extends AuditRelatedEntity { | 13 | public class Tenant extends AuditRelatedEntity { |
14 | 14 | ||
15 | private static final long serialVersionUID = 4848421848961008112L; | 15 | private static final long serialVersionUID = 4848421848961008112L; |
@@ -9,7 +9,7 @@ import java.io.Serializable; | @@ -9,7 +9,7 @@ import java.io.Serializable; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = false) | 11 | @EqualsAndHashCode(callSuper = false) |
12 | -@TableName(ModelConstants.Table.TENANT_MENU_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_TENANT_MENU_TABLE_NAME) |
13 | public class TenantMenu implements Serializable { | 13 | public class TenantMenu implements Serializable { |
14 | private static final long serialVersionUID = -8775371485677702427L; | 14 | private static final long serialVersionUID = -8775371485677702427L; |
15 | /** 菜单ID */ | 15 | /** 菜单ID */ |
@@ -9,7 +9,7 @@ import java.io.Serializable; | @@ -9,7 +9,7 @@ import java.io.Serializable; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = false) | 11 | @EqualsAndHashCode(callSuper = false) |
12 | -@TableName(ModelConstants.Table.TENANT_ROLE_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_TENANT_ROLE_TABLE_NAME) |
13 | public class TenantRole implements Serializable { | 13 | public class TenantRole implements Serializable { |
14 | 14 | ||
15 | private static final long serialVersionUID = 7332631758506821892L; | 15 | private static final long serialVersionUID = 7332631758506821892L; |
1 | +package org.thingsboard.server.dao.yunteng.entities; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
4 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
5 | +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
6 | +import com.fasterxml.jackson.databind.JsonNode; | ||
7 | +import lombok.Data; | ||
8 | +import lombok.EqualsAndHashCode; | ||
9 | +import org.apache.ibatis.type.EnumTypeHandler; | ||
10 | +import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
11 | +import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | ||
12 | + | ||
13 | +@Data | ||
14 | +@EqualsAndHashCode(callSuper = true) | ||
15 | +@TableName(value = ModelConstants.Table.TK_THING_MODEL, autoResultMap = true) | ||
16 | +public class ThingsModelEntity extends TenantBaseEntity { | ||
17 | + | ||
18 | + private static final long serialVersionUID = 2265006809255944302L; | ||
19 | + | ||
20 | + @TableField(typeHandler = EnumTypeHandler.class) | ||
21 | + private FunctionTypeEnum functionType; | ||
22 | + | ||
23 | + private String functionName; | ||
24 | + private String identifier; | ||
25 | + | ||
26 | + @TableField(typeHandler = JacksonTypeHandler.class) | ||
27 | + private JsonNode functionJson; | ||
28 | + | ||
29 | + private String deviceProfileId; | ||
30 | + private String remark; | ||
31 | +} |
@@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | @@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
6 | import lombok.Data; | 6 | import lombok.Data; |
7 | import lombok.EqualsAndHashCode; | 7 | import lombok.EqualsAndHashCode; |
8 | import org.apache.ibatis.type.EnumTypeHandler; | 8 | import org.apache.ibatis.type.EnumTypeHandler; |
9 | -import org.thingsboard.server.common.data.device.profile.AlarmCondition; | ||
10 | import org.thingsboard.server.common.data.device.profile.AlarmRule; | 9 | import org.thingsboard.server.common.data.device.profile.AlarmRule; |
11 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 10 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
12 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; | 11 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; |
13 | import org.thingsboard.server.common.data.yunteng.enums.TriggerTypeEnum; | 12 | import org.thingsboard.server.common.data.yunteng.enums.TriggerTypeEnum; |
14 | import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; | 13 | import org.thingsboard.server.dao.yunteng.mapper.ListStringTypeHandler; |
15 | 14 | ||
16 | -import java.util.Arrays; | ||
17 | import java.util.List; | 15 | import java.util.List; |
18 | 16 | ||
19 | /** | 17 | /** |
20 | * @Description 触发器实体表 @Author cxy @Date 2021/11/24 17:06 | 18 | * @Description 触发器实体表 @Author cxy @Date 2021/11/24 17:06 |
21 | */ | 19 | */ |
22 | @Data | 20 | @Data |
23 | -@TableName(value = ModelConstants.Table.IOTFS_TRIGGER_TABLE_NAME, autoResultMap = true) | 21 | +@TableName(value = ModelConstants.Table.TK_TRIGGER_TABLE_NAME, autoResultMap = true) |
24 | @EqualsAndHashCode(callSuper = true) | 22 | @EqualsAndHashCode(callSuper = true) |
25 | public class Trigger extends TenantBaseEntity { | 23 | public class Trigger extends TenantBaseEntity { |
26 | 24 |
@@ -12,7 +12,7 @@ import java.time.LocalDateTime; | @@ -12,7 +12,7 @@ import java.time.LocalDateTime; | ||
12 | /** user是所有可登录系统用户 */ | 12 | /** user是所有可登录系统用户 */ |
13 | @Data | 13 | @Data |
14 | @EqualsAndHashCode(callSuper = false) | 14 | @EqualsAndHashCode(callSuper = false) |
15 | -@TableName(ModelConstants.Table.USER_TABLE_NAME) | 15 | +@TableName(ModelConstants.Table.SYS_USER_TABLE_NAME) |
16 | public class User extends TenantBaseEntity { | 16 | public class User extends TenantBaseEntity { |
17 | private static final long serialVersionUID = 834982016421849497L; | 17 | private static final long serialVersionUID = 834982016421849497L; |
18 | private String username; | 18 | private String username; |
@@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -9,7 +9,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
9 | @Data | 9 | @Data |
10 | @AllArgsConstructor | 10 | @AllArgsConstructor |
11 | @NoArgsConstructor | 11 | @NoArgsConstructor |
12 | -@TableName(ModelConstants.Table.IOTFS_USER_ORGANIZATION_MAPPING_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.TK_USER_ORGANIZATION_MAPPING_TABLE_NAME) |
13 | public class UserOrganizationMapping { | 13 | public class UserOrganizationMapping { |
14 | private String userId; | 14 | private String userId; |
15 | private String organizationId; | 15 | private String organizationId; |
@@ -9,7 +9,7 @@ import java.io.Serializable; | @@ -9,7 +9,7 @@ import java.io.Serializable; | ||
9 | 9 | ||
10 | @Data | 10 | @Data |
11 | @EqualsAndHashCode(callSuper = false) | 11 | @EqualsAndHashCode(callSuper = false) |
12 | -@TableName(ModelConstants.Table.USER_ROLE_TABLE_NAME) | 12 | +@TableName(ModelConstants.Table.SYS_USER_ROLE_TABLE_NAME) |
13 | public class UserRole implements Serializable { | 13 | public class UserRole implements Serializable { |
14 | 14 | ||
15 | private static final long serialVersionUID = -1018514294019250455L; | 15 | private static final long serialVersionUID = -1018514294019250455L; |
@@ -12,10 +12,10 @@ import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | @@ -12,10 +12,10 @@ import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | ||
12 | 12 | ||
13 | @Data | 13 | @Data |
14 | @EqualsAndHashCode(callSuper = true) | 14 | @EqualsAndHashCode(callSuper = true) |
15 | -@TableName(value = ModelConstants.Table.IOTFS_DEVICE_TABLE_NAME, autoResultMap = true) | 15 | +@TableName(value = ModelConstants.Table.TK_DEVICE_TABLE_NAME, autoResultMap = true) |
16 | public class YtDevice extends TenantBaseEntity { | 16 | public class YtDevice extends TenantBaseEntity { |
17 | private String name; | 17 | private String name; |
18 | - | 18 | + private String alias; |
19 | @TableField(typeHandler = JacksonTypeHandler.class) | 19 | @TableField(typeHandler = JacksonTypeHandler.class) |
20 | private JsonNode deviceInfo; | 20 | private JsonNode deviceInfo; |
21 | private String profileId; | 21 | private String profileId; |
@@ -2,8 +2,6 @@ package org.thingsboard.server.dao.yunteng.entities; | @@ -2,8 +2,6 @@ package org.thingsboard.server.dao.yunteng.entities; | ||
2 | 2 | ||
3 | import com.baomidou.mybatisplus.annotation.TableField; | 3 | import com.baomidou.mybatisplus.annotation.TableField; |
4 | import com.baomidou.mybatisplus.annotation.TableName; | 4 | import com.baomidou.mybatisplus.annotation.TableName; |
5 | -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
6 | -import com.fasterxml.jackson.databind.JsonNode; | ||
7 | import lombok.Data; | 5 | import lombok.Data; |
8 | import lombok.EqualsAndHashCode; | 6 | import lombok.EqualsAndHashCode; |
9 | import org.apache.ibatis.type.EnumTypeHandler; | 7 | import org.apache.ibatis.type.EnumTypeHandler; |
@@ -12,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | @@ -12,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | ||
12 | 10 | ||
13 | @Data | 11 | @Data |
14 | @EqualsAndHashCode(callSuper = true) | 12 | @EqualsAndHashCode(callSuper = true) |
15 | -@TableName(value = ModelConstants.Table.IOTFS_DEVICE_PROFILE_TABLE_NAME, autoResultMap = true) | 13 | +@TableName(value = ModelConstants.Table.TK_DEVICE_PROFILE_TABLE_NAME, autoResultMap = true) |
16 | public class YtDeviceProfileEntity extends TenantBaseEntity { | 14 | public class YtDeviceProfileEntity extends TenantBaseEntity { |
17 | private String name; | 15 | private String name; |
18 | 16 |
@@ -2,17 +2,14 @@ package org.thingsboard.server.dao.yunteng.entities; | @@ -2,17 +2,14 @@ package org.thingsboard.server.dao.yunteng.entities; | ||
2 | 2 | ||
3 | import com.baomidou.mybatisplus.annotation.TableField; | 3 | import com.baomidou.mybatisplus.annotation.TableField; |
4 | import com.baomidou.mybatisplus.annotation.TableName; | 4 | import com.baomidou.mybatisplus.annotation.TableName; |
5 | -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
6 | -import com.fasterxml.jackson.databind.JsonNode; | ||
7 | import lombok.Data; | 5 | import lombok.Data; |
8 | import lombok.EqualsAndHashCode; | 6 | import lombok.EqualsAndHashCode; |
9 | import org.apache.ibatis.type.EnumTypeHandler; | 7 | import org.apache.ibatis.type.EnumTypeHandler; |
10 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 8 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
11 | -import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | ||
12 | import org.thingsboard.server.common.data.yunteng.enums.TcpDataTypeEnum; | 9 | import org.thingsboard.server.common.data.yunteng.enums.TcpDataTypeEnum; |
13 | 10 | ||
14 | @Data | 11 | @Data |
15 | -@TableName(value = ModelConstants.Table.IOTFS_DEVICE_SCRIPT_TABLE_NAME, autoResultMap = true) | 12 | +@TableName(value = ModelConstants.Table.TK_DEVICE_SCRIPT_TABLE_NAME, autoResultMap = true) |
16 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
17 | public class YtDeviceScriptEntity extends TenantBaseEntity { | 14 | public class YtDeviceScriptEntity extends TenantBaseEntity { |
18 | private String name; | 15 | private String name; |
@@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
10 | */ | 10 | */ |
11 | @Data | 11 | @Data |
12 | @EqualsAndHashCode(callSuper = true) | 12 | @EqualsAndHashCode(callSuper = true) |
13 | -@TableName(ModelConstants.Table.IOTFS_OPINION_TABLE_NAME) | 13 | +@TableName(ModelConstants.Table.TK_OPINION_TABLE_NAME) |
14 | public class YtOpinionEntity extends TenantBaseEntity { | 14 | public class YtOpinionEntity extends TenantBaseEntity { |
15 | 15 | ||
16 | private static final long serialVersionUID = 7339240901373153647L; | 16 | private static final long serialVersionUID = 7339240901373153647L; |
1 | package org.thingsboard.server.dao.yunteng.entities; | 1 | package org.thingsboard.server.dao.yunteng.entities; |
2 | 2 | ||
3 | import com.baomidou.mybatisplus.annotation.TableName; | 3 | import com.baomidou.mybatisplus.annotation.TableName; |
4 | -import io.swagger.annotations.ApiModelProperty; | ||
5 | import lombok.Data; | 4 | import lombok.Data; |
6 | import lombok.EqualsAndHashCode; | 5 | import lombok.EqualsAndHashCode; |
7 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
8 | import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum; | 7 | import org.thingsboard.server.common.data.yunteng.enums.ThirdPlatformEnum; |
9 | 8 | ||
10 | -import javax.validation.constraints.NotEmpty; | ||
11 | - | ||
12 | /** | 9 | /** |
13 | * @author Administrator | 10 | * @author Administrator |
14 | */ | 11 | */ |
15 | @Data | 12 | @Data |
16 | @EqualsAndHashCode(callSuper = true) | 13 | @EqualsAndHashCode(callSuper = true) |
17 | -@TableName(ModelConstants.Table.IOTFS_THIRD_USER_TABLE_NAME) | 14 | +@TableName(ModelConstants.Table.TK_THIRD_USER_TABLE_NAME) |
18 | public class YtThirdUserEntity extends BaseEntity { | 15 | public class YtThirdUserEntity extends BaseEntity { |
19 | 16 | ||
20 | private ThirdPlatformEnum platformName; | 17 | private ThirdPlatformEnum platformName; |
1 | package org.thingsboard.server.dao.yunteng.entities; | 1 | package org.thingsboard.server.dao.yunteng.entities; |
2 | 2 | ||
3 | import com.baomidou.mybatisplus.annotation.TableName; | 3 | import com.baomidou.mybatisplus.annotation.TableName; |
4 | -import io.swagger.annotations.ApiModelProperty; | ||
5 | import lombok.Data; | 4 | import lombok.Data; |
6 | import lombok.EqualsAndHashCode; | 5 | import lombok.EqualsAndHashCode; |
7 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 6 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
8 | 7 | ||
9 | -import javax.validation.constraints.NotEmpty; | ||
10 | - | ||
11 | /** | 8 | /** |
12 | * @author Administrator | 9 | * @author Administrator |
13 | */ | 10 | */ |
14 | @Data | 11 | @Data |
15 | @EqualsAndHashCode(callSuper = true) | 12 | @EqualsAndHashCode(callSuper = true) |
16 | -@TableName(ModelConstants.Table.IOTFS_VIDEO_STREAM_TABLE_NAME) | 13 | +@TableName(ModelConstants.Table.TK_VIDEO_STREAM_TABLE_NAME) |
17 | public class YtVideoEntity extends TenantBaseEntity { | 14 | public class YtVideoEntity extends TenantBaseEntity { |
18 | 15 | ||
19 | 16 |
@@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | @@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | ||
10 | */ | 10 | */ |
11 | @Data | 11 | @Data |
12 | @EqualsAndHashCode(callSuper = true) | 12 | @EqualsAndHashCode(callSuper = true) |
13 | -@TableName(ModelConstants.Table.IOTFS_VIDEO_PLATFORM_TABLE_NAME) | 13 | +@TableName(ModelConstants.Table.TK_VIDEO_PLATFORM_TABLE_NAME) |
14 | public class YtVideoPlatformEntity extends TenantBaseEntity { | 14 | public class YtVideoPlatformEntity extends TenantBaseEntity { |
15 | 15 | ||
16 | 16 |
1 | +package org.thingsboard.server.dao.yunteng.impl; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
5 | +import com.fasterxml.jackson.databind.JsonNode; | ||
6 | +import com.fasterxml.jackson.databind.node.ObjectNode; | ||
7 | +import lombok.RequiredArgsConstructor; | ||
8 | +import org.apache.commons.lang3.StringUtils; | ||
9 | +import org.springframework.stereotype.Service; | ||
10 | +import org.springframework.transaction.annotation.Transactional; | ||
11 | +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | ||
12 | +import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; | ||
13 | +import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | ||
14 | +import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; | ||
15 | +import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; | ||
16 | +import org.thingsboard.server.common.data.yunteng.dto.ThingsModelDTO; | ||
17 | +import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | ||
18 | +import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | ||
19 | +import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; | ||
20 | +import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | ||
21 | +import org.thingsboard.server.dao.yunteng.entities.ThingsModelEntity; | ||
22 | +import org.thingsboard.server.dao.yunteng.mapper.ThingsModelMapper; | ||
23 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | ||
24 | +import org.thingsboard.server.dao.yunteng.service.ThingsModelService; | ||
25 | +import org.thingsboard.server.dao.yunteng.service.YtDeviceProfileService; | ||
26 | + | ||
27 | +import java.util.*; | ||
28 | +import java.util.stream.Collectors; | ||
29 | + | ||
30 | +@Service | ||
31 | +@RequiredArgsConstructor | ||
32 | +public class ThingsModelServiceImpl | ||
33 | + extends AbstractBaseService<ThingsModelMapper, ThingsModelEntity> | ||
34 | + implements ThingsModelService { | ||
35 | + private final YtDeviceProfileService ytDeviceProfileService; | ||
36 | + | ||
37 | + @Override | ||
38 | + public YtPageData<ThingsModelDTO> page(Map<String, Object> queryMap, String tenantId) { | ||
39 | + String nameOrIdentifier = | ||
40 | + null != queryMap.get("nameOrIdentifier") ? (String) queryMap.get("nameOrIdentifier") : null; | ||
41 | + IPage<ThingsModelEntity> iPage = | ||
42 | + baseMapper.selectPage( | ||
43 | + getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME, false), | ||
44 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
45 | + .eq(ThingsModelEntity::getTenantId, tenantId) | ||
46 | + .like( | ||
47 | + StringUtils.isNotEmpty(nameOrIdentifier), | ||
48 | + ThingsModelEntity::getFunctionName, | ||
49 | + nameOrIdentifier) | ||
50 | + .or() | ||
51 | + .like( | ||
52 | + StringUtils.isNotEmpty(nameOrIdentifier), | ||
53 | + ThingsModelEntity::getIdentifier, | ||
54 | + nameOrIdentifier)); | ||
55 | + return getPageData(iPage, ThingsModelDTO.class); | ||
56 | + } | ||
57 | + | ||
58 | + @Override | ||
59 | + @Transactional | ||
60 | + public ThingsModelDTO saveOrUpdate(ThingsModelDTO thingsModelDTO) { | ||
61 | + String thingsModelId = thingsModelDTO.getId(); | ||
62 | + boolean isAdd = StringUtils.isEmpty(thingsModelId); | ||
63 | + if (checkIdentifier( | ||
64 | + thingsModelDTO.getDeviceProfileId(), | ||
65 | + thingsModelDTO.getIdentifier(), | ||
66 | + isAdd, | ||
67 | + thingsModelId)) { | ||
68 | + throw new YtDataValidationException(ErrorMessage.DUPLICATE_IDENTIFIERS_EXIST.getMessage()); | ||
69 | + } | ||
70 | + ThingsModelEntity entity = thingsModelDTO.getEntity(ThingsModelEntity.class); | ||
71 | + if (isAdd) { | ||
72 | + baseMapper.insert(entity); | ||
73 | + thingsModelDTO.setId(entity.getId()); | ||
74 | + } else { | ||
75 | + ThingsModelEntity result = | ||
76 | + baseMapper.selectOne( | ||
77 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
78 | + .eq(ThingsModelEntity::getTenantId, thingsModelDTO.getTenantId()) | ||
79 | + .eq(ThingsModelEntity::getId, thingsModelDTO.getId())); | ||
80 | + if (null == result) { | ||
81 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
82 | + } | ||
83 | + baseMapper.updateById(entity); | ||
84 | + } | ||
85 | + return thingsModelDTO; | ||
86 | + } | ||
87 | + | ||
88 | + @Override | ||
89 | + public ThingsModelDTO get(String id, String tenantId) { | ||
90 | + ThingsModelEntity entity = | ||
91 | + baseMapper.selectOne( | ||
92 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
93 | + .eq(ThingsModelEntity::getTenantId, tenantId) | ||
94 | + .eq(ThingsModelEntity::getId, id)); | ||
95 | + return Optional.ofNullable(entity).map(obj -> obj.getDTO(ThingsModelDTO.class)).orElse(null); | ||
96 | + } | ||
97 | + | ||
98 | + @Override | ||
99 | + @Transactional | ||
100 | + public boolean delete(DeleteDTO dto) { | ||
101 | + int result = | ||
102 | + baseMapper.delete( | ||
103 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
104 | + .eq(ThingsModelEntity::getTenantId, dto.getTenantId()) | ||
105 | + .in(ThingsModelEntity::getId, dto.getIds())); | ||
106 | + if (result > FastIotConstants.MagicNumber.ZERO && result != dto.getIds().size()) { | ||
107 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
108 | + } | ||
109 | + return result > FastIotConstants.MagicNumber.ZERO; | ||
110 | + } | ||
111 | + | ||
112 | + @Override | ||
113 | + @Transactional | ||
114 | + public boolean deleteByDeviceProfileId(String tenantId, String deviceProfileId) { | ||
115 | + int result = | ||
116 | + baseMapper.delete( | ||
117 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
118 | + .eq(ThingsModelEntity::getTenantId, tenantId) | ||
119 | + .eq(ThingsModelEntity::getDeviceProfileId, deviceProfileId)); | ||
120 | + if (result == FastIotConstants.MagicNumber.ZERO) { | ||
121 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
122 | + } | ||
123 | + return true; | ||
124 | + } | ||
125 | + | ||
126 | + @Override | ||
127 | + public List<ThingsModelDTO> selectByDeviceProfileId( | ||
128 | + FunctionTypeEnum typeEnum, String tenantId, String deviceProfileId) { | ||
129 | + List<ThingsModelEntity> entityList = | ||
130 | + baseMapper.selectList( | ||
131 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
132 | + .eq(ThingsModelEntity::getTenantId, tenantId) | ||
133 | + .eq(ThingsModelEntity::getDeviceProfileId, deviceProfileId) | ||
134 | + .eq(ThingsModelEntity::getFunctionType, typeEnum)); | ||
135 | + if (entityList.isEmpty()) { | ||
136 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
137 | + } | ||
138 | + return entityList.stream() | ||
139 | + .map(obj -> obj.getDTO(ThingsModelDTO.class)) | ||
140 | + .collect(Collectors.toList()); | ||
141 | + } | ||
142 | + | ||
143 | + @Override | ||
144 | + public JsonNode getTingsModelJson( | ||
145 | + FunctionTypeEnum typeEnum, String tenantId, String deviceProfileId) { | ||
146 | + JsonNode jsonNode = null; | ||
147 | + DeviceProfileDTO deviceProfileDTO = | ||
148 | + ytDeviceProfileService.findDeviceProfileById(tenantId, deviceProfileId); | ||
149 | + | ||
150 | + List<ThingsModelDTO> thingsModelDTOS = | ||
151 | + selectByDeviceProfileId(typeEnum, tenantId, deviceProfileId); | ||
152 | + if (deviceProfileDTO.getDeviceType().equals(DeviceTypeEnum.SENSOR)) { | ||
153 | + if(typeEnum.equals(FunctionTypeEnum.properties)){ | ||
154 | + jsonNode = getSensorTSL(thingsModelDTOS); | ||
155 | + }else if(typeEnum.equals(FunctionTypeEnum.services)){ | ||
156 | + | ||
157 | + } | ||
158 | + } | ||
159 | + return jsonNode; | ||
160 | + } | ||
161 | + | ||
162 | + /** | ||
163 | + * 获取网关子设备的物模型TSL | ||
164 | + * | ||
165 | + * @param thingsModelDTOS | ||
166 | + * @return | ||
167 | + */ | ||
168 | + private JsonNode getSensorTSL(List<ThingsModelDTO> thingsModelDTOS) { | ||
169 | + Map<String, List<ObjectNode>> attributeMap = new HashMap<>(); | ||
170 | + List<ObjectNode> list = new ArrayList<>(); | ||
171 | + for (ThingsModelDTO model : thingsModelDTOS) { | ||
172 | + ObjectNode objectNode = JacksonUtil.newObjectNode(); | ||
173 | + objectNode.put(model.getIdentifier(), "value"); | ||
174 | + list.add(objectNode); | ||
175 | + } | ||
176 | + attributeMap.put("网关子设备名称", list); | ||
177 | + return JacksonUtil.convertValue(attributeMap, JsonNode.class); | ||
178 | + } | ||
179 | + | ||
180 | + private boolean checkIdentifier( | ||
181 | + String deviceProfileId, String identifier, boolean isAdd, String thingsModelId) { | ||
182 | + ThingsModelEntity entity = | ||
183 | + baseMapper.selectOne( | ||
184 | + new LambdaQueryWrapper<ThingsModelEntity>() | ||
185 | + .eq(ThingsModelEntity::getDeviceProfileId, deviceProfileId) | ||
186 | + .eq(ThingsModelEntity::getIdentifier, identifier)); | ||
187 | + return Optional.ofNullable(entity) | ||
188 | + .map( | ||
189 | + obj -> { | ||
190 | + boolean result = false; | ||
191 | + if (isAdd) { | ||
192 | + result = true; | ||
193 | + } else if (!entity.getId().equals(thingsModelId)) { | ||
194 | + result = true; | ||
195 | + } | ||
196 | + return result; | ||
197 | + }) | ||
198 | + .orElse(false); | ||
199 | + } | ||
200 | +} |
@@ -46,7 +46,7 @@ public class YtDeviceProfileServiceImpl | @@ -46,7 +46,7 @@ public class YtDeviceProfileServiceImpl | ||
46 | private final YtJpaDeviceProfileDao deviceProfileDao; | 46 | private final YtJpaDeviceProfileDao deviceProfileDao; |
47 | 47 | ||
48 | @Override | 48 | @Override |
49 | - public boolean validateFormdata(DeviceProfileDTO ytDeviceProfileDTO) { | 49 | + public boolean validateFormData(DeviceProfileDTO ytDeviceProfileDTO) { |
50 | TenantId tenantId = TenantId.fromUUID(UUID.fromString(ytDeviceProfileDTO.getTenantId())); | 50 | TenantId tenantId = TenantId.fromUUID(UUID.fromString(ytDeviceProfileDTO.getTenantId())); |
51 | if (StringUtils.isBlank(ytDeviceProfileDTO.getId())) { | 51 | if (StringUtils.isBlank(ytDeviceProfileDTO.getId())) { |
52 | // 判断数据库是否已存在名字相同的设备配置 | 52 | // 判断数据库是否已存在名字相同的设备配置 |
@@ -77,6 +77,17 @@ public class YtDeviceProfileServiceImpl | @@ -77,6 +77,17 @@ public class YtDeviceProfileServiceImpl | ||
77 | } | 77 | } |
78 | 78 | ||
79 | @Override | 79 | @Override |
80 | + public DeviceProfileDTO findByTbDeviceProfileId(String tenantId, String tbProfileId) { | ||
81 | + YtDeviceProfileEntity entity = | ||
82 | + baseMapper.selectOne( | ||
83 | + new LambdaQueryWrapper<YtDeviceProfileEntity>() | ||
84 | + .eq(YtDeviceProfileEntity::getTenantId, tenantId) | ||
85 | + .eq(YtDeviceProfileEntity::getTbProfileId, tbProfileId)); | ||
86 | + | ||
87 | + return Optional.ofNullable(entity).map(obj -> obj.getDTO(DeviceProfileDTO.class)).orElse(null); | ||
88 | + } | ||
89 | + | ||
90 | + @Override | ||
80 | @Transactional | 91 | @Transactional |
81 | public DeviceProfileDTO insertOrUpdate(DeviceProfileDTO deviceDTO) { | 92 | public DeviceProfileDTO insertOrUpdate(DeviceProfileDTO deviceDTO) { |
82 | if (StringUtils.isBlank(deviceDTO.getId())) { | 93 | if (StringUtils.isBlank(deviceDTO.getId())) { |
@@ -169,7 +180,7 @@ public class YtDeviceProfileServiceImpl | @@ -169,7 +180,7 @@ public class YtDeviceProfileServiceImpl | ||
169 | 180 | ||
170 | @Override | 181 | @Override |
171 | public List<DeviceProfileDTO> findDeviceProfile(String tenantId, String scriptId) { | 182 | public List<DeviceProfileDTO> findDeviceProfile(String tenantId, String scriptId) { |
172 | - List<DeviceProfileDTO> results = baseMapper.profileByScriptId(tenantId,scriptId); | 183 | + List<DeviceProfileDTO> results = baseMapper.profileByScriptId(tenantId, scriptId); |
173 | return results; | 184 | return results; |
174 | } | 185 | } |
175 | } | 186 | } |
@@ -3,6 +3,7 @@ package org.thingsboard.server.dao.yunteng.impl; | @@ -3,6 +3,7 @@ package org.thingsboard.server.dao.yunteng.impl; | ||
3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
4 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 4 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
5 | import com.baomidou.mybatisplus.core.metadata.IPage; | 5 | import com.baomidou.mybatisplus.core.metadata.IPage; |
6 | +import com.fasterxml.jackson.databind.JsonNode; | ||
6 | import lombok.RequiredArgsConstructor; | 7 | import lombok.RequiredArgsConstructor; |
7 | import lombok.extern.slf4j.Slf4j; | 8 | import lombok.extern.slf4j.Slf4j; |
8 | import org.apache.commons.lang3.StringUtils; | 9 | import org.apache.commons.lang3.StringUtils; |
@@ -18,11 +19,9 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | @@ -18,11 +19,9 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | ||
18 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; | 19 | import org.thingsboard.server.common.data.yunteng.constant.ModelConstants; |
19 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; | 20 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
20 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 21 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
21 | -import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | ||
22 | -import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; | ||
23 | -import org.thingsboard.server.common.data.yunteng.dto.RelationDeviceDTO; | ||
24 | -import org.thingsboard.server.common.data.yunteng.dto.SelectItemDTO; | 22 | +import org.thingsboard.server.common.data.yunteng.dto.*; |
25 | import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | 23 | import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; |
24 | +import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum; | ||
26 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; | 25 | import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; |
27 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 26 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
28 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | 27 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
@@ -30,6 +29,7 @@ import org.thingsboard.server.dao.device.DeviceProfileDao; | @@ -30,6 +29,7 @@ import org.thingsboard.server.dao.device.DeviceProfileDao; | ||
30 | import org.thingsboard.server.dao.yunteng.entities.*; | 29 | import org.thingsboard.server.dao.yunteng.entities.*; |
31 | import org.thingsboard.server.dao.yunteng.mapper.*; | 30 | import org.thingsboard.server.dao.yunteng.mapper.*; |
32 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | 31 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
32 | +import org.thingsboard.server.dao.yunteng.service.ThingsModelService; | ||
33 | import org.thingsboard.server.dao.yunteng.service.YtDeviceService; | 33 | import org.thingsboard.server.dao.yunteng.service.YtDeviceService; |
34 | 34 | ||
35 | import java.time.LocalDateTime; | 35 | import java.time.LocalDateTime; |
@@ -49,6 +49,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -49,6 +49,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
49 | private final TriggerMapper triggerMapper; | 49 | private final TriggerMapper triggerMapper; |
50 | private final DoConditionMapper conditionMapper; | 50 | private final DoConditionMapper conditionMapper; |
51 | private final DoActionMapper actionMapper; | 51 | private final DoActionMapper actionMapper; |
52 | + private final ThingsModelService thingsModelService; | ||
52 | 53 | ||
53 | @Override | 54 | @Override |
54 | @Transactional | 55 | @Transactional |
@@ -88,9 +89,9 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -88,9 +89,9 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
88 | } | 89 | } |
89 | 90 | ||
90 | @Override | 91 | @Override |
91 | - public void validateFormdata(String currentTenantId, DeviceDTO deviceDTO) { | 92 | + public void validateFormData(String currentTenantId, DeviceDTO deviceDTO) { |
92 | boolean insert = StringUtils.isBlank(deviceDTO.getId()); | 93 | boolean insert = StringUtils.isBlank(deviceDTO.getId()); |
93 | - String deviceTenantId = deviceDTO.getTenantId(); | 94 | + String deviceTenantId; |
94 | if (StringUtils.isBlank(deviceDTO.getName())) { | 95 | if (StringUtils.isBlank(deviceDTO.getName())) { |
95 | throw new YtDataValidationException("设备名称不能为空"); | 96 | throw new YtDataValidationException("设备名称不能为空"); |
96 | } | 97 | } |
@@ -100,7 +101,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -100,7 +101,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
100 | } | 101 | } |
101 | 102 | ||
102 | // 验证设备名称是否已经存在 如果此处直接使用deviceDTO 将有误 | 103 | // 验证设备名称是否已经存在 如果此处直接使用deviceDTO 将有误 |
103 | - if (deviceNameUsed(currentTenantId, deviceDTO.getName(),deviceDTO.getId())) { | 104 | + if (deviceNameUsed(currentTenantId, deviceDTO.getName(), deviceDTO.getId())) { |
104 | throw new YtDataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); | 105 | throw new YtDataValidationException(ErrorMessage.NAME_ALREADY_EXISTS.getMessage()); |
105 | } | 106 | } |
106 | if (insert) { | 107 | if (insert) { |
@@ -141,7 +142,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -141,7 +142,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
141 | * @return | 142 | * @return |
142 | */ | 143 | */ |
143 | private boolean sceneNotUsed(String tenantId, String tbDeviceId, String organizationId) { | 144 | private boolean sceneNotUsed(String tenantId, String tbDeviceId, String organizationId) { |
144 | - boolean result = true; | 145 | + boolean result = false; |
145 | /** 激活的场景联动使用了设备,例如:触发器、自行条件、动作等。 */ | 146 | /** 激活的场景联动使用了设备,例如:触发器、自行条件、动作等。 */ |
146 | List<SceneLinkage> scenes = | 147 | List<SceneLinkage> scenes = |
147 | sceneLinkageMapper.selectList( | 148 | sceneLinkageMapper.selectList( |
@@ -153,55 +154,56 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -153,55 +154,56 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
153 | SceneLinkage::getOrganizationId, | 154 | SceneLinkage::getOrganizationId, |
154 | organizationId)); | 155 | organizationId)); |
155 | if (scenes == null || scenes.isEmpty()) { | 156 | if (scenes == null || scenes.isEmpty()) { |
156 | - return true; | ||
157 | - } | ||
158 | - Set<String> sceneNames = new HashSet<>(); | ||
159 | - for (SceneLinkage scene : scenes) { | ||
160 | - List<Trigger> triggers = | ||
161 | - triggerMapper.selectList( | ||
162 | - new QueryWrapper<Trigger>() | ||
163 | - .lambda() | ||
164 | - .eq(Trigger::getSceneLinkageId, scene.getId()) | ||
165 | - .eq( | ||
166 | - scene.getStatus() == FastIotConstants.StateValue.DISABLE, | ||
167 | - Trigger::getTriggerType, | ||
168 | - ScopeEnum.PART) | ||
169 | - .like(Trigger::getEntityId, tbDeviceId)); | ||
170 | - if (triggers != null && triggers.size() > 0) { | ||
171 | - sceneNames.add(scene.getName()); | ||
172 | - } | ||
173 | - List<DoCondition> conditions = | ||
174 | - conditionMapper.selectList( | ||
175 | - new QueryWrapper<DoCondition>() | ||
176 | - .lambda() | ||
177 | - .eq(DoCondition::getSceneLinkageId, scene.getId()) | ||
178 | - .eq( | ||
179 | - scene.getStatus() == FastIotConstants.StateValue.DISABLE, | ||
180 | - DoCondition::getEntityType, | ||
181 | - ScopeEnum.PART) | ||
182 | - .like(DoCondition::getEntityId, tbDeviceId)); | ||
183 | - if (conditions != null && conditions.size() > 0) { | ||
184 | - sceneNames.add(scene.getName()); | 157 | + result = true; |
158 | + } else { | ||
159 | + | ||
160 | + Set<String> sceneNames = new HashSet<>(); | ||
161 | + for (SceneLinkage scene : scenes) { | ||
162 | + List<Trigger> triggers = | ||
163 | + triggerMapper.selectList( | ||
164 | + new QueryWrapper<Trigger>() | ||
165 | + .lambda() | ||
166 | + .eq(Trigger::getSceneLinkageId, scene.getId()) | ||
167 | + .eq( | ||
168 | + scene.getStatus() == FastIotConstants.StateValue.DISABLE, | ||
169 | + Trigger::getTriggerType, | ||
170 | + ScopeEnum.PART) | ||
171 | + .like(Trigger::getEntityId, tbDeviceId)); | ||
172 | + if (triggers != null && triggers.size() > 0) { | ||
173 | + sceneNames.add(scene.getName()); | ||
174 | + } | ||
175 | + List<DoCondition> conditions = | ||
176 | + conditionMapper.selectList( | ||
177 | + new QueryWrapper<DoCondition>() | ||
178 | + .lambda() | ||
179 | + .eq(DoCondition::getSceneLinkageId, scene.getId()) | ||
180 | + .eq( | ||
181 | + scene.getStatus() == FastIotConstants.StateValue.DISABLE, | ||
182 | + DoCondition::getEntityType, | ||
183 | + ScopeEnum.PART) | ||
184 | + .like(DoCondition::getEntityId, tbDeviceId)); | ||
185 | + if (conditions != null && conditions.size() > 0) { | ||
186 | + sceneNames.add(scene.getName()); | ||
187 | + } | ||
188 | + List<DoAction> actions = | ||
189 | + actionMapper.selectList( | ||
190 | + new QueryWrapper<DoAction>() | ||
191 | + .lambda() | ||
192 | + .eq(DoAction::getSceneLinkageId, scene.getId()) | ||
193 | + .eq( | ||
194 | + scene.getStatus() == FastIotConstants.StateValue.DISABLE, | ||
195 | + DoAction::getEntityType, | ||
196 | + ScopeEnum.PART) | ||
197 | + .like(DoAction::getDeviceId, tbDeviceId)); | ||
198 | + if (actions != null && actions.size() > 0) { | ||
199 | + sceneNames.add(scene.getName()); | ||
200 | + } | ||
185 | } | 201 | } |
186 | - List<DoAction> actions = | ||
187 | - actionMapper.selectList( | ||
188 | - new QueryWrapper<DoAction>() | ||
189 | - .lambda() | ||
190 | - .eq(DoAction::getSceneLinkageId, scene.getId()) | ||
191 | - .eq( | ||
192 | - scene.getStatus() == FastIotConstants.StateValue.DISABLE, | ||
193 | - DoAction::getEntityType, | ||
194 | - ScopeEnum.PART) | ||
195 | - .like(DoAction::getDeviceId, tbDeviceId)); | ||
196 | - if (actions != null && actions.size() > 0) { | ||
197 | - sceneNames.add(scene.getName()); | 202 | + if (sceneNames.size() > 0) { |
203 | + throw new YtDataValidationException( | ||
204 | + String.format(ErrorMessage.DEVICE_USED_SCENE_REACT.getMessage(), sceneNames)); | ||
198 | } | 205 | } |
199 | } | 206 | } |
200 | - if (sceneNames.size() > 0) { | ||
201 | - throw new YtDataValidationException( | ||
202 | - String.format(ErrorMessage.DEVICE_USED_SCENE_REACT.getMessage(), sceneNames)); | ||
203 | - } | ||
204 | - | ||
205 | return result; | 207 | return result; |
206 | } | 208 | } |
207 | 209 | ||
@@ -243,16 +245,16 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -243,16 +245,16 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
243 | 245 | ||
244 | @Override | 246 | @Override |
245 | public List<DeviceDTO> findDevicesByDeviceTypeAndOrganizationId( | 247 | public List<DeviceDTO> findDevicesByDeviceTypeAndOrganizationId( |
246 | - DeviceTypeEnum deviceType, String tenantId, String organizationId,String deviceLabel) { | 248 | + DeviceTypeEnum deviceType, String tenantId, String organizationId, String deviceLabel) { |
247 | List<String> orgIds = organizationAllIds(tenantId, organizationId); | 249 | List<String> orgIds = organizationAllIds(tenantId, organizationId); |
248 | - if(orgIds.isEmpty()){ | 250 | + if (orgIds.isEmpty()) { |
249 | throw new YtDataValidationException(ErrorMessage.ORGANIZATION_NOT_EXTIED.getMessage()); | 251 | throw new YtDataValidationException(ErrorMessage.ORGANIZATION_NOT_EXTIED.getMessage()); |
250 | } | 252 | } |
251 | return ReflectUtils.sourceToTarget( | 253 | return ReflectUtils.sourceToTarget( |
252 | baseMapper.selectList( | 254 | baseMapper.selectList( |
253 | new LambdaQueryWrapper<YtDevice>() | 255 | new LambdaQueryWrapper<YtDevice>() |
254 | - .eq(deviceType != null,YtDevice::getDeviceType, deviceType) | ||
255 | - .eq(deviceLabel != null,YtDevice::getLabel, deviceLabel) | 256 | + .eq(deviceType != null, YtDevice::getDeviceType, deviceType) |
257 | + .eq(deviceLabel != null, YtDevice::getLabel, deviceLabel) | ||
256 | .in(YtDevice::getOrganizationId, orgIds)), | 258 | .in(YtDevice::getOrganizationId, orgIds)), |
257 | DeviceDTO.class); | 259 | DeviceDTO.class); |
258 | } | 260 | } |
@@ -262,7 +264,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -262,7 +264,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
262 | if (StringUtils.isEmpty(tenantId) || StringUtils.isEmpty(deviceId)) { | 264 | if (StringUtils.isEmpty(tenantId) || StringUtils.isEmpty(deviceId)) { |
263 | throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 265 | throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
264 | } | 266 | } |
265 | - return baseMapper.selectDetail(tenantId,deviceId); | 267 | + return baseMapper.selectDetail(tenantId, deviceId); |
266 | } | 268 | } |
267 | 269 | ||
268 | @Override | 270 | @Override |
@@ -333,22 +335,18 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -333,22 +335,18 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
333 | * | 335 | * |
334 | * @param tenantId 租户ID | 336 | * @param tenantId 租户ID |
335 | * @param organizationId 组织ID | 337 | * @param organizationId 组织ID |
336 | - * @return | ||
337 | */ | 338 | */ |
338 | @NotNull | 339 | @NotNull |
339 | private List<String> organizationAllIds(String tenantId, String organizationId) { | 340 | private List<String> organizationAllIds(String tenantId, String organizationId) { |
340 | List<String> organizationIds = new ArrayList<>(); | 341 | List<String> organizationIds = new ArrayList<>(); |
341 | - if(!StringUtils.isEmpty(organizationId)){ | 342 | + if (!StringUtils.isEmpty(organizationId)) { |
342 | organizationIds.add(organizationId); | 343 | organizationIds.add(organizationId); |
343 | } | 344 | } |
344 | // 查询该组织的所有子类 | 345 | // 查询该组织的所有子类 |
345 | List<OrganizationDTO> organizationDTOS = | 346 | List<OrganizationDTO> organizationDTOS = |
346 | ytOrganizationMapper.findOrganizationTreeList(tenantId, organizationIds); | 347 | ytOrganizationMapper.findOrganizationTreeList(tenantId, organizationIds); |
347 | List<String> queryOrganizationIds = new ArrayList<>(); | 348 | List<String> queryOrganizationIds = new ArrayList<>(); |
348 | - organizationDTOS.forEach( | ||
349 | - item -> { | ||
350 | - queryOrganizationIds.add(item.getId()); | ||
351 | - }); | 349 | + organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId())); |
352 | return queryOrganizationIds; | 350 | return queryOrganizationIds; |
353 | } | 351 | } |
354 | 352 | ||
@@ -361,16 +359,16 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -361,16 +359,16 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
361 | } | 359 | } |
362 | 360 | ||
363 | @Override | 361 | @Override |
364 | - public boolean deviceNameUsed(String tenantId, String deviceName,String deviceId) { | 362 | + public boolean deviceNameUsed(String tenantId, String deviceName, String deviceId) { |
365 | List<YtDevice> deviceList = | 363 | List<YtDevice> deviceList = |
366 | - baseMapper.selectList(new QueryWrapper<YtDevice>() | 364 | + baseMapper.selectList( |
365 | + new QueryWrapper<YtDevice>() | ||
367 | .lambda() | 366 | .lambda() |
368 | .eq(true, YtDevice::getTenantId, tenantId) | 367 | .eq(true, YtDevice::getTenantId, tenantId) |
369 | - .eq(YtDevice::getName,deviceName)); | ||
370 | - for(YtDevice dev: deviceList){ | ||
371 | - if(deviceName.equals(dev.getName()) | ||
372 | - && (StringUtils.isEmpty(deviceId) || !deviceId.equals(dev.getId())) | ||
373 | - ){ | 368 | + .eq(YtDevice::getName, deviceName)); |
369 | + for (YtDevice dev : deviceList) { | ||
370 | + if (deviceName.equals(dev.getName()) | ||
371 | + && (StringUtils.isEmpty(deviceId) || !deviceId.equals(dev.getId()))) { | ||
374 | return true; | 372 | return true; |
375 | } | 373 | } |
376 | } | 374 | } |
@@ -423,17 +421,14 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -423,17 +421,14 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
423 | } | 421 | } |
424 | Set<String> usedIds = new HashSet<>(); | 422 | Set<String> usedIds = new HashSet<>(); |
425 | List<String> scenFilterIds = | 423 | List<String> scenFilterIds = |
426 | - scenes.get().stream().map(i -> i.getId()).collect(Collectors.toList()); | 424 | + scenes.get().stream().map(BaseEntity::getId).collect(Collectors.toList()); |
427 | LambdaQueryWrapper<Trigger> triggerFilter = | 425 | LambdaQueryWrapper<Trigger> triggerFilter = |
428 | new QueryWrapper<Trigger>() | 426 | new QueryWrapper<Trigger>() |
429 | .lambda() | 427 | .lambda() |
430 | .in(scenFilterIds.size() > 0, Trigger::getSceneLinkageId, scenFilterIds) | 428 | .in(scenFilterIds.size() > 0, Trigger::getSceneLinkageId, scenFilterIds) |
431 | .like(Trigger::getEntityId, tbDeviceId); | 429 | .like(Trigger::getEntityId, tbDeviceId); |
432 | List<Trigger> triggers = triggerMapper.selectList(triggerFilter); | 430 | List<Trigger> triggers = triggerMapper.selectList(triggerFilter); |
433 | - triggers.forEach( | ||
434 | - item -> { | ||
435 | - usedIds.add(item.getSceneLinkageId()); | ||
436 | - }); | 431 | + triggers.forEach(item -> usedIds.add(item.getSceneLinkageId())); |
437 | 432 | ||
438 | LambdaQueryWrapper<DoCondition> conditionFilter = | 433 | LambdaQueryWrapper<DoCondition> conditionFilter = |
439 | new QueryWrapper<DoCondition>() | 434 | new QueryWrapper<DoCondition>() |
@@ -441,10 +436,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -441,10 +436,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
441 | .in(scenFilterIds.size() > 0, DoCondition::getSceneLinkageId, scenFilterIds) | 436 | .in(scenFilterIds.size() > 0, DoCondition::getSceneLinkageId, scenFilterIds) |
442 | .eq(DoCondition::getEntityId, tbDeviceId); | 437 | .eq(DoCondition::getEntityId, tbDeviceId); |
443 | List<DoCondition> doConditions = conditionMapper.selectList(conditionFilter); | 438 | List<DoCondition> doConditions = conditionMapper.selectList(conditionFilter); |
444 | - doConditions.forEach( | ||
445 | - item -> { | ||
446 | - usedIds.add(item.getSceneLinkageId()); | ||
447 | - }); | 439 | + doConditions.forEach(item -> usedIds.add(item.getSceneLinkageId())); |
448 | 440 | ||
449 | LambdaQueryWrapper<DoAction> actionFilter = | 441 | LambdaQueryWrapper<DoAction> actionFilter = |
450 | new QueryWrapper<DoAction>() | 442 | new QueryWrapper<DoAction>() |
@@ -452,10 +444,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -452,10 +444,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
452 | .in(scenFilterIds.size() > 0, DoAction::getSceneLinkageId, scenFilterIds) | 444 | .in(scenFilterIds.size() > 0, DoAction::getSceneLinkageId, scenFilterIds) |
453 | .eq(DoAction::getDeviceId, tbDeviceId); | 445 | .eq(DoAction::getDeviceId, tbDeviceId); |
454 | List<DoAction> doActions = actionMapper.selectList(actionFilter); | 446 | List<DoAction> doActions = actionMapper.selectList(actionFilter); |
455 | - doActions.forEach( | ||
456 | - item -> { | ||
457 | - usedIds.add(item.getSceneLinkageId()); | ||
458 | - }); | 447 | + doActions.forEach(item -> usedIds.add(item.getSceneLinkageId())); |
459 | 448 | ||
460 | if (usedIds.isEmpty()) { | 449 | if (usedIds.isEmpty()) { |
461 | return ""; | 450 | return ""; |
@@ -463,7 +452,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -463,7 +452,7 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
463 | StringBuilder result = new StringBuilder(); | 452 | StringBuilder result = new StringBuilder(); |
464 | for (SceneLinkage item : scenes.get()) { | 453 | for (SceneLinkage item : scenes.get()) { |
465 | if (usedIds.contains(item.getId())) { | 454 | if (usedIds.contains(item.getId())) { |
466 | - result.append("," + item.getName()); | 455 | + result.append(",").append(item.getName()); |
467 | } | 456 | } |
468 | } | 457 | } |
469 | return String.format(ErrorMessage.DEVICE_USED_SCENE_REACT.getMessage(), result.substring(1)); | 458 | return String.format(ErrorMessage.DEVICE_USED_SCENE_REACT.getMessage(), result.substring(1)); |
@@ -473,30 +462,26 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -473,30 +462,26 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
473 | public List<SelectItemDTO> findMasterDevices( | 462 | public List<SelectItemDTO> findMasterDevices( |
474 | String tenantId, String customerId, String organizationId) { | 463 | String tenantId, String customerId, String organizationId) { |
475 | List<String> orgIds = organizationAllIds(tenantId, organizationId); | 464 | List<String> orgIds = organizationAllIds(tenantId, organizationId); |
476 | - List<SelectItemDTO> result = baseMapper.masterDevices(customerId, tenantId, orgIds); | ||
477 | - return result; | 465 | + return baseMapper.masterDevices(customerId, tenantId, orgIds); |
478 | } | 466 | } |
479 | 467 | ||
480 | @Override | 468 | @Override |
481 | public List<SelectItemDTO> findSlaveDevices( | 469 | public List<SelectItemDTO> findSlaveDevices( |
482 | String masterId, String tenantId, String customerId, String organizationId) { | 470 | String masterId, String tenantId, String customerId, String organizationId) { |
483 | List<String> orgIds = organizationAllIds(tenantId, organizationId); | 471 | List<String> orgIds = organizationAllIds(tenantId, organizationId); |
484 | - List<SelectItemDTO> result = baseMapper.slaveDevices(customerId, tenantId, orgIds, masterId); | ||
485 | - return result; | 472 | + return baseMapper.slaveDevices(customerId, tenantId, orgIds, masterId); |
486 | } | 473 | } |
487 | 474 | ||
488 | - | ||
489 | @Override | 475 | @Override |
490 | public DeviceDTO findSlaveDevice(String tenantId, String masterId, String deviceCode) { | 476 | public DeviceDTO findSlaveDevice(String tenantId, String masterId, String deviceCode) { |
491 | - return baseMapper.slaveDevice(tenantId,masterId,deviceCode); | 477 | + return baseMapper.slaveDevice(tenantId, masterId, deviceCode); |
492 | } | 478 | } |
493 | 479 | ||
494 | @Override | 480 | @Override |
495 | public List<String> findDeviceKeys( | 481 | public List<String> findDeviceKeys( |
496 | String tenantId, String customerId, String organizationId, List<String> deviceIds) { | 482 | String tenantId, String customerId, String organizationId, List<String> deviceIds) { |
497 | List<String> orgIds = organizationAllIds(tenantId, organizationId); | 483 | List<String> orgIds = organizationAllIds(tenantId, organizationId); |
498 | - List<String> result = baseMapper.findDeviceKeys(tenantId, customerId, orgIds, deviceIds); | ||
499 | - return result; | 484 | + return baseMapper.findDeviceKeys(tenantId, customerId, orgIds, deviceIds); |
500 | } | 485 | } |
501 | 486 | ||
502 | @Override | 487 | @Override |
@@ -537,8 +522,43 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | @@ -537,8 +522,43 @@ public class YtDeviceServiceImpl extends AbstractBaseService<DeviceMapper, YtDev | ||
537 | new LambdaQueryWrapper<YtDevice>() | 522 | new LambdaQueryWrapper<YtDevice>() |
538 | .eq(YtDevice::getTbDeviceId, tbDeviceId) | 523 | .eq(YtDevice::getTbDeviceId, tbDeviceId) |
539 | .eq(YtDevice::getTenantId, tenantId)); | 524 | .eq(YtDevice::getTenantId, tenantId)); |
540 | - return Optional.ofNullable(device).map(obj -> obj.getDTO(DeviceDTO.class)).orElseThrow(()->{ | ||
541 | - throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
542 | - }); | 525 | + return Optional.ofNullable(device) |
526 | + .map(obj -> obj.getDTO(DeviceDTO.class)) | ||
527 | + .orElseThrow( | ||
528 | + () -> { | ||
529 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
530 | + }); | ||
531 | + } | ||
532 | + | ||
533 | + @Override | ||
534 | + public JsonNode getDeviceAttributes(String tbProfileId,String profileId, String id, String tenantId) { | ||
535 | + return getDevice(tenantId, id) | ||
536 | + .map( | ||
537 | + obj -> { | ||
538 | + if (obj.getProfileId().equals(tbProfileId)) { | ||
539 | + JsonNode jsonNode = null; | ||
540 | + List<ThingsModelDTO> thingsModel = | ||
541 | + thingsModelService.selectByDeviceProfileId( | ||
542 | + FunctionTypeEnum.properties, tenantId, profileId); | ||
543 | + if (!thingsModel.isEmpty()) { | ||
544 | + List<Map<String, Object>> attributes = new ArrayList<>(); | ||
545 | + for (ThingsModelDTO dto : thingsModel) { | ||
546 | + Map<String, Object> attribute = new HashMap<>(); | ||
547 | + attribute.put("name", dto.getFunctionName()); | ||
548 | + attribute.put("identifier", dto.getIdentifier()); | ||
549 | + attribute.put("detail", dto.getFunctionJson()); | ||
550 | + attributes.add(attribute); | ||
551 | + } | ||
552 | + jsonNode = JacksonUtil.convertValue(attributes, JsonNode.class); | ||
553 | + } | ||
554 | + return jsonNode; | ||
555 | + } else { | ||
556 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
557 | + } | ||
558 | + }) | ||
559 | + .orElseThrow( | ||
560 | + () -> { | ||
561 | + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
562 | + }); | ||
543 | } | 563 | } |
544 | } | 564 | } |
@@ -11,11 +11,10 @@ import org.thingsboard.server.dao.util.mapping.JsonBinaryType; | @@ -11,11 +11,10 @@ import org.thingsboard.server.dao.util.mapping.JsonBinaryType; | ||
11 | import org.thingsboard.server.dao.util.mapping.JsonStringType; | 11 | import org.thingsboard.server.dao.util.mapping.JsonStringType; |
12 | 12 | ||
13 | import javax.persistence.*; | 13 | import javax.persistence.*; |
14 | -import java.util.UUID; | ||
15 | 14 | ||
16 | @Data | 15 | @Data |
17 | @Entity | 16 | @Entity |
18 | -@Table(name = ModelConstants.Table.IOTFS_DEVICE_TABLE_NAME) | 17 | +@Table(name = ModelConstants.Table.TK_DEVICE_TABLE_NAME) |
19 | @TypeDefs({ | 18 | @TypeDefs({ |
20 | @TypeDef(name = "json", typeClass = JsonStringType.class), | 19 | @TypeDef(name = "json", typeClass = JsonStringType.class), |
21 | @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class) | 20 | @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class) |
1 | +package org.thingsboard.server.dao.yunteng.mapper; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
4 | +import org.apache.ibatis.annotations.Mapper; | ||
5 | +import org.thingsboard.server.dao.yunteng.entities.ThingsModelEntity; | ||
6 | + | ||
7 | +@Mapper | ||
8 | +public interface ThingsModelMapper extends BaseMapper<ThingsModelEntity> {} |
1 | +package org.thingsboard.server.dao.yunteng.service; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
4 | +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.enums.FunctionTypeEnum; | ||
7 | +import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | ||
8 | + | ||
9 | +import java.util.List; | ||
10 | +import java.util.Map; | ||
11 | + | ||
12 | +public interface ThingsModelService { | ||
13 | + YtPageData<ThingsModelDTO> page(Map<String, Object> queryMap, String tenantId); | ||
14 | + | ||
15 | + ThingsModelDTO saveOrUpdate(ThingsModelDTO thingsModelDTO); | ||
16 | + | ||
17 | + ThingsModelDTO get(String id, String tenantId); | ||
18 | + | ||
19 | + boolean delete(DeleteDTO dto); | ||
20 | + | ||
21 | + boolean deleteByDeviceProfileId(String tenantId, String deviceProfileId); | ||
22 | + | ||
23 | + List<ThingsModelDTO> selectByDeviceProfileId( | ||
24 | + FunctionTypeEnum typeEnum, String tenantId, String deviceProfileId); | ||
25 | + | ||
26 | + JsonNode getTingsModelJson(FunctionTypeEnum typeEnum, String tenantId, String deviceProfileId); | ||
27 | +} |
@@ -27,16 +27,22 @@ public interface YtDeviceProfileService { | @@ -27,16 +27,22 @@ public interface YtDeviceProfileService { | ||
27 | /** | 27 | /** |
28 | * 验证表单数据有效性 | 28 | * 验证表单数据有效性 |
29 | * | 29 | * |
30 | - * @param ytDeviceProfileDTO | ||
31 | - * @return | ||
32 | */ | 30 | */ |
33 | - boolean validateFormdata(DeviceProfileDTO ytDeviceProfileDTO); | 31 | + boolean validateFormData(DeviceProfileDTO ytDeviceProfileDTO); |
34 | 32 | ||
35 | /** | 33 | /** |
36 | - * 根据设备配置ID或者设备配置信息 | 34 | + * 根据设备配置ID获取设备配置信息 |
37 | * @param tenantId 租户ID | 35 | * @param tenantId 租户ID |
38 | * @param id 设备配置ID | 36 | * @param id 设备配置ID |
39 | * @return 设备配置信息 | 37 | * @return 设备配置信息 |
40 | */ | 38 | */ |
41 | DeviceProfileDTO findDeviceProfileById(String tenantId, String id); | 39 | DeviceProfileDTO findDeviceProfileById(String tenantId, String id); |
40 | + | ||
41 | + /** | ||
42 | + * *根据tb设备ID获取设备配置信息 | ||
43 | + * @param tenantId 租户ID | ||
44 | + * @param tbProfileId tb设备配置ID | ||
45 | + * @return 设备配置信息 | ||
46 | + */ | ||
47 | + DeviceProfileDTO findByTbDeviceProfileId(String tenantId,String tbProfileId); | ||
42 | } | 48 | } |
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 org.thingsboard.server.common.data.id.EntityId; | 4 | import org.thingsboard.server.common.data.id.EntityId; |
4 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | 5 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
5 | import org.thingsboard.server.common.data.yunteng.dto.RelationDeviceDTO; | 6 | import org.thingsboard.server.common.data.yunteng.dto.RelationDeviceDTO; |
@@ -29,7 +30,7 @@ public interface YtDeviceService extends BaseService<YtDevice> { | @@ -29,7 +30,7 @@ public interface YtDeviceService extends BaseService<YtDevice> { | ||
29 | * | 30 | * |
30 | * @param ytDevice | 31 | * @param ytDevice |
31 | */ | 32 | */ |
32 | - void validateFormdata(String currentTenantId, DeviceDTO ytDevice); | 33 | + void validateFormData(String currentTenantId, DeviceDTO ytDevice); |
33 | 34 | ||
34 | /** | 35 | /** |
35 | * 查询所有的设备信息 | 36 | * 查询所有的设备信息 |
@@ -162,10 +163,20 @@ public interface YtDeviceService extends BaseService<YtDevice> { | @@ -162,10 +163,20 @@ public interface YtDeviceService extends BaseService<YtDevice> { | ||
162 | 163 | ||
163 | /** | 164 | /** |
164 | * 通过tb设备ID获取平台设备信息 | 165 | * 通过tb设备ID获取平台设备信息 |
165 | - * @param tenantId | ||
166 | - * @param tbDeviceId | ||
167 | - * @return | 166 | + * @param tenantId 租户ID |
167 | + * @param tbDeviceId tb设备ID | ||
168 | + * @return 设备信息 | ||
168 | */ | 169 | */ |
169 | DeviceDTO getSubsetDeviceByTbDeviceId(String tenantId,String tbDeviceId); | 170 | DeviceDTO getSubsetDeviceByTbDeviceId(String tenantId,String tbDeviceId); |
170 | 171 | ||
172 | + /** | ||
173 | + * 通过设备ID 设备配置ID获取属性 | ||
174 | + * @param tbProfileId tb设备配置ID | ||
175 | + * @param profileId 设备配置ID | ||
176 | + * @param id 设备ID | ||
177 | + * @param tenantId 租户ID | ||
178 | + * @return 属性信息 | ||
179 | + */ | ||
180 | + JsonNode getDeviceAttributes(String tbProfileId,String profileId,String id,String tenantId); | ||
181 | + | ||
171 | } | 182 | } |
@@ -29,8 +29,8 @@ | @@ -29,8 +29,8 @@ | ||
29 | <select id="getAlarmPage" resultMap="alarmContactMap"> | 29 | <select id="getAlarmPage" resultMap="alarmContactMap"> |
30 | SELECT | 30 | SELECT |
31 | <include refid="columns"/> | 31 | <include refid="columns"/> |
32 | - FROM iotfs_alarm_contact a | ||
33 | - LEFT JOIN iotfs_organization io ON io.id = a.organization_id | 32 | + FROM tk_alarm_contact a |
33 | + LEFT JOIN tk_organization io ON io.id = a.organization_id | ||
34 | <where> | 34 | <where> |
35 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> | 35 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> |
36 | AND a.tenant_id = #{queryMap.tenantId} | 36 | AND a.tenant_id = #{queryMap.tenantId} |
@@ -24,8 +24,8 @@ | @@ -24,8 +24,8 @@ | ||
24 | <select id="getAlarmProfilePage" resultMap="alarmProfileMap"> | 24 | <select id="getAlarmProfilePage" resultMap="alarmProfileMap"> |
25 | SELECT | 25 | SELECT |
26 | <include refid="columns"/> | 26 | <include refid="columns"/> |
27 | - FROM iotfs_alarm_profile a | ||
28 | - LEFT JOIN iotfs_organization io ON io.id = a.organization_id | 27 | + FROM tk_alarm_profile a |
28 | + LEFT JOIN tk_organization io ON io.id = a.organization_id | ||
29 | <where> | 29 | <where> |
30 | a.tenant_id = #{tenantId} | 30 | a.tenant_id = #{tenantId} |
31 | <if test="queryMap.name !=null and queryMap.name !=''"> | 31 | <if test="queryMap.name !=null and queryMap.name !=''"> |
@@ -35,8 +35,8 @@ | @@ -35,8 +35,8 @@ | ||
35 | <select id="getConfigurationCenterPage" resultMap="configurationCenterMap"> | 35 | <select id="getConfigurationCenterPage" resultMap="configurationCenterMap"> |
36 | SELECT | 36 | SELECT |
37 | <include refid="columns"/> | 37 | <include refid="columns"/> |
38 | - FROM iotfs_configuration_center a | ||
39 | - LEFT JOIN iotfs_organization io ON io.id = a.organization_id | 38 | + FROM tk_configuration_center a |
39 | + LEFT JOIN tk_organization io ON io.id = a.organization_id | ||
40 | <where> | 40 | <where> |
41 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> | 41 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> |
42 | AND a.tenant_id = #{queryMap.tenantId} | 42 | AND a.tenant_id = #{queryMap.tenantId} |
@@ -57,8 +57,8 @@ | @@ -57,8 +57,8 @@ | ||
57 | </select> | 57 | </select> |
58 | 58 | ||
59 | <select id="getConfigurationInfoById" resultMap="configurationInfoMap"> | 59 | <select id="getConfigurationInfoById" resultMap="configurationInfoMap"> |
60 | - SELECT icc.id,icc.name,icc.platform,icc.thumbnail,icct.id AS content_id,icct.content FROM iotfs_configuration_center icc LEFT JOIN | ||
61 | - iotfs_configuration_content icct ON icc.id = icct.configuration_id | 60 | + SELECT icc.id,icc.name,icc.platform,icc.thumbnail,icct.id AS content_id,icct.content FROM tk_configuration_center icc LEFT JOIN |
61 | + tk_configuration_content icct ON icc.id = icct.configuration_id | ||
62 | WHERE icc.id = #{id} AND icc.tenant_id = #{tenantId} | 62 | WHERE icc.id = #{id} AND icc.tenant_id = #{tenantId} |
63 | </select> | 63 | </select> |
64 | </mapper> | 64 | </mapper> |
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | <result property="remark" column="remark"/> | 18 | <result property="remark" column="remark"/> |
19 | </resultMap> | 19 | </resultMap> |
20 | <update id="updateConvertStatusByIds"> | 20 | <update id="updateConvertStatusByIds"> |
21 | - UPDATE iotfs_convert_config | 21 | + UPDATE tk_convert_config |
22 | SET status =#{status} | 22 | SET status =#{status} |
23 | <where> | 23 | <where> |
24 | tenant_id = #{tenantId} | 24 | tenant_id = #{tenantId} |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <result property="remark" column="remark"/> | 14 | <result property="remark" column="remark"/> |
15 | </resultMap> | 15 | </resultMap> |
16 | <update id="updateDataBoardComponentNum"> | 16 | <update id="updateDataBoardComponentNum"> |
17 | - UPDATE iotfs_data_board | 17 | + UPDATE tk_data_board |
18 | SET component_num =#{count} | 18 | SET component_num =#{count} |
19 | <where> | 19 | <where> |
20 | id = #{id} | 20 | id = #{id} |
@@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
10 | <resultMap type="org.thingsboard.server.common.data.yunteng.dto.DeviceDTO" id="deviceMap"> | 10 | <resultMap type="org.thingsboard.server.common.data.yunteng.dto.DeviceDTO" id="deviceMap"> |
11 | <result property="id" column="id"/> | 11 | <result property="id" column="id"/> |
12 | <result property="name" column="name"/> | 12 | <result property="name" column="name"/> |
13 | + <result property="alias" column="alias"/> | ||
13 | <result property="deviceInfo" column="device_info" | 14 | <result property="deviceInfo" column="device_info" |
14 | typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/> | 15 | typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/> |
15 | <result property="profileId" column="profile_id"/> | 16 | <result property="profileId" column="profile_id"/> |
@@ -62,7 +63,7 @@ | @@ -62,7 +63,7 @@ | ||
62 | 63 | ||
63 | <sql id="basicColumns"> | 64 | <sql id="basicColumns"> |
64 | ifd.id | 65 | ifd.id |
65 | - ,ifd.sn,ifd.brand,ifd.name,ifd.device_info,ifd.profile_id,ifd.active_time,ifd.tenant_id,ifd.description | 66 | + ,ifd.sn,ifd.brand,ifd.name,ifd.alias,ifd.device_info,ifd.profile_id,ifd.active_time,ifd.tenant_id,ifd.description |
66 | ,ifd.tb_device_id,ifd.label,ifd.last_connect_time,ifd.device_type,ifd.device_state,ifd.create_time,ifd.update_time,ifd.creator, | 67 | ,ifd.tb_device_id,ifd.label,ifd.last_connect_time,ifd.device_type,ifd.device_state,ifd.create_time,ifd.update_time,ifd.creator, |
67 | ifd.updater,ifd.organization_id,ifd.alarm_status | 68 | ifd.updater,ifd.organization_id,ifd.alarm_status |
68 | </sql> | 69 | </sql> |
@@ -79,9 +80,9 @@ | @@ -79,9 +80,9 @@ | ||
79 | <select id="getDevicePage" resultMap="deviceMap"> | 80 | <select id="getDevicePage" resultMap="deviceMap"> |
80 | SELECT | 81 | SELECT |
81 | <include refid="pageColumns"/>,d.customer_id::TEXT AS customer_id,cus.title AS cusotomer_name | 82 | <include refid="pageColumns"/>,d.customer_id::TEXT AS customer_id,cus.title AS cusotomer_name |
82 | - FROM iotfs_device ifd | 83 | + FROM tk_device ifd |
83 | LEFT JOIN device_profile ifdp ON ifd.profile_id = ifdp.id::TEXT | 84 | LEFT JOIN device_profile ifdp ON ifd.profile_id = ifdp.id::TEXT |
84 | - LEFT JOIN iotfs_organization io ON io.id = ifd.organization_id | 85 | + LEFT JOIN tk_organization io ON io.id = ifd.organization_id |
85 | LEFT JOIN attribute_kv a ON ifd.tb_device_id = a.entity_id::TEXT AND a.entity_type ='DEVICE' AND a.attribute_key='active' | 86 | LEFT JOIN attribute_kv a ON ifd.tb_device_id = a.entity_id::TEXT AND a.entity_type ='DEVICE' AND a.attribute_key='active' |
86 | LEFT JOIN attribute_kv b ON ifd.tb_device_id = b.entity_id::TEXT AND b.entity_type ='DEVICE' AND b.attribute_key='lastActivityTime' | 87 | LEFT JOIN attribute_kv b ON ifd.tb_device_id = b.entity_id::TEXT AND b.entity_type ='DEVICE' AND b.attribute_key='lastActivityTime' |
87 | LEFT JOIN attribute_kv c ON ifd.tb_device_id = c.entity_id::TEXT AND c.entity_type ='DEVICE' AND c.attribute_key='lastDisconnectTime' | 88 | LEFT JOIN attribute_kv c ON ifd.tb_device_id = c.entity_id::TEXT AND c.entity_type ='DEVICE' AND c.attribute_key='lastDisconnectTime' |
@@ -131,15 +132,15 @@ | @@ -131,15 +132,15 @@ | ||
131 | <select id="selectDetail" resultMap="deviceMap"> | 132 | <select id="selectDetail" resultMap="deviceMap"> |
132 | SELECT | 133 | SELECT |
133 | <include refid="detailColumns"/> | 134 | <include refid="detailColumns"/> |
134 | - FROM iotfs_device ifd | 135 | + FROM tk_device ifd |
135 | LEFT JOIN device_profile ifdp ON ifd.profile_id = CAST (ifdp.id AS VARCHAR) | 136 | LEFT JOIN device_profile ifdp ON ifd.profile_id = CAST (ifdp.id AS VARCHAR) |
136 | - LEFT JOIN iotfs_organization io ON io.id = ifd.organization_id | 137 | + LEFT JOIN tk_organization io ON io.id = ifd.organization_id |
137 | LEFT JOIN attribute_kv a ON ifd.tb_device_id = a.entity_id::TEXT AND a.entity_type ='DEVICE' AND a.attribute_key='active' | 138 | LEFT JOIN attribute_kv a ON ifd.tb_device_id = a.entity_id::TEXT AND a.entity_type ='DEVICE' AND a.attribute_key='active' |
138 | LEFT JOIN attribute_kv b ON ifd.tb_device_id = b.entity_id::TEXT AND b.entity_type ='DEVICE' AND b.attribute_key='lastActivityTime' | 139 | LEFT JOIN attribute_kv b ON ifd.tb_device_id = b.entity_id::TEXT AND b.entity_type ='DEVICE' AND b.attribute_key='lastActivityTime' |
139 | LEFT JOIN attribute_kv c ON ifd.tb_device_id = c.entity_id::TEXT AND c.entity_type ='DEVICE' AND c.attribute_key='lastDisconnectTime' | 140 | LEFT JOIN attribute_kv c ON ifd.tb_device_id = c.entity_id::TEXT AND c.entity_type ='DEVICE' AND c.attribute_key='lastDisconnectTime' |
140 | LEFT JOIN attribute_kv e ON ifd.tb_device_id = e.entity_id::TEXT AND e.entity_type ='DEVICE' AND e.attribute_key='lastConnectTime' | 141 | LEFT JOIN attribute_kv e ON ifd.tb_device_id = e.entity_id::TEXT AND e.entity_type ='DEVICE' AND e.attribute_key='lastConnectTime' |
141 | LEFT JOIN device d ON d.id::TEXT = ifd.tb_device_id | 142 | LEFT JOIN device d ON d.id::TEXT = ifd.tb_device_id |
142 | - LEFT JOIN iotfs_device idg ON idg.id = ifd.gateway_id | 143 | + LEFT JOIN tk_device idg ON idg.id = ifd.gateway_id |
143 | <where> | 144 | <where> |
144 | <if test="tenantId !=null and tenantId !=''"> | 145 | <if test="tenantId !=null and tenantId !=''"> |
145 | AND ifd.tenant_id = #{tenantId} | 146 | AND ifd.tenant_id = #{tenantId} |
@@ -153,7 +154,7 @@ | @@ -153,7 +154,7 @@ | ||
153 | <select id="findGateWayDeviceByTbDeviceId" resultMap="deviceMap"> | 154 | <select id="findGateWayDeviceByTbDeviceId" resultMap="deviceMap"> |
154 | SELECT | 155 | SELECT |
155 | <include refid="basicColumns"/> | 156 | <include refid="basicColumns"/> |
156 | - FROM iotfs_device ifd | 157 | + FROM tk_device ifd |
157 | LEFT JOIN relation rl ON ifd.tb_device_id = rl.from_id :: TEXT | 158 | LEFT JOIN relation rl ON ifd.tb_device_id = rl.from_id :: TEXT |
158 | WHERE | 159 | WHERE |
159 | rl.to_id ::TEXT = #{tbDeviceId} | 160 | rl.to_id ::TEXT = #{tbDeviceId} |
@@ -162,7 +163,7 @@ | @@ -162,7 +163,7 @@ | ||
162 | </select> | 163 | </select> |
163 | 164 | ||
164 | <update id="freshAlarmStatus"> | 165 | <update id="freshAlarmStatus"> |
165 | - UPDATE iotfs_device | 166 | + UPDATE tk_device |
166 | SET alarm_status=#{created} | 167 | SET alarm_status=#{created} |
167 | WHERE tb_device_id = #{tbDeviceId} | 168 | WHERE tb_device_id = #{tbDeviceId} |
168 | </update> | 169 | </update> |
@@ -180,9 +181,9 @@ | @@ -180,9 +181,9 @@ | ||
180 | b.long_v last_online_time, | 181 | b.long_v last_online_time, |
181 | d.customer_id :: TEXT AS customer_id | 182 | d.customer_id :: TEXT AS customer_id |
182 | FROM | 183 | FROM |
183 | - iotfs_device ifd | 184 | + tk_device ifd |
184 | LEFT JOIN device_profile ifdp ON ifd.profile_id = ifdp.ID :: | 185 | LEFT JOIN device_profile ifdp ON ifd.profile_id = ifdp.ID :: |
185 | - TEXT LEFT JOIN iotfs_organization io ON io.ID = ifd.organization_id | 186 | + TEXT LEFT JOIN tk_organization io ON io.ID = ifd.organization_id |
186 | LEFT JOIN attribute_kv A ON ifd.tb_device_id = A.entity_id :: TEXT | 187 | LEFT JOIN attribute_kv A ON ifd.tb_device_id = A.entity_id :: TEXT |
187 | AND A.entity_type = 'DEVICE' | 188 | AND A.entity_type = 'DEVICE' |
188 | AND A.attribute_key = 'active' | 189 | AND A.attribute_key = 'active' |
@@ -239,7 +240,7 @@ | @@ -239,7 +240,7 @@ | ||
239 | </select> | 240 | </select> |
240 | <select id="findDeviceIdsByCustomerId" resultType="java.lang.String"> | 241 | <select id="findDeviceIdsByCustomerId" resultType="java.lang.String"> |
241 | SELECT idi.tb_device_id | 242 | SELECT idi.tb_device_id |
242 | - FROM iotfs_device idi | 243 | + FROM tk_device idi |
243 | LEFT JOIN device d ON d.id::TEXT = idi.tb_device_id | 244 | LEFT JOIN device d ON d.id::TEXT = idi.tb_device_id |
244 | WHERE customer_id::TEXT = #{customerId} | 245 | WHERE customer_id::TEXT = #{customerId} |
245 | </select> | 246 | </select> |
@@ -330,7 +331,7 @@ | @@ -330,7 +331,7 @@ | ||
330 | <select id="masterDevices" resultMap="listInform"> | 331 | <select id="masterDevices" resultMap="listInform"> |
331 | SELECT | 332 | SELECT |
332 | base.tb_device_id as id,base.name,base.device_type | 333 | base.tb_device_id as id,base.name,base.device_type |
333 | - FROM iotfs_device base | 334 | + FROM tk_device base |
334 | LEFT JOIN device tde ON tde.ID :: TEXT = base.tb_device_id | 335 | LEFT JOIN device tde ON tde.ID :: TEXT = base.tb_device_id |
335 | <where> | 336 | <where> |
336 | base.device_type != 'SENSOR' | 337 | base.device_type != 'SENSOR' |
@@ -358,7 +359,7 @@ | @@ -358,7 +359,7 @@ | ||
358 | </if> | 359 | </if> |
359 | ) base | 360 | ) base |
360 | LEFT JOIN device tde ON base.to_id = tde.id | 361 | LEFT JOIN device tde ON base.to_id = tde.id |
361 | - LEFT JOIN iotfs_device ide ON tde.ID :: TEXT = ide.tb_device_id | 362 | + LEFT JOIN tk_device ide ON tde.ID :: TEXT = ide.tb_device_id |
362 | <where> | 363 | <where> |
363 | ide.device_type = 'SENSOR' | 364 | ide.device_type = 'SENSOR' |
364 | <if test="tenantId !=null and tenantId !=''"> | 365 | <if test="tenantId !=null and tenantId !=''"> |
@@ -379,7 +380,7 @@ | @@ -379,7 +380,7 @@ | ||
379 | <select id="slaveDevice" resultMap="deviceMap"> | 380 | <select id="slaveDevice" resultMap="deviceMap"> |
380 | SELECT | 381 | SELECT |
381 | <include refid="basicColumns"/> | 382 | <include refid="basicColumns"/> |
382 | - FROM iotfs_device ifd | 383 | + FROM tk_device ifd |
383 | <where> | 384 | <where> |
384 | ifd.tenant_id = #{tenantId} | 385 | ifd.tenant_id = #{tenantId} |
385 | AND ifd.gateway_id = #{masterId} | 386 | AND ifd.gateway_id = #{masterId} |
@@ -393,7 +394,7 @@ | @@ -393,7 +394,7 @@ | ||
393 | FROM ts_kv_dictionary base | 394 | FROM ts_kv_dictionary base |
394 | LEFT JOIN ts_kv_latest latest ON latest.key = base.key_id | 395 | LEFT JOIN ts_kv_latest latest ON latest.key = base.key_id |
395 | LEFT JOIN device tb ON tb.ID = latest.entity_id | 396 | LEFT JOIN device tb ON tb.ID = latest.entity_id |
396 | - LEFT JOIN iotfs_device iot ON tb.ID :: TEXT = iot.tb_device_id | 397 | + LEFT JOIN tk_device iot ON tb.ID :: TEXT = iot.tb_device_id |
397 | <where> | 398 | <where> |
398 | iot.tenant_id = #{tenantId} | 399 | iot.tenant_id = #{tenantId} |
399 | <if test="customerId !=null and customerId !=''"> | 400 | <if test="customerId !=null and customerId !=''"> |
@@ -20,7 +20,7 @@ | @@ -20,7 +20,7 @@ | ||
20 | </resultMap> | 20 | </resultMap> |
21 | 21 | ||
22 | <select id="listBySceneId" resultMap="actionDTO"> | 22 | <select id="listBySceneId" resultMap="actionDTO"> |
23 | - SELECT * FROM iotfs_do_action WHERE scene_linkage_id = #{sceneId} | 23 | + SELECT * FROM tk_do_action WHERE scene_linkage_id = #{sceneId} |
24 | </select> | 24 | </select> |
25 | 25 | ||
26 | </mapper> | 26 | </mapper> |
@@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
19 | </resultMap> | 19 | </resultMap> |
20 | 20 | ||
21 | <select id="listBySceneId" resultMap="conditionDTO"> | 21 | <select id="listBySceneId" resultMap="conditionDTO"> |
22 | - SELECT * FROM iotfs_do_condition WHERE scene_linkage_id = #{sceneId} | 22 | + SELECT * FROM tk_do_condition WHERE scene_linkage_id = #{sceneId} |
23 | </select> | 23 | </select> |
24 | 24 | ||
25 | </mapper> | 25 | </mapper> |
@@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
25 | <select id="getEnableConfigByMessageAndPlatform" resultMap="messageConfigDTOMap"> | 25 | <select id="getEnableConfigByMessageAndPlatform" resultMap="messageConfigDTOMap"> |
26 | SELECT | 26 | SELECT |
27 | <include refid="columns"/> | 27 | <include refid="columns"/> |
28 | - FROM message_config | 28 | + FROM sys_message_config |
29 | <where> | 29 | <where> |
30 | status = 1 | 30 | status = 1 |
31 | <if test="messageType !=null and messageType != ''">AND message_type = #{messageType}</if> | 31 | <if test="messageType !=null and messageType != ''">AND message_type = #{messageType}</if> |
@@ -28,7 +28,7 @@ | @@ -28,7 +28,7 @@ | ||
28 | <select id="getTemplatePage" resultMap="messageTemplateDTOMap"> | 28 | <select id="getTemplatePage" resultMap="messageTemplateDTOMap"> |
29 | SELECT | 29 | SELECT |
30 | <include refid="columns"/> | 30 | <include refid="columns"/> |
31 | - FROM message_template mt LEFT JOIN message_config mc ON | 31 | + FROM tk_message_template mt LEFT JOIN tk_message_config mc ON |
32 | mt.message_config_id=mc.id | 32 | mt.message_config_id=mc.id |
33 | <where> | 33 | <where> |
34 | <if test="queryMap.tenantId !=null and queryMap.tenantId != ''"> | 34 | <if test="queryMap.tenantId !=null and queryMap.tenantId != ''"> |
@@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
46 | <select id="findMessageTemplate" resultMap="messageTemplateDTOMap"> | 46 | <select id="findMessageTemplate" resultMap="messageTemplateDTOMap"> |
47 | SELECT | 47 | SELECT |
48 | <include refid="columns"/> | 48 | <include refid="columns"/> |
49 | - FROM message_template mt LEFT JOIN message_config mc ON | 49 | + FROM tk_message_template mt LEFT JOIN tk_message_config mc ON |
50 | mt.message_config_id=mc.id | 50 | mt.message_config_id=mc.id |
51 | <where> | 51 | <where> |
52 | <if test="id !=null and id != ''">mt.id = #{id}</if> | 52 | <if test="id !=null and id != ''">mt.id = #{id}</if> |
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | <select id="findOrganizationTreeList" resultMap="organizationDTOMap"> | 18 | <select id="findOrganizationTreeList" resultMap="organizationDTOMap"> |
19 | WITH RECURSIVE organization AS ( | 19 | WITH RECURSIVE organization AS ( |
20 | SELECT id, parent_id, name, sort,creator,create_time,updater,update_time,remark,tenant_id | 20 | SELECT id, parent_id, name, sort,creator,create_time,updater,update_time,remark,tenant_id |
21 | - FROM iotfs_organization | 21 | + FROM tk_organization |
22 | WHERE tenant_id = #{tenantId} | 22 | WHERE tenant_id = #{tenantId} |
23 | <if test="organizationIds !=null and organizationIds.size() > 0"> | 23 | <if test="organizationIds !=null and organizationIds.size() > 0"> |
24 | AND id IN | 24 | AND id IN |
@@ -28,7 +28,7 @@ | @@ -28,7 +28,7 @@ | ||
28 | </if> | 28 | </if> |
29 | UNION ALL | 29 | UNION ALL |
30 | SELECT ig.id, ig.parent_id, ig.name, ig.sort,ig.creator,ig.create_time,ig.updater,ig.update_time,ig.remark,ig.tenant_id | 30 | SELECT ig.id, ig.parent_id, ig.name, ig.sort,ig.creator,ig.create_time,ig.updater,ig.update_time,ig.remark,ig.tenant_id |
31 | - FROM iotfs_organization ig | 31 | + FROM tk_organization ig |
32 | JOIN organization ON ig.parent_id = organization.id | 32 | JOIN organization ON ig.parent_id = organization.id |
33 | WHERE ig.tenant_id = #{tenantId} | 33 | WHERE ig.tenant_id = #{tenantId} |
34 | ) | 34 | ) |
@@ -31,8 +31,8 @@ | @@ -31,8 +31,8 @@ | ||
31 | <select id="getReportFormConfigPage" resultMap="formConfigDtoMap"> | 31 | <select id="getReportFormConfigPage" resultMap="formConfigDtoMap"> |
32 | SELECT | 32 | SELECT |
33 | <include refid="columns"/>,io.name as organization_name,su.real_name as create_user_name | 33 | <include refid="columns"/>,io.name as organization_name,su.real_name as create_user_name |
34 | - FROM iotfs_report_form_config config | ||
35 | - LEFT JOIN iotfs_organization io ON io.id = config.organization_id | 34 | + FROM tk_report_form_config config |
35 | + LEFT JOIN tk_organization io ON io.id = config.organization_id | ||
36 | LEFT JOIN sys_user su ON config.creator = su.id | 36 | LEFT JOIN sys_user su ON config.creator = su.id |
37 | <where> | 37 | <where> |
38 | config.tenant_id = #{queryMap.tenantId} | 38 | config.tenant_id = #{queryMap.tenantId} |
@@ -25,9 +25,9 @@ | @@ -25,9 +25,9 @@ | ||
25 | <select id="getScenePage" resultMap="sceneLinkageMap"> | 25 | <select id="getScenePage" resultMap="sceneLinkageMap"> |
26 | SELECT | 26 | SELECT |
27 | <include refid="columns"/>,su.real_name creator_name | 27 | <include refid="columns"/>,su.real_name creator_name |
28 | - FROM iotfs_scene_linkage s | 28 | + FROM tk_scene_linkage s |
29 | LEFT JOIN sys_user su ON su.id = s.creator | 29 | LEFT JOIN sys_user su ON su.id = s.creator |
30 | - LEFT JOIN iotfs_organization io ON io.id = s.organization_id | 30 | + LEFT JOIN tk_organization io ON io.id = s.organization_id |
31 | <where> | 31 | <where> |
32 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> | 32 | <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> |
33 | AND s.tenant_id = #{queryMap.tenantId} | 33 | AND s.tenant_id = #{queryMap.tenantId} |
@@ -7,7 +7,6 @@ | @@ -7,7 +7,6 @@ | ||
7 | <result property="dictName" column="dict_name"/> | 7 | <result property="dictName" column="dict_name"/> |
8 | <result property="dictCode" column="dict_code"/> | 8 | <result property="dictCode" column="dict_code"/> |
9 | <result property="description" column="description"/> | 9 | <result property="description" column="description"/> |
10 | - <result property="tenantId" column="tenant_id"/> | ||
11 | <result property="creator" column="creator"/> | 10 | <result property="creator" column="creator"/> |
12 | <result property="createTime" column="create_time"/> | 11 | <result property="createTime" column="create_time"/> |
13 | <result property="updater" column="updater"/> | 12 | <result property="updater" column="updater"/> |
@@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
19 | </resultMap> | 19 | </resultMap> |
20 | 20 | ||
21 | <select id="listBySceneId" resultMap="triggerDTO"> | 21 | <select id="listBySceneId" resultMap="triggerDTO"> |
22 | - SELECT * FROM iotfs_trigger WHERE scene_linkage_id = #{sceneId} | 22 | + SELECT * FROM tk_trigger WHERE scene_linkage_id = #{sceneId} |
23 | </select> | 23 | </select> |
24 | 24 | ||
25 | </mapper> | 25 | </mapper> |
@@ -39,8 +39,8 @@ | @@ -39,8 +39,8 @@ | ||
39 | <select id="alarmPage" resultMap="alarmInfo"> | 39 | <select id="alarmPage" resultMap="alarmInfo"> |
40 | SELECT d.name AS device_name,d.id device_id,m.*,d.organization_id,org.name organization_name | 40 | SELECT d.name AS device_name,d.id device_id,m.*,d.organization_id,org.name organization_name |
41 | FROM alarm m | 41 | FROM alarm m |
42 | - LEFT JOIN iotfs_device d ON m.originator_id = d.tb_device_id::uuid | ||
43 | - LEFT JOIN iotfs_organization org ON org.id = d.organization_id | 42 | + LEFT JOIN tk_device d ON m.originator_id = d.tb_device_id::uuid |
43 | + LEFT JOIN tk_organization org ON org.id = d.organization_id | ||
44 | <where> | 44 | <where> |
45 | m.tenant_id = #{tenantId} | 45 | m.tenant_id = #{tenantId} |
46 | <if test="customerId!=null"> | 46 | <if test="customerId!=null"> |
@@ -34,7 +34,7 @@ | @@ -34,7 +34,7 @@ | ||
34 | SELECT | 34 | SELECT |
35 | <include refid="basicColumns"/> | 35 | <include refid="basicColumns"/> |
36 | FROM device_profile base | 36 | FROM device_profile base |
37 | - LEFT JOIN iotfs_device_profile iot ON iot.tb_profile_id = base.id::TEXT | 37 | + LEFT JOIN tk_device_profile iot ON iot.tb_profile_id = base.id::TEXT |
38 | <where> | 38 | <where> |
39 | <if test="tenantId !=null and tenantId !=''"> | 39 | <if test="tenantId !=null and tenantId !=''"> |
40 | AND base.tenant_id::TEXT = #{tenantId} | 40 | AND base.tenant_id::TEXT = #{tenantId} |
@@ -53,7 +53,7 @@ | @@ -53,7 +53,7 @@ | ||
53 | SELECT | 53 | SELECT |
54 | <include refid="basicColumns"/> | 54 | <include refid="basicColumns"/> |
55 | FROM device_profile base | 55 | FROM device_profile base |
56 | - LEFT JOIN iotfs_device_profile iot ON iot.tb_profile_id = base.id::TEXT | 56 | + LEFT JOIN tk_device_profile iot ON iot.tb_profile_id = base.id::TEXT |
57 | <where> | 57 | <where> |
58 | <if test="tenantId !=null and tenantId !=''"> | 58 | <if test="tenantId !=null and tenantId !=''"> |
59 | AND iot.tenant_id = #{tenantId} | 59 | AND iot.tenant_id = #{tenantId} |
@@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
67 | SELECT | 67 | SELECT |
68 | <include refid="basicColumns"/> | 68 | <include refid="basicColumns"/> |
69 | FROM device_profile base | 69 | FROM device_profile base |
70 | - LEFT JOIN iotfs_device_profile iot ON iot.tb_profile_id = base.id::TEXT | 70 | + LEFT JOIN tk_device_profile iot ON iot.tb_profile_id = base.id::TEXT |
71 | <where> | 71 | <where> |
72 | iot.tenant_id = #{tenantId} | 72 | iot.tenant_id = #{tenantId} |
73 | <if test="scriptId !=null and scriptId !=''"> | 73 | <if test="scriptId !=null and scriptId !=''"> |
@@ -45,8 +45,8 @@ | @@ -45,8 +45,8 @@ | ||
45 | <select id="getPageDatas" resultMap="dataMap"> | 45 | <select id="getPageDatas" resultMap="dataMap"> |
46 | SELECT <include refid="detailColumns"/> | 46 | SELECT <include refid="detailColumns"/> |
47 | FROM rpc base | 47 | FROM rpc base |
48 | - LEFT JOIN iotfs_device dev ON base.device_id =dev.tb_device_id::uuid | ||
49 | - LEFT JOIN iotfs_organization org ON dev.organization_id = org.id | 48 | + LEFT JOIN tk_device dev ON base.device_id =dev.tb_device_id::uuid |
49 | + LEFT JOIN tk_organization org ON dev.organization_id = org.id | ||
50 | LEFT JOIN tenant ten ON base.tenant_id = ten.id | 50 | LEFT JOIN tenant ten ON base.tenant_id = ten.id |
51 | <where> | 51 | <where> |
52 | 1=1 | 52 | 1=1 |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | 5 | ||
6 | <select id="login" resultType="org.thingsboard.server.dao.yunteng.entities.User"> | 6 | <select id="login" resultType="org.thingsboard.server.dao.yunteng.entities.User"> |
7 | SELECT sus.* | 7 | SELECT sus.* |
8 | - FROM iotfs_third_user base | 8 | + FROM tk_third_user base |
9 | LEFT JOIN sys_user sus ON base.app_user_id = sus.id | 9 | LEFT JOIN sys_user sus ON base.app_user_id = sus.id |
10 | LEFT JOIN sys_tenant ste ON ste.tenant_id = sus.tenant_id | 10 | LEFT JOIN sys_tenant ste ON ste.tenant_id = sus.tenant_id |
11 | <where> | 11 | <where> |
@@ -47,9 +47,9 @@ | @@ -47,9 +47,9 @@ | ||
47 | <select id="getVideoPage" resultMap="videoMap"> | 47 | <select id="getVideoPage" resultMap="videoMap"> |
48 | SELECT | 48 | SELECT |
49 | <include refid="detailColumns"/> | 49 | <include refid="detailColumns"/> |
50 | - FROM iotfs_device_camera base | ||
51 | - LEFT JOIN iotfs_organization org ON org.id = base.organization_id | ||
52 | - LEFT JOIN iotfs_video_platform ivp ON ivp.id = base.video_platform_id | 50 | + FROM tk_device_camera base |
51 | + LEFT JOIN tk_organization org ON org.id = base.organization_id | ||
52 | + LEFT JOIN tk_video_platform ivp ON ivp.id = base.video_platform_id | ||
53 | <where> | 53 | <where> |
54 | <if test="tenantId !=null and tenantId !=''"> | 54 | <if test="tenantId !=null and tenantId !=''"> |
55 | AND base.tenant_id = #{tenantId} | 55 | AND base.tenant_id = #{tenantId} |
@@ -72,9 +72,9 @@ | @@ -72,9 +72,9 @@ | ||
72 | <select id="getVideoInfosByTenantIdOrAccessModeOrId" resultMap="videoMap"> | 72 | <select id="getVideoInfosByTenantIdOrAccessModeOrId" resultMap="videoMap"> |
73 | SELECT | 73 | SELECT |
74 | <include refid="detailColumns"/> | 74 | <include refid="detailColumns"/> |
75 | - FROM iotfs_device_camera base | ||
76 | - LEFT JOIN iotfs_organization org ON org.id = base.organization_id | ||
77 | - LEFT JOIN iotfs_video_platform ivp ON ivp.id = base.video_platform_id | 75 | + FROM tk_device_camera base |
76 | + LEFT JOIN tk_organization org ON org.id = base.organization_id | ||
77 | + LEFT JOIN tk_video_platform ivp ON ivp.id = base.video_platform_id | ||
78 | <where> | 78 | <where> |
79 | <if test="tenantId !=null and tenantId !=''"> | 79 | <if test="tenantId !=null and tenantId !=''"> |
80 | AND base.tenant_id = #{tenantId} | 80 | AND base.tenant_id = #{tenantId} |
@@ -23,7 +23,7 @@ | @@ -23,7 +23,7 @@ | ||
23 | <select id="getVideoPlatformPage" resultMap="videoPlatformMap"> | 23 | <select id="getVideoPlatformPage" resultMap="videoPlatformMap"> |
24 | SELECT | 24 | SELECT |
25 | <include refid="basicColumns"/> | 25 | <include refid="basicColumns"/> |
26 | - FROM iotfs_video_platform base | 26 | + FROM tk_video_platform base |
27 | <where> | 27 | <where> |
28 | <if test="tenantId !=null and tenantId !=''"> | 28 | <if test="tenantId !=null and tenantId !=''"> |
29 | AND base.tenant_id = #{tenantId} | 29 | AND base.tenant_id = #{tenantId} |