Commit df9ada88e91f82469f297f3c443ba58e0c816c1d

Authored by xp.Huang
2 parents a71d5b7e e3aa3c51

Merge branch '20220318' into 'master'

20220318

See merge request huang/thingsboard3.3.2!67
@@ -3,15 +3,12 @@ package org.thingsboard.server.dao.yunteng.impl; @@ -3,15 +3,12 @@ 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.core.type.TypeReference;  
7 import com.fasterxml.jackson.databind.JsonNode; 6 import com.fasterxml.jackson.databind.JsonNode;
8 -import com.fasterxml.jackson.databind.ObjectMapper;  
9 import com.fasterxml.jackson.databind.node.ObjectNode; 7 import com.fasterxml.jackson.databind.node.ObjectNode;
10 import lombok.RequiredArgsConstructor; 8 import lombok.RequiredArgsConstructor;
11 import org.apache.commons.lang3.StringUtils; 9 import org.apache.commons.lang3.StringUtils;
12 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
13 import org.springframework.transaction.annotation.Transactional; 11 import org.springframework.transaction.annotation.Transactional;
14 -import org.thingsboard.server.common.data.id.EntityId;  
15 import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; 12 import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
16 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; 13 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
17 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 14 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
@@ -22,8 +19,6 @@ import org.thingsboard.server.common.data.yunteng.enums.TriggerTypeEnum; @@ -22,8 +19,6 @@ import org.thingsboard.server.common.data.yunteng.enums.TriggerTypeEnum;
22 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; 19 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
23 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; 20 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
24 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 21 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
25 -import org.thingsboard.server.dao.exception.DataValidationException;  
26 -import org.thingsboard.server.dao.yunteng.ConvertConfig;  
27 import org.thingsboard.server.dao.yunteng.entities.*; 22 import org.thingsboard.server.dao.yunteng.entities.*;
28 import org.thingsboard.server.dao.yunteng.mapper.*; 23 import org.thingsboard.server.dao.yunteng.mapper.*;
29 import org.thingsboard.server.dao.yunteng.service.*; 24 import org.thingsboard.server.dao.yunteng.service.*;
@@ -182,8 +177,6 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -182,8 +177,6 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
182 177
183 178
184 } 179 }
185 - } else {  
186 - return;  
187 } 180 }
188 181
189 // 先删除触发器 182 // 先删除触发器
@@ -194,15 +187,17 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -194,15 +187,17 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
194 187
195 188
196 // 如果获取的触发器不为空,进行添加操作 189 // 如果获取的触发器不为空,进行添加操作
197 - List<Trigger> triggers =  
198 - triggerDTOS.stream()  
199 - .map(triggerDTO -> {  
200 - triggerDTO.setTenantId(sceneLinkage.getTenantId());  
201 - triggerDTO.setSceneLinkageId(sceneLinkage.getId());  
202 - return triggerDTO.getEntity(Trigger.class);  
203 - })  
204 - .collect(Collectors.toList());  
205 - triggerService.insertBatch(triggers, 1000); 190 + if(triggerDTOS != null && !triggerDTOS.isEmpty()){
  191 + List<Trigger> triggers =
  192 + triggerDTOS.stream()
  193 + .map(triggerDTO -> {
  194 + triggerDTO.setTenantId(sceneLinkage.getTenantId());
  195 + triggerDTO.setSceneLinkageId(sceneLinkage.getId());
  196 + return triggerDTO.getEntity(Trigger.class);
  197 + })
  198 + .collect(Collectors.toList());
  199 + triggerService.insertBatch(triggers, 1000);
  200 + }
