|
@@ -3,7 +3,6 @@ package org.thingsboard.server.dao.yunteng.impl; |
|
@@ -3,7 +3,6 @@ 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.metadata.IPage;
|
4
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
5
|
import com.fasterxml.jackson.databind.JsonNode;
|
5
|
import com.fasterxml.jackson.databind.JsonNode;
|
6
|
-import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
7
|
import lombok.RequiredArgsConstructor;
|
6
|
import lombok.RequiredArgsConstructor;
|
8
|
import org.apache.commons.lang3.StringUtils;
|
7
|
import org.apache.commons.lang3.StringUtils;
|
9
|
import org.springframework.beans.BeanUtils;
|
8
|
import org.springframework.beans.BeanUtils;
|
|
@@ -13,8 +12,6 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
|
@@ -13,8 +12,6 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; |
13
|
import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
|
12
|
import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
|
14
|
import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
|
13
|
import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
|
15
|
import org.thingsboard.server.common.data.yunteng.dto.*;
|
14
|
import org.thingsboard.server.common.data.yunteng.dto.*;
|
16
|
-import org.thingsboard.server.common.data.yunteng.enums.DataTypeEnum;
|
|
|
17
|
-import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;
|
|
|
18
|
import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum;
|
15
|
import org.thingsboard.server.common.data.yunteng.enums.FunctionTypeEnum;
|
19
|
import org.thingsboard.server.common.data.yunteng.enums.StatusEnum;
|
16
|
import org.thingsboard.server.common.data.yunteng.enums.StatusEnum;
|
20
|
import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
|
17
|
import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
|
|
@@ -159,45 +156,41 @@ public class ThingsModelServiceImpl |
|
@@ -159,45 +156,41 @@ public class ThingsModelServiceImpl |
159
|
}
|
156
|
}
|
160
|
List<ThingsModelDTO> thingsModelDTOS =
|
157
|
List<ThingsModelDTO> thingsModelDTOS =
|
161
|
selectByDeviceProfileId(typeEnum, tenantId, deviceProfileId);
|
158
|
selectByDeviceProfileId(typeEnum, tenantId, deviceProfileId);
|
162
|
- if(null ==thingsModelDTOS){
|
159
|
+ if (null == thingsModelDTOS) {
|
163
|
return jsonNode;
|
160
|
return jsonNode;
|
164
|
}
|
161
|
}
|
165
|
- DeviceTypeEnum deviceType = deviceProfileDTO.getDeviceType();
|
|
|
166
|
- if (typeEnum.equals(FunctionTypeEnum.properties)) {
|
|
|
167
|
- jsonNode = getAttributeTSL(thingsModelDTOS, deviceType);
|
|
|
168
|
- } else {
|
|
|
169
|
- if (typeEnum.equals(FunctionTypeEnum.services)) {
|
|
|
170
|
- List<ServiceModelDTO> serviceList = new ArrayList<>();
|
|
|
171
|
- if (!thingsModelDTOS.isEmpty()) {
|
|
|
172
|
- for (ThingsModelDTO thingsModelDTO : thingsModelDTOS) {
|
|
|
173
|
- ServiceModelDTO serviceDTO = new ServiceModelDTO();
|
|
|
174
|
- BeanUtils.copyProperties(thingsModelDTO, serviceDTO);
|
|
|
175
|
- JsonNode functionJson = thingsModelDTO.getFunctionJson();
|
|
|
176
|
- if (null != functionJson) {
|
162
|
+ List<Object> serviceList = new ArrayList<>();
|
|
|
163
|
+ if (!thingsModelDTOS.isEmpty()) {
|
|
|
164
|
+ for (ThingsModelDTO thingsModelDTO : thingsModelDTOS) {
|
|
|
165
|
+ JsonNode functionJson = thingsModelDTO.getFunctionJson();
|
|
|
166
|
+ if (null != functionJson) {
|
|
|
167
|
+ switch (typeEnum) {
|
|
|
168
|
+ case properties:
|
|
|
169
|
+ AttributeModelDTO attributeModelDTO = new AttributeModelDTO();
|
|
|
170
|
+ BeanUtils.copyProperties(thingsModelDTO, attributeModelDTO);
|
|
|
171
|
+ attributeModelDTO.setSpecs(functionJson.get("dataType"));
|
|
|
172
|
+ serviceList.add(attributeModelDTO);
|
|
|
173
|
+ break;
|
|
|
174
|
+ case services:
|
|
|
175
|
+ ServiceModelDTO serviceDTO = new ServiceModelDTO();
|
|
|
176
|
+ BeanUtils.copyProperties(thingsModelDTO, serviceDTO);
|
177
|
serviceDTO.setInputData(functionJson.get("inputData"));
|
177
|
serviceDTO.setInputData(functionJson.get("inputData"));
|
178
|
serviceDTO.setOutputData(functionJson.get("outputData"));
|
178
|
serviceDTO.setOutputData(functionJson.get("outputData"));
|
179
|
- }
|
|
|
180
|
- serviceList.add(serviceDTO);
|
|
|
181
|
- }
|
|
|
182
|
- }
|
|
|
183
|
- jsonNode = JacksonUtil.convertValue(serviceList, JsonNode.class);
|
|
|
184
|
- } else {
|
|
|
185
|
- List<EventModelDTO> eventList = new ArrayList<>();
|
|
|
186
|
- if (!thingsModelDTOS.isEmpty()) {
|
|
|
187
|
- for (ThingsModelDTO thingsModelDTO : thingsModelDTOS) {
|
|
|
188
|
- EventModelDTO eventDTO = new EventModelDTO();
|
|
|
189
|
- BeanUtils.copyProperties(thingsModelDTO, eventDTO);
|
|
|
190
|
- JsonNode functionJson = thingsModelDTO.getFunctionJson();
|
|
|
191
|
- if (null != functionJson) {
|
179
|
+ serviceList.add(serviceDTO);
|
|
|
180
|
+ break;
|
|
|
181
|
+ case events:
|
|
|
182
|
+ EventModelDTO eventDTO = new EventModelDTO();
|
|
|
183
|
+ BeanUtils.copyProperties(thingsModelDTO, eventDTO);
|
192
|
eventDTO.setOutputData(functionJson.get("outputData"));
|
184
|
eventDTO.setOutputData(functionJson.get("outputData"));
|
193
|
- }
|
185
|
+ serviceList.add(eventDTO);
|
|
|
186
|
+ break;
|
|
|
187
|
+ default:
|
|
|
188
|
+ break;
|
194
|
}
|
189
|
}
|
195
|
}
|
190
|
}
|
196
|
- jsonNode = JacksonUtil.convertValue(eventList, JsonNode.class);
|
|
|
197
|
}
|
191
|
}
|
198
|
}
|
192
|
}
|
199
|
-
|
|
|
200
|
- return jsonNode;
|
193
|
+ return JacksonUtil.convertValue(serviceList, JsonNode.class);
|
201
|
}
|
194
|
}
|
202
|
|
195
|
|
203
|
@Override
|
196
|
@Override
|
|
@@ -206,53 +199,6 @@ public class ThingsModelServiceImpl |
|
@@ -206,53 +199,6 @@ public class ThingsModelServiceImpl |
206
|
return baseMapper.changeTSLStatus(deviceProfileId, tenantId, status);
|
199
|
return baseMapper.changeTSLStatus(deviceProfileId, tenantId, status);
|
207
|
}
|
200
|
}
|
208
|
|
201
|
|
209
|
- private JsonNode getAttributeTSL(
|
|
|
210
|
- List<ThingsModelDTO> thingsModelDTOS, DeviceTypeEnum deviceType) {
|
|
|
211
|
- Map<String, List<ObjectNode>> attributeMap = new HashMap<>();
|
|
|
212
|
- JsonNode jsonNode;
|
|
|
213
|
- List<ObjectNode> list = new ArrayList<>();
|
|
|
214
|
- for (ThingsModelDTO model : thingsModelDTOS) {
|
|
|
215
|
- ObjectNode objectNode = JacksonUtil.newObjectNode();
|
|
|
216
|
- JsonNode dataType = model.getFunctionJson().get("dataType");
|
|
|
217
|
- if (null != dataType) {
|
|
|
218
|
- DataTypeEnum type =
|
|
|
219
|
- dataType.get("type") != null
|
|
|
220
|
- ? DataTypeEnum.valueOf(dataType.get("type").asText())
|
|
|
221
|
- : null;
|
|
|
222
|
- String identifier = model.getIdentifier();
|
|
|
223
|
- switch (Objects.requireNonNull(type)) {
|
|
|
224
|
- case INT:
|
|
|
225
|
- objectNode.put(identifier, 0);
|
|
|
226
|
- break;
|
|
|
227
|
- case BOOL:
|
|
|
228
|
- objectNode.put(identifier, "0");
|
|
|
229
|
- break;
|
|
|
230
|
- case DOUBLE:
|
|
|
231
|
- objectNode.put(identifier, 0.00);
|
|
|
232
|
- break;
|
|
|
233
|
- case TEXT:
|
|
|
234
|
- objectNode.put(identifier, "text");
|
|
|
235
|
- break;
|
|
|
236
|
- case STRUCT:
|
|
|
237
|
- objectNode.putPOJO(identifier, dataType.get("specs"));
|
|
|
238
|
- break;
|
|
|
239
|
- default:
|
|
|
240
|
- objectNode.put(identifier, "value");
|
|
|
241
|
- break;
|
|
|
242
|
- }
|
|
|
243
|
- }
|
|
|
244
|
- list.add(objectNode);
|
|
|
245
|
- }
|
|
|
246
|
- if (deviceType.equals(DeviceTypeEnum.SENSOR)) {
|
|
|
247
|
- attributeMap.put("网关子设备名称", list);
|
|
|
248
|
- jsonNode = JacksonUtil.convertValue(attributeMap, JsonNode.class);
|
|
|
249
|
- } else {
|
|
|
250
|
- jsonNode = JacksonUtil.convertValue(list, JsonNode.class);
|
|
|
251
|
- }
|
|
|
252
|
-
|
|
|
253
|
- return jsonNode;
|
|
|
254
|
- }
|
|
|
255
|
-
|
|
|
256
|
private boolean checkIdentifier(
|
202
|
private boolean checkIdentifier(
|
257
|
String deviceProfileId, String identifier, boolean isAdd, String thingsModelId) {
|
203
|
String deviceProfileId, String identifier, boolean isAdd, String thingsModelId) {
|
258
|
TkThingsModelEntity entity =
|
204
|
TkThingsModelEntity entity =
|