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 3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 5 import com.baomidou.mybatisplus.core.metadata.IPage;
6   -import com.fasterxml.jackson.core.type.TypeReference;
7 6 import com.fasterxml.jackson.databind.JsonNode;
8   -import com.fasterxml.jackson.databind.ObjectMapper;
9 7 import com.fasterxml.jackson.databind.node.ObjectNode;
10 8 import lombok.RequiredArgsConstructor;
11 9 import org.apache.commons.lang3.StringUtils;
12 10 import org.springframework.stereotype.Service;
13 11 import org.springframework.transaction.annotation.Transactional;
14   -import org.thingsboard.server.common.data.id.EntityId;
15 12 import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
16 13 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
17 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 19 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
23 20 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
24 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 22 import org.thingsboard.server.dao.yunteng.entities.*;
28 23 import org.thingsboard.server.dao.yunteng.mapper.*;
29 24 import org.thingsboard.server.dao.yunteng.service.*;
... ... @@ -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 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 233 .lambda()
239 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 290
294 291
295 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 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 441 List<String> allDevices = new ArrayList<>();
441 442 for (DeviceDTO item : organizationDevices) {
442 443 allDevices.add(item.getTbDeviceId());
... ...
... ... @@ -49,6 +49,7 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan
49 49 private final SceneLinkageService sceneLinkageService;
50 50 private final DoActionService doActionService;
51 51 private final DoConditionService doConditionService;
  52 + private final TriggerService triggerService;
52 53 private final ConvertConfigService convertConfigService;
53 54 private final SysAppDesignService sysAppDesignService;
54 55 private final SysPlatformDesignService sysPlatformDesignService;
... ... @@ -150,9 +151,10 @@ public class YtTenantServiceImpl extends AbstractBaseService<TenantMapper, Tenan
150 151 sysNoticeService.deleteDataByTenantIds(tenantIds);
151 152 sysNoticeUserService.deleteDataByTenantIds(tenantIds);
152 153 // 12.DELETE SCENES
  154 + sceneLinkageService.deleteDataByTenantIds(tenantIds);
153 155 doActionService.deleteDataByTenantIds(tenantIds);
154 156 doConditionService.deleteDataByTenantIds(tenantIds);
155   - sceneLinkageService.deleteDataByTenantIds(tenantIds);
  157 + triggerService.deleteDataByTenantIds(tenantIds);
156 158 // 13.DELETE CONVERT_CONFIG
157 159 convertConfigService.deleteDataByTenantIds(tenantIds);
158 160 // 14.DELETE APP_DESIGN PLATFORM_DESIGN ENTERPRISE
... ...
... ... @@ -11,6 +11,7 @@ package org.thingsboard.server.dao.yunteng.mapper;
11 11 * @Copyright 2016-2018 - Powered By 云腾五洲
12 12 */
13 13
  14 +import org.apache.commons.lang3.StringUtils;
14 15 import org.apache.ibatis.type.BaseTypeHandler;
15 16 import org.apache.ibatis.type.JdbcType;
16 17
... ... @@ -20,29 +21,34 @@ import java.sql.ResultSet;
20 21 import java.sql.SQLException;
21 22 import java.util.Arrays;
22 23 import java.util.List;
  24 +import java.util.Optional;
23 25
24 26 public class ListStringTypeHandler extends BaseTypeHandler {
25 27
26 28 @Override
27 29 public Object getNullableResult(ResultSet rs, String columnName)
28 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 36 @Override
33 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 42 @Override
38 43 public Object getNullableResult(CallableStatement cs, int columnIndex)
39 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 49 @Override
44 50 public void setNonNullParameter(PreparedStatement ps, int i,
45 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 }
... ...