Commit 893b5751965fa65efa0e3d41f5e652cc2ca5c0ea
Merge remote-tracking branch 'origin/master_dev' into master_dev
Showing
6 changed files
with
63 additions
and
2 deletions
1 | +-- ************************** | ||
2 | +-- ********表结构升级******** | ||
3 | +-- ************************** | ||
4 | + | ||
5 | + | ||
6 | + | ||
7 | + | ||
8 | + | ||
9 | + | ||
10 | + | ||
11 | + | ||
12 | + | ||
13 | + | ||
14 | + | ||
15 | + | ||
16 | + | ||
17 | +-- ************************** | ||
18 | +-- ********表数据同步******** | ||
19 | +-- ************************** | ||
20 | +UPDATE "public"."tk_data_view_interface" SET "interface_name" = '实时单属性值(适合自定义文字)', "request_content_type" = 2, "request_origin_url" = 'localhost', "request_http_type" = NULL, "request_url" = '/api/ws/plugins/telemetry', "request_params" = '{"requestSQLContent":{},"Params":[{"key":"deviceProfileId,organizationId,entityId,keys","value":"","mores":null,"editDisabled":true,"required":true}]}', "state" = 1, "creator" = '80808080-8080-8080-8080-808080808080', "create_time" = '2023-07-08 10:27:53.643059', "updater" = '80808080-8080-8080-8080-808080808080', "update_time" = '2023-07-08 10:33:29.088113', "tenant_id" = '13814000-1dd2-11b2-8080-808080808080', "remark" = NULL, "interface_type" = 'SYSTEM', "filter" = 'const { | ||
21 | + data | ||
22 | +} = res | ||
23 | + | ||
24 | +//只有一个属性的脚本编写 | ||
25 | + | ||
26 | +//获取服务端返回的keys,比如温度等 | ||
27 | +const keys = Object.keys(data) | ||
28 | + | ||
29 | +//把二维数组转化为对象 | ||
30 | +const transObj = Object.fromEntries(data[keys[0]]) | ||
31 | + | ||
32 | +const key = Object.keys(transObj) | ||
33 | +return new String(transObj[key[0]])' WHERE "id" = '3cf86107-5973-4246-b915-2eda1f3e7cf6'; | ||
34 | + | ||
35 | + | ||
36 | + | ||
37 | + | ||
38 | + | ||
39 | + | ||
40 | + | ||
41 | + | ||
42 | + | ||
43 | +-- **************************** | ||
44 | +-- ********业务功能升级******** | ||
45 | +-- **************************** | ||
46 | + | ||
47 | + | ||
48 | + | ||
49 | +------------------------------------------------------------------------------------ | ||
50 | +---------【租户角色对应菜单同步】--------------------------------------------------------------- | ||
51 | +------------------------------------------------------------------------------------ | ||
52 | +-- 租户角色不能分配超级管理员的权限 | ||
53 | + | ||
54 | + |
@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; | @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; | ||
6 | import org.apache.commons.lang3.StringUtils; | 6 | import org.apache.commons.lang3.StringUtils; |
7 | import org.springframework.http.ResponseEntity; | 7 | import org.springframework.http.ResponseEntity; |
8 | import org.springframework.security.access.prepost.PreAuthorize; | 8 | import org.springframework.security.access.prepost.PreAuthorize; |
9 | +import org.springframework.transaction.annotation.Transactional; | ||
9 | import org.springframework.util.Assert; | 10 | import org.springframework.util.Assert; |
10 | import org.springframework.validation.annotation.Validated; | 11 | import org.springframework.validation.annotation.Validated; |
11 | import org.springframework.web.bind.annotation.*; | 12 | import org.springframework.web.bind.annotation.*; |
@@ -157,6 +158,7 @@ public class TkAdminController extends BaseController { | @@ -157,6 +158,7 @@ public class TkAdminController extends BaseController { | ||
157 | } | 158 | } |
158 | 159 | ||
159 | @PostMapping("/tenant/adminUser") | 160 | @PostMapping("/tenant/adminUser") |
161 | + @Transactional | ||
160 | @PreAuthorize( | 162 | @PreAuthorize( |
161 | "@check.checkPermissions({'SYS_ADMIN','PLATFORM_ADMIN'},{'api:yt:admin:tenant:adminUser:post'})") | 163 | "@check.checkPermissions({'SYS_ADMIN','PLATFORM_ADMIN'},{'api:yt:admin:tenant:adminUser:post'})") |
162 | public ResponseEntity<UserDTO> createTenantAdmin( | 164 | public ResponseEntity<UserDTO> createTenantAdmin( |
@@ -207,6 +209,7 @@ public class TkAdminController extends BaseController { | @@ -207,6 +209,7 @@ public class TkAdminController extends BaseController { | ||
207 | } | 209 | } |
208 | 210 | ||
209 | @PostMapping("tenant/updateOrCreateTenant") | 211 | @PostMapping("tenant/updateOrCreateTenant") |
212 | + @Transactional | ||
210 | public TenantDTO updateOrCreateTenant( | 213 | public TenantDTO updateOrCreateTenant( |
211 | @Validated(UpdateGroup.class) @RequestBody TenantReqDTO tenantReqDTO) | 214 | @Validated(UpdateGroup.class) @RequestBody TenantReqDTO tenantReqDTO) |
212 | throws ThingsboardException { | 215 | throws ThingsboardException { |
@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j; | @@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j; | ||
11 | import org.apache.commons.lang3.StringUtils; | 11 | import org.apache.commons.lang3.StringUtils; |
12 | import org.springframework.http.ResponseEntity; | 12 | import org.springframework.http.ResponseEntity; |
13 | import org.springframework.security.access.prepost.PreAuthorize; | 13 | import org.springframework.security.access.prepost.PreAuthorize; |
14 | +import org.springframework.transaction.annotation.Transactional; | ||
14 | import org.springframework.validation.annotation.Validated; | 15 | import org.springframework.validation.annotation.Validated; |
15 | import org.springframework.web.bind.annotation.*; | 16 | import org.springframework.web.bind.annotation.*; |
16 | import org.thingsboard.rule.engine.api.msg.DeviceCredentialsUpdateNotificationMsg; | 17 | import org.thingsboard.rule.engine.api.msg.DeviceCredentialsUpdateNotificationMsg; |
@@ -63,6 +64,7 @@ public class TkDeviceController extends BaseController { | @@ -63,6 +64,7 @@ public class TkDeviceController extends BaseController { | ||
63 | private final GatewayNotificationsService gatewayNotificationsService; | 64 | private final GatewayNotificationsService gatewayNotificationsService; |
64 | 65 | ||
65 | @PostMapping | 66 | @PostMapping |
67 | + @Transactional | ||
66 | @ApiOperation("创建|编辑") | 68 | @ApiOperation("创建|编辑") |
67 | @PreAuthorize( | 69 | @PreAuthorize( |
68 | "@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:device:post','api:yt:device:update'})") | 70 | "@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:device:post','api:yt:device:update'})") |
@@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor; | @@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor; | ||
7 | import org.apache.commons.lang3.StringUtils; | 7 | import org.apache.commons.lang3.StringUtils; |
8 | import org.springframework.http.ResponseEntity; | 8 | import org.springframework.http.ResponseEntity; |
9 | import org.springframework.security.access.prepost.PreAuthorize; | 9 | import org.springframework.security.access.prepost.PreAuthorize; |
10 | +import org.springframework.transaction.annotation.Transactional; | ||
10 | import org.springframework.validation.annotation.Validated; | 11 | import org.springframework.validation.annotation.Validated; |
11 | import org.springframework.web.bind.annotation.*; | 12 | import org.springframework.web.bind.annotation.*; |
12 | import org.thingsboard.server.common.data.DeviceProfile; | 13 | import org.thingsboard.server.common.data.DeviceProfile; |
@@ -50,6 +51,7 @@ public class TkDeviceProfileController extends BaseController { | @@ -50,6 +51,7 @@ public class TkDeviceProfileController extends BaseController { | ||
50 | private final TkDeviceProfileService tkDeviceProfileService; | 51 | private final TkDeviceProfileService tkDeviceProfileService; |
51 | 52 | ||
52 | @PostMapping() | 53 | @PostMapping() |
54 | + @Transactional | ||
53 | @PreAuthorize( | 55 | @PreAuthorize( |
54 | "@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:deviceProfile:post','api:yt:deviceProfile:update'})") | 56 | "@check.checkPermissions({'TENANT_ADMIN'},{'api:yt:deviceProfile:post','api:yt:deviceProfile:update'})") |
55 | @ApiOperation("创建 | 编辑") | 57 | @ApiOperation("创建 | 编辑") |
@@ -124,7 +124,7 @@ public class TbSendRPCRequestNode implements TbNode { | @@ -124,7 +124,7 @@ public class TbSendRPCRequestNode implements TbNode { | ||
124 | params = JacksonUtil.toString(methodParams); | 124 | params = JacksonUtil.toString(methodParams); |
125 | } | 125 | } |
126 | ObjectNode additional = JacksonUtil.newObjectNode(); | 126 | ObjectNode additional = JacksonUtil.newObjectNode(); |
127 | - if(StringUtils.isNotBlank(additionalInfo)){ | 127 | + if(!json.get(DataConstants.ADDITIONAL_INFO).isJsonNull()){ |
128 | additional = (ObjectNode) JacksonUtil.toJsonNode(additionalInfo); | 128 | additional = (ObjectNode) JacksonUtil.toJsonNode(additionalInfo); |
129 | } | 129 | } |
130 | if(!additional.has(FastIotConstants.Rpc.TARGET_ID)){ | 130 | if(!additional.has(FastIotConstants.Rpc.TARGET_ID)){ |
@@ -328,7 +328,7 @@ class ReactState { | @@ -328,7 +328,7 @@ class ReactState { | ||
328 | TbMsgMetaData metaData = msg.getMetaData(); | 328 | TbMsgMetaData metaData = msg.getMetaData(); |
329 | metaData.putValue(DataConstants.PERSISTENT, "true"); | 329 | metaData.putValue(DataConstants.PERSISTENT, "true"); |
330 | metaData.putValue( | 330 | metaData.putValue( |
331 | - FastIotConstants.Rpc.ONEWAY, (callType == CallTypeEnum.SYNC ? true : false) + ""); | 331 | + FastIotConstants.Rpc.ONEWAY, (callType == CallTypeEnum.SYNC ? false : true) + ""); |
332 | for (String id : devices) { | 332 | for (String id : devices) { |
333 | TbMsg newMsg = | 333 | TbMsg newMsg = |
334 | ctx.newMsg( | 334 | ctx.newMsg( |