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