206 } 201 }
207 202
208 /** 203 /**
@@ -238,22 +233,24 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -238,22 +233,24 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
238 .lambda() 233 .lambda()
239 .eq(StringUtils.isNoneBlank(sceneLinkageDTO.getId()), DoAction::getSceneLinkageId, sceneLinkageDTO.getId())); 234 .eq(StringUtils.isNoneBlank(sceneLinkageDTO.getId()), DoAction::getSceneLinkageId, sceneLinkageDTO.getId()));
240 235
  236 + if (actionDTOS != null && !actionDTOS.isEmpty()) {
  237 + List<DoAction> collectA =
  238 + actionDTOS.stream()
  239 + .map(doActionDTO -> {
  240 + doActionDTO.setTenantId(sceneLinkageDTO.getTenantId());
  241 + doActionDTO.setSceneLinkageId(sceneLinkageDTO.getId());
  242 + if (ActionTypeEnum.DEVICE_OUT.equals(doActionDTO.getOutTarget())) {
  243 + ObjectNode doContext = JacksonUtil.newObjectNode();
  244 + doContext.put("method", "methodThingskit");
  245 + doContext.put("params", doActionDTO.getDoContext());
  246 + doActionDTO.setDoContext(doContext);
  247 + }
  248 + return doActionDTO.getEntity(DoAction.class);
  249 + })
  250 + .collect(Collectors.toList());
  251 + doActionService.insertBatch(collectA, 1000);
241 252
242 - List<DoAction> collectA =  
243 - sceneLinkageDTO.getDoActions().stream()  
244 - .map(doActionDTO -> {  
245 - doActionDTO.setTenantId(sceneLinkageDTO.getTenantId());  
246 - doActionDTO.setSceneLinkageId(sceneLinkageDTO.getId());  
247 - if (ActionTypeEnum.DEVICE_OUT.equals(doActionDTO.getOutTarget())) {  
248 - ObjectNode doContext = JacksonUtil.newObjectNode();  
249 - doContext.put("method", "methodThingskit");  
250 - doContext.put("params", doActionDTO.getDoContext());  
251 - doActionDTO.setDoContext(doContext);  
252 - }  
253 - return doActionDTO.getEntity(DoAction.class);  
254 - })  
255 - .collect(Collectors.toList());  
256 - doActionService.insertBatch(collectA, 1000); 253 + }
257 254
258 255
259 } 256 }
@@ -293,17 +290,20 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -293,17 +290,20 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
293 290
294 291
295 // 4.批量新增执行条件 292 // 4.批量新增执行条件
296 - List<DoCondition> collectC =  
297 - sceneLinkageDTO.getDoConditions().stream()  
298 - .map(doConditionDTO -> { 293 + if (conditionDTOS != null && !conditionDTOS.isEmpty()) {
  294 + List<DoCondition> collectC =
  295 + conditionDTOS.stream()
  296 + .map(doConditionDTO -> {
  297 +
  298 + doConditionDTO.setTenantId(sceneLinkageDTO.getTenantId());
  299 + doConditionDTO.setSceneLinkageId(sceneLinkageDTO.getId());
  300 + return doConditionDTO.getEntity(DoCondition.class);
  301 + }
  302 + )
  303 + .collect(Collectors.toList());
  304 + doConditionService.insertBatch(collectC, 1000);
299 305
300 - doConditionDTO.setTenantId(sceneLinkageDTO.getTenantId());  
301 - doConditionDTO.setSceneLinkageId(sceneLinkageDTO.getId());  
302 - return doConditionDTO.getEntity(DoCondition.class);  
303 - }  
304 - )  
305 - .collect(Collectors.toList());  
306 - doConditionService.insertBatch(collectC, 1000); 306 + }
307 } 307 }
308 308
309 /** 309 /**
@@ -436,7 +436,8 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap @@ -436,7 +436,8 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap
436 return null; 436 return null;
437 } 437 }
438 438
439 - List<DeviceDTO> organizationDevices = findDeviceList(currentSceneId, tenantId, customerId); 439 + SceneLinkage self = baseMapper.selectById(currentSceneId);
  440 + List<DeviceDTO> organizationDevices = findDeviceList(self.getOrganizationId(), tenantId, customerId);
440 List<String> allDevices = new ArrayList<>(); 441 List<String> allDevices = new ArrayList<>();
441 for (DeviceDTO item : organizationDevices) { 442 for (DeviceDTO item : organizationDevices) {
442 allDevices.add(item.getTbDeviceId()); 443 allDevices.add(item.getTbDeviceId());
@@ -49,6 +49,7 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan @@ -49,6 +49,7 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan
49 private final SceneLinkageService sceneLinkageService; 49 private final SceneLinkageService sceneLinkageService;
50 private final DoActionService doActionService; 50 private final DoActionService doActionService;
51 private final DoConditionService doConditionService; 51 private final DoConditionService doConditionService;
  52 + private final TriggerService triggerService;
52 private final ConvertConfigService convertConfigService; 53 private final ConvertConfigService convertConfigService;
53 private final SysAppDesignService sysAppDesignService; 54 private final SysAppDesignService sysAppDesignService;
54 private final SysPlatformDesignService sysPlatformDesignService; 55 private final SysPlatformDesignService sysPlatformDesignService;
@@ -150,9 +151,10 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan @@ -150,9 +151,10 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan
150 sysNoticeService.deleteDataByTenantIds(tenantIds); 151 sysNoticeService.deleteDataByTenantIds(tenantIds);
151 sysNoticeUserService.deleteDataByTenantIds(tenantIds); 152 sysNoticeUserService.deleteDataByTenantIds(tenantIds);
152 // 12.DELETE SCENES 153 // 12.DELETE SCENES
  154 + sceneLinkageService.deleteDataByTenantIds(tenantIds);
153 doActionService.deleteDataByTenantIds(tenantIds); 155 doActionService.deleteDataByTenantIds(tenantIds);
154 doConditionService.deleteDataByTenantIds(tenantIds); 156 doConditionService.deleteDataByTenantIds(tenantIds);
155 - sceneLinkageService.deleteDataByTenantIds(tenantIds); 157 + triggerService.deleteDataByTenantIds(tenantIds);
156 // 13.DELETE CONVERT_CONFIG 158 // 13.DELETE CONVERT_CONFIG
157 convertConfigService.deleteDataByTenantIds(tenantIds); 159 convertConfigService.deleteDataByTenantIds(tenantIds);
158 // 14.DELETE APP_DESIGN PLATFORM_DESIGN ENTERPRISE 160 // 14.DELETE APP_DESIGN PLATFORM_DESIGN ENTERPRISE
@@ -11,6 +11,7 @@ package org.thingsboard.server.dao.yunteng.mapper; @@ -11,6 +11,7 @@ package org.thingsboard.server.dao.yunteng.mapper;
11 * @Copyright 2016-2018 - Powered By 云腾五洲 11 * @Copyright 2016-2018 - Powered By 云腾五洲
12 */ 12 */
13 13
  14 +import org.apache.commons.lang3.StringUtils;
