Commit 59e99111b977a3a643907282e00e4298dbb1c518

Authored by 芯火源
1 parent 81587b8d

fix: 场景联动给网关子设备下发的命令记录显示到网关设备的问题修复

1 package org.thingsboard.server.dao.yunteng.impl; 1 package org.thingsboard.server.dao.yunteng.impl;
2 2
3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import java.util.ArrayList;
  5 +import java.util.List;
  6 +import java.util.Set;
  7 +import java.util.stream.Collectors;
4 import lombok.RequiredArgsConstructor; 8 import lombok.RequiredArgsConstructor;
5 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
6 import org.thingsboard.server.common.data.yunteng.dto.DoActionDTO; 10 import org.thingsboard.server.common.data.yunteng.dto.DoActionDTO;
7 -import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum;  
8 import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum; 11 import org.thingsboard.server.common.data.yunteng.enums.ScopeEnum;
9 import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; 12 import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity;
10 import org.thingsboard.server.dao.yunteng.entities.TkDeviceEntity; 13 import org.thingsboard.server.dao.yunteng.entities.TkDeviceEntity;
@@ -14,44 +17,46 @@ import org.thingsboard.server.dao.yunteng.mapper.DoActionMapper; @@ -14,44 +17,46 @@ import org.thingsboard.server.dao.yunteng.mapper.DoActionMapper;
14 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 17 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
15 import org.thingsboard.server.dao.yunteng.service.DoActionService; 18 import org.thingsboard.server.dao.yunteng.service.DoActionService;
16 19
17 -import java.util.ArrayList;  
18 -import java.util.List;  
19 -import java.util.Set;  
20 -import java.util.stream.Collectors;  
21 -  
22 -/** @Description @Author cxy @Date 2021/12/6 20:23 */ 20 +/**
  21 + * @Description @Author cxy @Date 2021/12/6 20:23
  22 + */
23 @Service 23 @Service
24 @RequiredArgsConstructor 24 @RequiredArgsConstructor
25 public class TkDoActionServiceImpl extends AbstractBaseService<DoActionMapper, TkDoActionEntity> 25 public class TkDoActionServiceImpl extends AbstractBaseService<DoActionMapper, TkDoActionEntity>
26 implements DoActionService { 26 implements DoActionService {
27 private final DeviceMapper deviceMapper; 27 private final DeviceMapper deviceMapper;
  28 +
28 @Override 29 @Override
29 public List<TkDoActionEntity> getActionsByAll(String sceneId) { 30 public List<TkDoActionEntity> getActionsByAll(String sceneId) {
30 LambdaQueryWrapper filter = 31 LambdaQueryWrapper filter =
31 - new LambdaQueryWrapper<TkDoActionEntity>().eq(TkDoActionEntity::getSceneLinkageId, sceneId).eq(TkDoActionEntity::getEntityType, ScopeEnum.ALL); 32 + new LambdaQueryWrapper<TkDoActionEntity>()
  33 + .eq(TkDoActionEntity::getSceneLinkageId, sceneId)
  34 + .eq(TkDoActionEntity::getEntityType, ScopeEnum.ALL);
32 return baseMapper.selectList(filter); 35 return baseMapper.selectList(filter);
33 } 36 }
34 37
35 -  
36 @Override 38 @Override
37 public List<TkDoActionEntity> getActionsByPart(String sceneId) { 39 public List<TkDoActionEntity> getActionsByPart(String sceneId) {
38 LambdaQueryWrapper filter = 40 LambdaQueryWrapper filter =
39 - new LambdaQueryWrapper<TkDoActionEntity>().eq(TkDoActionEntity::getSceneLinkageId, sceneId).eq(TkDoActionEntity::getEntityType, ScopeEnum.PART); 41 + new LambdaQueryWrapper<TkDoActionEntity>()
  42 + .eq(TkDoActionEntity::getSceneLinkageId, sceneId)
  43 + .eq(TkDoActionEntity::getEntityType, ScopeEnum.PART);
40 List<TkDoActionEntity> source = baseMapper.selectList(filter); 44 List<TkDoActionEntity> source = baseMapper.selectList(filter);
41 - return source.stream().map(t ->{  
42 - List<TkDeviceEntity> partDevices = deviceMapper.selectList(new LambdaQueryWrapper<TkDeviceEntity>().in(TkDeviceEntity::getTbDeviceId,t.getDeviceId()));  
43 - List<String> deviceId = new ArrayList<>();  
44 - for(TkDeviceEntity item : partDevices){  
45 - if(DeviceTypeEnum.SENSOR.equals(item.getDeviceType())){  
46 - deviceId.add(item.getGatewayId());  
47 - }else{  
48 - deviceId.add(item.getTbDeviceId());  
49 - }  
50 - }  
51 - t.setDeviceId(deviceId);  
52 - return t;  
53 - }).collect(Collectors.toList());  
54 - 45 + return source.stream()
  46 + .map(
  47 + t -> {
  48 + List<TkDeviceEntity> partDevices =
  49 + deviceMapper.selectList(
  50 + new LambdaQueryWrapper<TkDeviceEntity>()
  51 + .in(TkDeviceEntity::getTbDeviceId, t.getDeviceId()));
  52 + List<String> deviceId = new ArrayList<>();
  53 + for (TkDeviceEntity item : partDevices) {
  54 + deviceId.add(item.getTbDeviceId());
  55 + }
  56 + t.setDeviceId(deviceId);
  57 + return t;
  58 + })
  59 + .collect(Collectors.toList());
55 } 60 }
56 61
57 @Override 62 @Override