Commit 19c4252c7a67bcef3f2280979e562bda14edbc01

Authored by 芯火源
1 parent 055a8b41

fix: 命令下发表单数据扩展

新增设备名称
... ... @@ -83,18 +83,10 @@ public abstract class AbstractRpcController extends BaseController {
83 83 protected DeferredResult<ResponseEntity> handleDeviceRPCRequest(boolean oneWay, DeviceId deviceId, String requestBody, HttpStatus timeoutStatus, HttpStatus noActiveConnectionStatus) throws ThingsboardException {
84 84 try {
85 85 JsonNode rpcRequestBody = JacksonUtil.toJsonNode(requestBody);
86   - ToDeviceRpcRequestBody body = new ToDeviceRpcRequestBody(rpcRequestBody.get("method").asText(), JacksonUtil.toString(rpcRequestBody.get("params")));
87 86 SecurityUser currentUser = getCurrentUser();
88   - TenantId tenantId = currentUser.getTenantId();
89   - final DeferredResult<ResponseEntity> response = new DeferredResult<>();
90   - long timeout = rpcRequestBody.has(DataConstants.TIMEOUT) ? rpcRequestBody.get(DataConstants.TIMEOUT).asLong() : defaultTimeout;
91   - long expTime = rpcRequestBody.has(DataConstants.EXPIRATION_TIME) ? rpcRequestBody.get(DataConstants.EXPIRATION_TIME).asLong() : System.currentTimeMillis() + Math.max(minTimeout, timeout);
92   - UUID rpcRequestUUID = rpcRequestBody.has("requestUUID") ? UUID.fromString(rpcRequestBody.get("requestUUID").asText()) : UUID.randomUUID();
93   - boolean persisted = rpcRequestBody.has(DataConstants.PERSISTENT) && rpcRequestBody.get(DataConstants.PERSISTENT).asBoolean();
94   -
95 87
96 88 //Thingskit function
97   - DeviceDTO tkDevice = tkDeviceService.findDeviceInfoByTbDeviceId(currentUser.getCurrentTenantId(), deviceId.getId().toString());
  89 + DeviceDTO targetDevice = tkDeviceService.findDeviceInfoByTbDeviceId(currentUser.getCurrentTenantId(), deviceId.getId().toString());
98 90 ObjectNode additional = (ObjectNode) rpcRequestBody.get(DataConstants.ADDITIONAL_INFO);
99 91 if(additional == null){
100 92 additional = JacksonUtil.newObjectNode();
... ... @@ -102,9 +94,20 @@ public abstract class AbstractRpcController extends BaseController {
102 94 if(!additional.has(FastIotConstants.Rpc.TARGET_ID)){
103 95 additional.put(FastIotConstants.Rpc.TARGET_ID, deviceId.getId().toString());
104 96 }
105   - DeviceId realDevice = DeviceTypeEnum.SENSOR == tkDevice.getDeviceType()?new DeviceId(UUID.fromString(tkDevice.getGatewayId())):deviceId;
  97 + String methodName = rpcRequestBody.get("method").asText();
  98 + ObjectNode methodParams = (ObjectNode) rpcRequestBody.get("params");
  99 + methodParams.put(FastIotConstants.Rpc.TARGET_NAME,targetDevice.getName());
  100 + DeviceId realDevice = DeviceTypeEnum.SENSOR == targetDevice.getDeviceType()?new DeviceId(UUID.fromString(targetDevice.getGatewayId())):deviceId;
106 101 String additionalInfo = JacksonUtil.toString(additional);
107 102
  103 + ToDeviceRpcRequestBody body = new ToDeviceRpcRequestBody(methodName, JacksonUtil.toString(methodParams));
  104 + TenantId tenantId = currentUser.getTenantId();
  105 + final DeferredResult<ResponseEntity> response = new DeferredResult<>();
  106 + long timeout = rpcRequestBody.has(DataConstants.TIMEOUT) ? rpcRequestBody.get(DataConstants.TIMEOUT).asLong() : defaultTimeout;
  107 + long expTime = rpcRequestBody.has(DataConstants.EXPIRATION_TIME) ? rpcRequestBody.get(DataConstants.EXPIRATION_TIME).asLong() : System.currentTimeMillis() + Math.max(minTimeout, timeout);
  108 + UUID rpcRequestUUID = rpcRequestBody.has("requestUUID") ? UUID.fromString(rpcRequestBody.get("requestUUID").asText()) : UUID.randomUUID();
  109 + boolean persisted = rpcRequestBody.has(DataConstants.PERSISTENT) && rpcRequestBody.get(DataConstants.PERSISTENT).asBoolean();
  110 +
108 111 Integer retries = rpcRequestBody.has(DataConstants.RETRIES) ? rpcRequestBody.get(DataConstants.RETRIES).asInt() : null;
109 112 accessValidator.validate(currentUser, Operation.RPC_CALL, realDevice, new HttpValidationCallback(response, new FutureCallback<>() {
110 113 @Override
... ...
... ... @@ -169,5 +169,7 @@ public interface FastIotConstants {
169 169 public static String PARAMS_NAME = "params";
170 170 /**实控设备*/
171 171 public static String TARGET_ID = "target";
  172 + /**实控设备名称*/
  173 + public static String TARGET_NAME = "deviceName";
172 174 }
173 175 }
... ...