Commit fa00c013b7f1c43f477810c1af88f1c72f02aaa4

Authored by chenjunyu_1481036421
1 parent f14649cf

feat:组织递归查询增加向上向下参数并更改以前的所有向下

  1 +package org.thingsboard.server.common.data.yunteng.enums;
  2 +
  3 +/** 场景联动动作类型 */
  4 +public enum OrganizationEnum {
  5 + UP,
  6 + DOWN
  7 +}
@@ -12,9 +12,10 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio @@ -12,9 +12,10 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio
12 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 12 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
13 import org.thingsboard.server.common.data.yunteng.dto.BaseDTO; 13 import org.thingsboard.server.common.data.yunteng.dto.BaseDTO;
14 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; 14 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
  15 +import org.thingsboard.server.common.data.yunteng.enums.OrganizationEnum;
15 import org.thingsboard.server.dao.yunteng.entities.TkUserOrganizationMappingEntity; 16 import org.thingsboard.server.dao.yunteng.entities.TkUserOrganizationMappingEntity;
16 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
17 import org.thingsboard.server.dao.yunteng.mapper.UserOrganizationMappingMapper; 17 import org.thingsboard.server.dao.yunteng.mapper.UserOrganizationMappingMapper;
  18 +import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
18 import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService; 19 import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService;
19 20
20 import java.util.ArrayList; 21 import java.util.ArrayList;
@@ -34,12 +35,12 @@ import java.util.stream.Collectors; @@ -34,12 +35,12 @@ import java.util.stream.Collectors;
34 public class SysUserOrganizationMappingServiceImpl implements UserOrganizationMappingService { 35 public class SysUserOrganizationMappingServiceImpl implements UserOrganizationMappingService {
35 36
36 private final UserOrganizationMappingMapper userOrganizationMappingMapper; 37 private final UserOrganizationMappingMapper userOrganizationMappingMapper;
37 - private final OrganizationMapper organizationMapper; 38 + private final TkOrganizationService organizationService;
38 39
39 @Override 40 @Override
40 public List<String> getUserIdByOrganizationIds(String tenantId, String... ids) { 41 public List<String> getUserIdByOrganizationIds(String tenantId, String... ids) {
41 List<String> collect = 42 List<String> collect =
42 - organizationMapper.findOrganizationTreeList(tenantId, List.of(ids)).stream() 43 + organizationService.findOrganizationTreeList(tenantId, OrganizationEnum.UP, List.of(ids)).stream()
43 .map(OrganizationDTO::getId) 44 .map(OrganizationDTO::getId)
44 .collect(Collectors.toList()); 45 .collect(Collectors.toList());
45 if (null == collect || collect.size() == 0) { 46 if (null == collect || collect.size() == 0) {
@@ -105,8 +106,8 @@ public class SysUserOrganizationMappingServiceImpl implements UserOrganizationMa @@ -105,8 +106,8 @@ public class SysUserOrganizationMappingServiceImpl implements UserOrganizationMa
105 List<String> organizationIds = null; 106 List<String> organizationIds = null;
106 if (StringUtils.isNotEmpty(organizationId)) { 107 if (StringUtils.isNotEmpty(organizationId)) {
107 List<OrganizationDTO> organizationList = 108 List<OrganizationDTO> organizationList =
108 - organizationMapper.findOrganizationTreeList(  
109 - tenantId, new HashSet<>(List.of(organizationId))); 109 + organizationService.findOrganizationTreeList(
  110 + tenantId,null, new HashSet<>(List.of(organizationId)));
110 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) { 111 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) {
111 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 112 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
112 } 113 }
@@ -17,8 +17,8 @@ import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; @@ -17,8 +17,8 @@ import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
17 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 17 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
18 import org.thingsboard.server.dao.yunteng.entities.TkAlarmContactEntity; 18 import org.thingsboard.server.dao.yunteng.entities.TkAlarmContactEntity;
19 import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; 19 import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper;
20 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
21 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 20 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  21 +import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
22 import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService; 22 import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService;
23 import org.thingsboard.server.dao.yunteng.service.TkAlarmContactService; 23 import org.thingsboard.server.dao.yunteng.service.TkAlarmContactService;
24 24
@@ -35,7 +35,7 @@ public class TkAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -35,7 +35,7 @@ public class TkAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
35 /** mapper注入 自带方法加入,继承的baseMapper */ 35 /** mapper注入 自带方法加入,继承的baseMapper */
36 private final AlarmContactMapper alarmContactMapper; 36 private final AlarmContactMapper alarmContactMapper;
37 37
38 - private final OrganizationMapper ytOrganizationMapper; 38 + private final TkOrganizationService organizationService;
39 39
40 private final UserOrganizationMappingService userOrganizationMappingService; 40 private final UserOrganizationMappingService userOrganizationMappingService;
41 41
@@ -71,7 +71,7 @@ public class TkAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -71,7 +71,7 @@ public class TkAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
71 ids.add(organizationId); 71 ids.add(organizationId);
72 // 查询该组织的所有子类 72 // 查询该组织的所有子类
73 List<OrganizationDTO> organizationDTOS = 73 List<OrganizationDTO> organizationDTOS =
74 - ytOrganizationMapper.findOrganizationTreeList(tenantId, ids); 74 + organizationService.findOrganizationTreeList(tenantId,null, ids);
75 if (null == organizationDTOS || organizationDTOS.size() == 0) { 75 if (null == organizationDTOS || organizationDTOS.size() == 0) {
76 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 76 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
77 } 77 }
@@ -201,7 +201,7 @@ public class TkAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -201,7 +201,7 @@ public class TkAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
201 ids.add(organizationId); 201 ids.add(organizationId);
202 // 查询该组织的所有子类 202 // 查询该组织的所有子类
203 List<OrganizationDTO> organizationDTOS = 203 List<OrganizationDTO> organizationDTOS =
204 - ytOrganizationMapper.findOrganizationTreeList(tenantId, ids); 204 + organizationService.findOrganizationTreeList(tenantId,null, ids);
205 List<String> queryOrganizationIds = new ArrayList<>(); 205 List<String> queryOrganizationIds = new ArrayList<>();
206 organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId())); 206 organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId()));
207 queryMap.put("organizationIds", queryOrganizationIds); 207 queryMap.put("organizationIds", queryOrganizationIds);
@@ -19,9 +19,9 @@ import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; @@ -19,9 +19,9 @@ import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
19 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 19 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
20 import org.thingsboard.server.dao.model.ModelConstants; 20 import org.thingsboard.server.dao.model.ModelConstants;
21 import org.thingsboard.server.dao.yunteng.entities.TkAlarmEntity; 21 import org.thingsboard.server.dao.yunteng.entities.TkAlarmEntity;
22 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
23 import org.thingsboard.server.dao.yunteng.mapper.TkAlarmMapper; 22 import org.thingsboard.server.dao.yunteng.mapper.TkAlarmMapper;
24 import org.thingsboard.server.dao.yunteng.service.TkAlarmInfoService; 23 import org.thingsboard.server.dao.yunteng.service.TkAlarmInfoService;
  24 +import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
25 25
26 import java.util.ArrayList; 26 import java.util.ArrayList;
27 import java.util.List; 27 import java.util.List;
@@ -39,7 +39,7 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant. @@ -39,7 +39,7 @@ import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.
39 public class TkAlarmInfoServiceImpl implements TkAlarmInfoService { 39 public class TkAlarmInfoServiceImpl implements TkAlarmInfoService {
40 40
41 private final TkAlarmMapper tkJpaAarmDao; 41 private final TkAlarmMapper tkJpaAarmDao;
42 - private final OrganizationMapper organizationMapper; 42 + private final TkOrganizationService organizationService;
43 43
44 @Override 44 @Override
45 public TkPageData<TkAlarmEntity> alarmPage( 45 public TkPageData<TkAlarmEntity> alarmPage(
@@ -64,7 +64,7 @@ public class TkAlarmInfoServiceImpl implements TkAlarmInfoService { @@ -64,7 +64,7 @@ public class TkAlarmInfoServiceImpl implements TkAlarmInfoService {
64 List<String> filter = new ArrayList<>(); 64 List<String> filter = new ArrayList<>();
65 filter.add(organizationId); 65 filter.add(organizationId);
66 List<OrganizationDTO> all = 66 List<OrganizationDTO> all =
67 - organizationMapper.findOrganizationTreeList(tenantId.getId().toString(), filter); 67 + organizationService.findOrganizationTreeList(tenantId.getId().toString(),null, filter);
68 for (OrganizationDTO item : all) { 68 for (OrganizationDTO item : all) {
69 ids.add(item.getId()); 69 ids.add(item.getId());
70 } 70 }
@@ -19,11 +19,11 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; @@ -19,11 +19,11 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
19 import org.thingsboard.server.dao.yunteng.entities.TkAlarmProfileEntity; 19 import org.thingsboard.server.dao.yunteng.entities.TkAlarmProfileEntity;
20 import org.thingsboard.server.dao.yunteng.entities.TkSceneLinkageEntity; 20 import org.thingsboard.server.dao.yunteng.entities.TkSceneLinkageEntity;
21 import org.thingsboard.server.dao.yunteng.mapper.AlarmProfileMapper; 21 import org.thingsboard.server.dao.yunteng.mapper.AlarmProfileMapper;
22 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
23 import org.thingsboard.server.dao.yunteng.mapper.SceneLinkageMapper; 22 import org.thingsboard.server.dao.yunteng.mapper.SceneLinkageMapper;
24 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 23 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
25 import org.thingsboard.server.dao.yunteng.service.AlarmProfileService; 24 import org.thingsboard.server.dao.yunteng.service.AlarmProfileService;
26 import org.thingsboard.server.dao.yunteng.service.DoActionService; 25 import org.thingsboard.server.dao.yunteng.service.DoActionService;
  26 +import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
27 27
28 import java.util.*; 28 import java.util.*;
29 import java.util.stream.Collectors; 29 import java.util.stream.Collectors;
@@ -38,7 +38,7 @@ public class TkAlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileM @@ -38,7 +38,7 @@ public class TkAlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileM
38 38
39 private final SysUserOrganizationMappingServiceImpl userOrganizationMappingService; 39 private final SysUserOrganizationMappingServiceImpl userOrganizationMappingService;
40 40
41 - private final OrganizationMapper ytOrganizationMapper; 41 + private final TkOrganizationService organizationService;
42 private final SceneLinkageMapper sceneLinkageMapper; 42 private final SceneLinkageMapper sceneLinkageMapper;
43 43
44 @Override 44 @Override
@@ -148,8 +148,8 @@ public class TkAlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileM @@ -148,8 +148,8 @@ public class TkAlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileM
148 public List<AlarmProfileDTO> findAlarmProfileByOrganizationId( 148 public List<AlarmProfileDTO> findAlarmProfileByOrganizationId(
149 String organizationId, String tenantId) { 149 String organizationId, String tenantId) {
150 List<OrganizationDTO> organizationList = 150 List<OrganizationDTO> organizationList =
151 - ytOrganizationMapper.findOrganizationTreeList(  
152 - tenantId, new HashSet<>(List.of(organizationId))); 151 + organizationService.findOrganizationTreeList(
  152 + tenantId,null, new HashSet<>(List.of(organizationId)));
153 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) { 153 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) {
154 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 154 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
155 } 155 }
@@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; @@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j;
9 import org.apache.commons.lang3.StringUtils; 9 import org.apache.commons.lang3.StringUtils;
10 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
11 import org.springframework.transaction.annotation.Transactional; 11 import org.springframework.transaction.annotation.Transactional;
12 -import org.thingsboard.server.common.data.EntityType;  
13 import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; 12 import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
14 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; 13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
15 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 14 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
@@ -18,12 +17,10 @@ import org.thingsboard.server.common.data.yunteng.dto.request.ConfigurationConte @@ -18,12 +17,10 @@ import org.thingsboard.server.common.data.yunteng.dto.request.ConfigurationConte
18 import org.thingsboard.server.common.data.yunteng.enums.ViewType; 17 import org.thingsboard.server.common.data.yunteng.enums.ViewType;
19 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; 18 import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil;
20 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 19 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
21 -import org.thingsboard.server.dao.audit.AuditLogLevelMask;  
22 import org.thingsboard.server.dao.yunteng.entities.TkConfigurationCenterEntity; 20 import org.thingsboard.server.dao.yunteng.entities.TkConfigurationCenterEntity;
23 import org.thingsboard.server.dao.yunteng.entities.TkConfigurationContentEntity; 21 import org.thingsboard.server.dao.yunteng.entities.TkConfigurationContentEntity;
24 import org.thingsboard.server.dao.yunteng.mapper.ConfigurationCenterMapper; 22 import org.thingsboard.server.dao.yunteng.mapper.ConfigurationCenterMapper;
25 import org.thingsboard.server.dao.yunteng.mapper.ConfigurationContentMapper; 23 import org.thingsboard.server.dao.yunteng.mapper.ConfigurationContentMapper;
26 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
27 import org.thingsboard.server.dao.yunteng.service.*; 24 import org.thingsboard.server.dao.yunteng.service.*;
28 25
29 import java.util.*; 26 import java.util.*;
@@ -35,7 +32,7 @@ import java.util.stream.Collectors; @@ -35,7 +32,7 @@ import java.util.stream.Collectors;
35 public class TkConfigurationCenterServiceImpl 32 public class TkConfigurationCenterServiceImpl
36 extends AbstractBaseService<ConfigurationCenterMapper, TkConfigurationCenterEntity> 33 extends AbstractBaseService<ConfigurationCenterMapper, TkConfigurationCenterEntity>
37 implements TkConfigurationCenterService { 34 implements TkConfigurationCenterService {
38 - private final OrganizationMapper organizationMapper; 35 + private final TkOrganizationService organizationService;
39 private final TkConfigurationContentService ytConfigurationContentService; 36 private final TkConfigurationContentService ytConfigurationContentService;
40 private final UserOrganizationMappingService userOrganizationMappingService; 37 private final UserOrganizationMappingService userOrganizationMappingService;
41 private final ConfigurationContentMapper configurationContentMapper; 38 private final ConfigurationContentMapper configurationContentMapper;
@@ -50,8 +47,8 @@ public class TkConfigurationCenterServiceImpl @@ -50,8 +47,8 @@ public class TkConfigurationCenterServiceImpl
50 if (null != queryMap.get("organizationId")) { 47 if (null != queryMap.get("organizationId")) {
51 String organizationId = (String) queryMap.get("organizationId"); 48 String organizationId = (String) queryMap.get("organizationId");
52 List<OrganizationDTO> organizationList = 49 List<OrganizationDTO> organizationList =
53 - organizationMapper.findOrganizationTreeList(  
54 - (String) queryMap.get("tenantId"), new HashSet<>(List.of(organizationId))); 50 + organizationService.findOrganizationTreeList(
  51 + (String) queryMap.get("tenantId"),null, new HashSet<>(List.of(organizationId)));
55 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) { 52 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) {
56 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 53 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
57 } 54 }
@@ -19,8 +19,8 @@ import org.thingsboard.server.dao.yunteng.entities.TkDataBoardEntity; @@ -19,8 +19,8 @@ import org.thingsboard.server.dao.yunteng.entities.TkDataBoardEntity;
19 import org.thingsboard.server.dao.yunteng.entities.TkDataComponentEntity; 19 import org.thingsboard.server.dao.yunteng.entities.TkDataComponentEntity;
20 import org.thingsboard.server.dao.yunteng.mapper.DataBoardMapper; 20 import org.thingsboard.server.dao.yunteng.mapper.DataBoardMapper;
21 import org.thingsboard.server.dao.yunteng.mapper.DataComponentMapper; 21 import org.thingsboard.server.dao.yunteng.mapper.DataComponentMapper;
22 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
23 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 22 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  23 +import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
24 import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService; 24 import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService;
25 import org.thingsboard.server.dao.yunteng.service.TkDataBoardService; 25 import org.thingsboard.server.dao.yunteng.service.TkDataBoardService;
26 26
@@ -31,9 +31,9 @@ import java.util.stream.Collectors; @@ -31,9 +31,9 @@ import java.util.stream.Collectors;
31 @RequiredArgsConstructor 31 @RequiredArgsConstructor
32 public class TkDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper, TkDataBoardEntity> 32 public class TkDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper, TkDataBoardEntity>
33 implements TkDataBoardService { 33 implements TkDataBoardService {
34 - private final OrganizationMapper organizationMapper;  
35 private final UserOrganizationMappingService userOrganizationMappingService; 34 private final UserOrganizationMappingService userOrganizationMappingService;
36 private final DataComponentMapper dataComponentMapper; 35 private final DataComponentMapper dataComponentMapper;
  36 + private final TkOrganizationService organizationService;
37 37
38 @Override 38 @Override
39 public TkPageData<DataBoardDTO> dataBoardPage(Map<String, Object> queryMap, boolean tenantAdmin) { 39 public TkPageData<DataBoardDTO> dataBoardPage(Map<String, Object> queryMap, boolean tenantAdmin) {
@@ -50,8 +50,8 @@ public class TkDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper, @@ -50,8 +50,8 @@ public class TkDataBoardServiceImpl extends AbstractBaseService<DataBoardMapper,
50 List<String> organizationIds = null; 50 List<String> organizationIds = null;
51 if (null != organizationId) { 51 if (null != organizationId) {
52 List<OrganizationDTO> list = 52 List<OrganizationDTO> list =
53 - organizationMapper.findOrganizationTreeList(  
54 - (String) queryMap.get("tenantId"), new HashSet<>(List.of(organizationId))); 53 + organizationService.findOrganizationTreeList(
  54 + (String) queryMap.get("tenantId"),null, new HashSet<>(List.of(organizationId)));
55 if (list.size() == zero) { 55 if (list.size() == zero) {
56 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 56 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
57 } 57 }
@@ -17,10 +17,7 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; @@ -17,10 +17,7 @@ import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
17 import org.thingsboard.server.dao.yunteng.entities.TkDataViewEntity; 17 import org.thingsboard.server.dao.yunteng.entities.TkDataViewEntity;
18 import org.thingsboard.server.dao.yunteng.mapper.TkDataViewMapper; 18 import org.thingsboard.server.dao.yunteng.mapper.TkDataViewMapper;
19 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper; 19 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;
20 -import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;  
21 -import org.thingsboard.server.dao.yunteng.service.TkDataViewService;  
22 -import org.thingsboard.server.dao.yunteng.service.TkDataViewContentService;  
23 -import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService; 20 +import org.thingsboard.server.dao.yunteng.service.*;
24 21
25 import java.util.HashSet; 22 import java.util.HashSet;
26 import java.util.List; 23 import java.util.List;
@@ -34,7 +31,7 @@ import java.util.stream.Collectors; @@ -34,7 +31,7 @@ import java.util.stream.Collectors;
34 @RequiredArgsConstructor 31 @RequiredArgsConstructor
35 public class TkDataViewServiceImpl extends AbstractBaseService<TkDataViewMapper, TkDataViewEntity> 32 public class TkDataViewServiceImpl extends AbstractBaseService<TkDataViewMapper, TkDataViewEntity>
36 implements TkDataViewService { 33 implements TkDataViewService {
37 - private final OrganizationMapper organizationMapper; 34 + private final TkOrganizationService organizationService;
38 private final TkDataViewContentService ytDataViewContentService; 35 private final TkDataViewContentService ytDataViewContentService;
39 private final UserOrganizationMappingService userOrganizationMappingService; 36 private final UserOrganizationMappingService userOrganizationMappingService;
40 37
@@ -44,8 +41,8 @@ public class TkDataViewServiceImpl extends AbstractBaseService<TkDataViewMapper, @@ -44,8 +41,8 @@ public class TkDataViewServiceImpl extends AbstractBaseService<TkDataViewMapper,
44 if (null != queryMap.get("organizationId")) { 41 if (null != queryMap.get("organizationId")) {
45 String organizationId = (String) queryMap.get("organizationId"); 42 String organizationId = (String) queryMap.get("organizationId");
46 List<OrganizationDTO> organizationList = 43 List<OrganizationDTO> organizationList =
47 - organizationMapper.findOrganizationTreeList(  
48 - (String) queryMap.get("tenantId"), new HashSet<>(List.of(organizationId))); 44 + organizationService.findOrganizationTreeList(
  45 + (String) queryMap.get("tenantId"),null, new HashSet<>(List.of(organizationId)));
49 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) { 46 if (organizationList.size() == FastIotConstants.MagicNumber.ZERO) {
50 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); 47 throw new TkDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
51 } 48 }
@@ -19,9 +19,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio @@ -19,9 +19,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio
19 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; 19 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
20 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 20 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
21 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; 21 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
22 -import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;  
23 -import org.thingsboard.server.common.data.yunteng.utils.tree.TreeUtils;  
24 -import org.thingsboard.server.dao.cache.EntitiesCacheManager; 22 +import org.thingsboard.server.common.data.yunteng.enums.OrganizationEnum;
25 import org.thingsboard.server.dao.yunteng.entities.*; 23 import org.thingsboard.server.dao.yunteng.entities.*;
26 import org.thingsboard.server.dao.yunteng.mapper.*; 24 import org.thingsboard.server.dao.yunteng.mapper.*;
27 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 25 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
@@ -30,7 +28,6 @@ import org.thingsboard.server.dao.yunteng.service.TkOrganizationService; @@ -30,7 +28,6 @@ import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
30 import java.util.*; 28 import java.util.*;
31 import java.util.stream.Collectors; 29 import java.util.stream.Collectors;
32 30
33 -import static org.thingsboard.server.common.data.CacheConstants.DEVICE_CACHE;  
34 31
35 @Service 32 @Service
36 @RequiredArgsConstructor 33 @RequiredArgsConstructor
@@ -111,7 +108,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM @@ -111,7 +108,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
111 } 108 }
112 String[] ids = deleteDTO.getIds().toArray(new String[deleteDTO.getIds().size()]); 109 String[] ids = deleteDTO.getIds().toArray(new String[deleteDTO.getIds().size()]);
113 Set<String> idToDelete = 110 Set<String> idToDelete =
114 - baseMapper.findOrganizationTreeList(tenantId, Arrays.asList(ids)).stream() 111 + findOrganizationTreeList(tenantId,null, Arrays.asList(ids)).stream()
115 .map(OrganizationDTO::getId) 112 .map(OrganizationDTO::getId)
116 .collect(Collectors.toSet()); 113 .collect(Collectors.toSet());
117 if (idToDelete.size() != ids.length) { 114 if (idToDelete.size() != ids.length) {
@@ -249,7 +246,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM @@ -249,7 +246,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
249 */ 246 */
250 private List<OrganizationDTO> findOrganizationTree(String tenantId,List<String> organizationIds) { 247 private List<OrganizationDTO> findOrganizationTree(String tenantId,List<String> organizationIds) {
251 List<OrganizationDTO> organizationTreeList = 248 List<OrganizationDTO> organizationTreeList =
252 - baseMapper.findOrganizationTreeList(tenantId, organizationIds); 249 + findOrganizationTreeList(tenantId,null, organizationIds);
253 return buildOrganizationDTOTree(organizationTreeList); 250 return buildOrganizationDTOTree(organizationTreeList);
254 } 251 }
255 252
@@ -296,7 +293,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM @@ -296,7 +293,7 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
296 } 293 }
297 if (null != organizationIds && organizationIds.length > 0) { 294 if (null != organizationIds && organizationIds.length > 0) {
298 Set<String> newBinding = 295 Set<String> newBinding =
299 - baseMapper.findOrganizationTreeList(tenantId, Arrays.asList(organizationIds)).stream() 296 + findOrganizationTreeList(tenantId,null, Arrays.asList(organizationIds)).stream()
300 .map(OrganizationDTO::getId) 297 .map(OrganizationDTO::getId)
301 .collect(Collectors.toSet()); 298 .collect(Collectors.toSet());
302 Set<String> existBinding = 299 Set<String> existBinding =
@@ -372,10 +369,18 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM @@ -372,10 +369,18 @@ public class TkOrganizationServiceImpl extends AbstractBaseService<OrganizationM
372 } 369 }
373 // 查询该组织的所有子类 370 // 查询该组织的所有子类
374 List<OrganizationDTO> organizationDTOS = 371 List<OrganizationDTO> organizationDTOS =
375 - baseMapper.findOrganizationTreeList(tenantId, organizationIds); 372 + findOrganizationTreeList(tenantId,null, organizationIds);
376 List<String> queryOrganizationIds = new ArrayList<>(); 373 List<String> queryOrganizationIds = new ArrayList<>();
377 organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId())); 374 organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId()));
378 return queryOrganizationIds; 375 return queryOrganizationIds;
379 } 376 }
380 377
  378 + @Override
  379 + public List<OrganizationDTO> findOrganizationTreeList(String tenantId, OrganizationEnum sort, Collection<String> organizationIds) {
  380 + if(sort==null) {
  381 + sort = OrganizationEnum.DOWN;
  382 + }
  383 + return baseMapper.findOrganizationTreeList(tenantId,sort.toString(), organizationIds);
  384 + }
  385 +
381 } 386 }
@@ -37,7 +37,7 @@ import java.util.stream.Collectors; @@ -37,7 +37,7 @@ import java.util.stream.Collectors;
37 public class TkReportFromConfigServiceImpl 37 public class TkReportFromConfigServiceImpl
38 extends AbstractBaseService<ReportFormConfigMapper, TkReportFormConfigEntity> 38 extends AbstractBaseService<ReportFormConfigMapper, TkReportFormConfigEntity>
39 implements TkReportFormConfigService { 39 implements TkReportFormConfigService {
40 - private final OrganizationMapper organizationMapper; 40 + private final TkOrganizationService organizationService;
41 private final TkSysJobService tkSysJobService; 41 private final TkSysJobService tkSysJobService;
42 private final TkReportGenerateRecordService tkReportGenerateRecordService; 42 private final TkReportGenerateRecordService tkReportGenerateRecordService;
43 private final UserOrganizationMappingService userOrganizationMappingService; 43 private final UserOrganizationMappingService userOrganizationMappingService;
@@ -52,8 +52,8 @@ public class TkReportFromConfigServiceImpl @@ -52,8 +52,8 @@ public class TkReportFromConfigServiceImpl
52 value -> { 52 value -> {
53 String organizationId = value.toString(); 53 String organizationId = value.toString();
54 List<OrganizationDTO> list = 54 List<OrganizationDTO> list =
55 - organizationMapper.findOrganizationTreeList(  
56 - tenantId, List.of(organizationId)); 55 + organizationService.findOrganizationTreeList(
  56 + tenantId, null,List.of(organizationId));
57 // 查询组织及其子组织 57 // 查询组织及其子组织
58 if (list.size() > 0) { 58 if (list.size() > 0) {
59 return list.stream().map(BaseDTO::getId).collect(Collectors.toList()); 59 return list.stream().map(BaseDTO::getId).collect(Collectors.toList());
@@ -9,9 +9,9 @@ import org.thingsboard.server.common.data.rpc.RpcStatus; @@ -9,9 +9,9 @@ import org.thingsboard.server.common.data.rpc.RpcStatus;
9 import org.thingsboard.server.common.data.yunteng.dto.TkRpcRecordDTO; 9 import org.thingsboard.server.common.data.yunteng.dto.TkRpcRecordDTO;
10 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; 10 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
11 import org.thingsboard.server.dao.yunteng.entities.TkRpcRecordEntity; 11 import org.thingsboard.server.dao.yunteng.entities.TkRpcRecordEntity;
12 -import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;  
13 import org.thingsboard.server.dao.yunteng.mapper.TkRpcRecordMapper; 12 import org.thingsboard.server.dao.yunteng.mapper.TkRpcRecordMapper;
14 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 13 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
  14 +import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
15 import org.thingsboard.server.dao.yunteng.service.TkRpcRecordService; 15 import org.thingsboard.server.dao.yunteng.service.TkRpcRecordService;
16 16
17 import java.util.ArrayList; 17 import java.util.ArrayList;
@@ -28,7 +28,7 @@ public class TkRpcRecordServiceImpl @@ -28,7 +28,7 @@ public class TkRpcRecordServiceImpl
28 extends AbstractBaseService<TkRpcRecordMapper, TkRpcRecordEntity> 28 extends AbstractBaseService<TkRpcRecordMapper, TkRpcRecordEntity>
29 implements TkRpcRecordService { 29 implements TkRpcRecordService {
30 30
31 - private final OrganizationMapper organizationMapper; 31 + private final TkOrganizationService organizationService;
32 32
33 @Override 33 @Override
34 public TkPageData<TkRpcRecordDTO> page( 34 public TkPageData<TkRpcRecordDTO> page(
@@ -44,7 +44,7 @@ public class TkRpcRecordServiceImpl @@ -44,7 +44,7 @@ public class TkRpcRecordServiceImpl
44 List<String> organizationFilter = new ArrayList<>(); 44 List<String> organizationFilter = new ArrayList<>();
45 organizationFilter.add(organizationId); 45 organizationFilter.add(organizationId);
46 organization = 46 organization =
47 - organizationMapper.findOrganizationTreeList(tenantId, organizationFilter).stream() 47 + organizationService.findOrganizationTreeList(tenantId,null, organizationFilter).stream()
48 .map(org -> org.getId()) 48 .map(org -> org.getId())
49 .collect(Collectors.toList()); 49 .collect(Collectors.toList());
50 } 50 }
@@ -48,11 +48,11 @@ public class TkSceneLinkageServiceImpl @@ -48,11 +48,11 @@ public class TkSceneLinkageServiceImpl
48 private final DoActionMapper doActionMapper; 48 private final DoActionMapper doActionMapper;
49 private final DoConditionMapper doConditionMapper; 49 private final DoConditionMapper doConditionMapper;
50 private final TriggerMapper triggerMapper; 50 private final TriggerMapper triggerMapper;
51 - private final OrganizationMapper organizationMapper;  
52 private final TriggerService triggerService; 51 private final TriggerService triggerService;
53 private final DoConditionService doConditionService; 52 private final DoConditionService doConditionService;
54 private final DoActionService doActionService; 53 private final DoActionService doActionService;
55 private final TkDeviceProfileMapper profileMapper; 54 private final TkDeviceProfileMapper profileMapper;
  55 + private final TkOrganizationService organizationService;
56 /** 56 /**
57 * 增加场景联动,触发器可以多个,执行条件可以多个,执行动作可以多个 57 * 增加场景联动,触发器可以多个,执行条件可以多个,执行动作可以多个
58 * 58 *
@@ -422,7 +422,7 @@ public class TkSceneLinkageServiceImpl @@ -422,7 +422,7 @@ public class TkSceneLinkageServiceImpl
422 organizationFilter.add(organizationId); 422 organizationFilter.add(organizationId);
423 // 查询该组织的所有子类 423 // 查询该组织的所有子类
424 List<String> orgIds = 424 List<String> orgIds =
425 - organizationMapper.findOrganizationTreeList(tenantId, organizationFilter).stream() 425 + organizationService.findOrganizationTreeList(tenantId,null,organizationFilter).stream()
426 .map(BaseDTO::getId) 426 .map(BaseDTO::getId)
427 .collect(Collectors.toList()); 427 .collect(Collectors.toList());
428 // 拿到当前组织ids所包含的设备集合 428 // 拿到当前组织ids所包含的设备集合
@@ -627,7 +627,7 @@ public class TkSceneLinkageServiceImpl @@ -627,7 +627,7 @@ public class TkSceneLinkageServiceImpl
627 private List<String> getQueryOrganizationIds(String tenantId, List<String> organizationIds) { 627 private List<String> getQueryOrganizationIds(String tenantId, List<String> organizationIds) {
628 // 查询该组织的所有子类 628 // 查询该组织的所有子类
629 List<OrganizationDTO> organizationDTOS = 629 List<OrganizationDTO> organizationDTOS =
630 - organizationMapper.findOrganizationTreeList(tenantId, organizationIds); 630 + organizationService.findOrganizationTreeList(tenantId,null, organizationIds);
631 // 遍历组织id 631 // 遍历组织id
632 List<String> queryOrganizationIds = new ArrayList<>(); 632 List<String> queryOrganizationIds = new ArrayList<>();
633 organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId())); 633 organizationDTOS.forEach(item -> queryOrganizationIds.add(item.getId()));
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Mapper;
5 import org.apache.ibatis.annotations.Param; 5 import org.apache.ibatis.annotations.Param;
6 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; 6 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
  7 +import org.thingsboard.server.common.data.yunteng.enums.OrganizationEnum;
7 import org.thingsboard.server.dao.yunteng.entities.TkOrganizationEntity; 8 import org.thingsboard.server.dao.yunteng.entities.TkOrganizationEntity;
8 9
9 import java.util.Collection; 10 import java.util.Collection;
@@ -16,8 +17,9 @@ public interface OrganizationMapper extends BaseMapper<TkOrganizationEntity> { @@ -16,8 +17,9 @@ public interface OrganizationMapper extends BaseMapper<TkOrganizationEntity> {
16 * 17 *
17 * @param tenantId 租户code 18 * @param tenantId 租户code
18 * @param organizationIds 待查询的组织ID,可以为空 19 * @param organizationIds 待查询的组织ID,可以为空
  20 + * @param sort 查询顺序 0向下查询,1向下查询
19 * @return 组织及子组织,直到叶节点 21 * @return 组织及子组织,直到叶节点
20 */ 22 */
21 List<OrganizationDTO> findOrganizationTreeList( 23 List<OrganizationDTO> findOrganizationTreeList(
22 - @Param("tenantId") String tenantId, @Param("organizationIds") Collection<String> organizationIds); 24 + @Param("tenantId") String tenantId, @Param("sort") String sort, @Param("organizationIds") Collection<String> organizationIds);
23 } 25 }
1 package org.thingsboard.server.dao.yunteng.service; 1 package org.thingsboard.server.dao.yunteng.service;
2 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO; 2 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
3 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; 3 import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
  4 +import org.thingsboard.server.common.data.yunteng.enums.OrganizationEnum;
4 import org.thingsboard.server.dao.yunteng.entities.TkOrganizationEntity; 5 import org.thingsboard.server.dao.yunteng.entities.TkOrganizationEntity;
5 6
  7 +import java.util.Collection;
6 import java.util.List; 8 import java.util.List;
7 import java.util.Set; 9 import java.util.Set;
8 10
@@ -29,4 +31,6 @@ public interface TkOrganizationService extends BaseService<TkOrganizationEntity> @@ -29,4 +31,6 @@ public interface TkOrganizationService extends BaseService<TkOrganizationEntity>
29 * @param organizationId 组织ID 31 * @param organizationId 组织ID
30 */ 32 */
31 List<String> organizationAllIds(String tenantId, String organizationId); 33 List<String> organizationAllIds(String tenantId, String organizationId);
  34 +
  35 + List<OrganizationDTO> findOrganizationTreeList(String tenantId, OrganizationEnum sort, Collection<String> organizationIds);
32 } 36 }
@@ -29,7 +29,12 @@ @@ -29,7 +29,12 @@
29 UNION ALL 29 UNION ALL
30 SELECT ig.id, ig.parent_id, ig.name, ig.sort,ig.creator,ig.create_time,ig.updater,ig.update_time,ig.remark,ig.tenant_id 30 SELECT ig.id, ig.parent_id, ig.name, ig.sort,ig.creator,ig.create_time,ig.updater,ig.update_time,ig.remark,ig.tenant_id
31 FROM tk_organization ig 31 FROM tk_organization ig
32 - JOIN organization ON ig.parent_id = organization.id 32 + <if test="sort =='UP'">
  33 + JOIN organization ON ig.id = organization.parent_id
  34 + </if>
  35 + <if test="sort == 'DOWN'">
  36 + JOIN organization ON ig.parent_id = organization.id
  37 + </if>
33 WHERE ig.tenant_id = #{tenantId} 38 WHERE ig.tenant_id = #{tenantId}
34 ) 39 )
35 SELECT id, parent_id, name, sort,creator,create_time,updater,update_time,remark,tenant_id 40 SELECT id, parent_id, name, sort,creator,create_time,updater,update_time,remark,tenant_id