14 import org.apache.ibatis.type.BaseTypeHandler; 15 import org.apache.ibatis.type.BaseTypeHandler;
15 import org.apache.ibatis.type.JdbcType; 16 import org.apache.ibatis.type.JdbcType;
16 17
@@ -20,29 +21,34 @@ import java.sql.ResultSet; @@ -20,29 +21,34 @@ import java.sql.ResultSet;
20 import java.sql.SQLException; 21 import java.sql.SQLException;
21 import java.util.Arrays; 22 import java.util.Arrays;
22 import java.util.List; 23 import java.util.List;
  24 +import java.util.Optional;
23 25
24 public class ListStringTypeHandler extends BaseTypeHandler { 26 public class ListStringTypeHandler extends BaseTypeHandler {
25 27
26 @Override 28 @Override
27 public Object getNullableResult(ResultSet rs, String columnName) 29 public Object getNullableResult(ResultSet rs, String columnName)
28 throws SQLException { 30 throws SQLException {
29 - return Arrays.asList(rs.getString(columnName).split(",")); 31 +
  32 + String value = rs.getString(columnName);
  33 + return value ==null?null:Arrays.asList(value.split(","));
30 } 34 }
31 35
32 @Override 36 @Override
33 public Object getNullableResult(ResultSet resultSet, int i) throws SQLException { 37 public Object getNullableResult(ResultSet resultSet, int i) throws SQLException {
34 - return Arrays.asList(resultSet.getString(i).split(",")); 38 + String value = resultSet.getString(i);
  39 + return value ==null?null:Arrays.asList(value.split(","));
35 } 40 }
36 41
37 @Override 42 @Override
38 public Object getNullableResult(CallableStatement cs, int columnIndex) 43 public Object getNullableResult(CallableStatement cs, int columnIndex)
39 throws SQLException { 44 throws SQLException {
40 - return Arrays.asList(cs.getString(columnIndex).split(",")); 45 + String value = cs.getString(columnIndex);
  46 + return value ==null?null:Arrays.asList(value.split(","));
41 } 47 }
42 48
43 @Override 49 @Override
44 public void setNonNullParameter(PreparedStatement ps, int i, 50 public void setNonNullParameter(PreparedStatement ps, int i,
45 Object parameter, JdbcType jdbcType) throws SQLException { 51 Object parameter, JdbcType jdbcType) throws SQLException {
46 - ps.setString(i, ((List) parameter).toString()); 52 + ps.setString(i, StringUtils.join((List) parameter,","));
47 } 53 }
48 } 54 }