|
|
@@ -195,26 +195,21 @@ public class SmsbDepartmentUserServiceImpl extends ServiceImpl<SmsbDepartmentUse
|
|
|
@Override
|
|
|
public List<SmsbSimpleUserCO> listUserByInformLevel(String tenant, List<String> org, int informLevel ,int errorId) {
|
|
|
LambdaQueryWrapper<SmsbDepartmentUserDO> queryWrapper = Wrappers.lambdaQuery();
|
|
|
- List<String> paths = departmentService.listSuperiorDepartments(org, tenant);
|
|
|
+ List<String> paths = new ArrayList<>();
|
|
|
+ if (org!= null && !org.isEmpty()) {
|
|
|
+ paths = departmentService.listSuperiorDepartments(org, tenant);
|
|
|
+ }
|
|
|
+
|
|
|
queryWrapper.eq(SmsbDepartmentUserDO::getTenant, tenant)
|
|
|
.ne(SmsbDepartmentUserDO::getInformLevel, -1)
|
|
|
- .eq(SmsbDepartmentUserDO::getEnabled, 1)
|
|
|
- .between(SmsbDepartmentUserDO::getInformLevel, 1000, 1000 + informLevel)
|
|
|
- .or(!CollectionUtils.isEmpty(paths), q -> q.ne(SmsbDepartmentUserDO::getInformLevel, -1)
|
|
|
- .in(SmsbDepartmentUserDO::getPath, paths)
|
|
|
- .eq(SmsbDepartmentUserDO::getEnabled, 1)
|
|
|
- .eq(SmsbDepartmentUserDO::getTenant, tenant)
|
|
|
- .between(SmsbDepartmentUserDO::getInformLevel, 0, informLevel))
|
|
|
- //部门为空代表设备在根部门
|
|
|
- .or(CollectionUtils.isEmpty(paths), q -> q.ne(SmsbDepartmentUserDO::getInformLevel, -1)
|
|
|
- .isNull(SmsbDepartmentUserDO::getPath)
|
|
|
- .eq(SmsbDepartmentUserDO::getEnabled, 1)
|
|
|
- .eq(SmsbDepartmentUserDO::getTenant, tenant)
|
|
|
- .between(SmsbDepartmentUserDO::getInformLevel, 0, informLevel));
|
|
|
- queryWrapper.or(i->i.eq(SmsbDepartmentUserDO::getInformLevel , 9999)
|
|
|
- .apply("FIND_IN_SET({0}, REPLACE(REPLACE(inform_type, '[', ''), ']', '')) > 0" , errorId));
|
|
|
+ .eq(SmsbDepartmentUserDO::getEnabled, 1);
|
|
|
+ List<String> finalPaths = paths;
|
|
|
+ queryWrapper.and(wrapper->wrapper.isNull(SmsbDepartmentUserDO::getPath).or().in(CollectionUtils.isNotEmpty(finalPaths), SmsbDepartmentUserDO::getPath, finalPaths));
|
|
|
+ queryWrapper.and(wrapper -> wrapper.nested(nestedWrapper ->
|
|
|
+ nestedWrapper.eq(SmsbDepartmentUserDO::getInformLevel, 9999)
|
|
|
+ .apply("FIND_IN_SET({0}, REPLACE(REPLACE(inform_type, '[', ''), ']', '')) > 0" , errorId)
|
|
|
+ ).or().between(SmsbDepartmentUserDO::getInformLevel, 0, informLevel));
|
|
|
List<SmsbDepartmentUserDO> list = this.list(queryWrapper);
|
|
|
-
|
|
|
List<SmsbSimpleUserCO> smsbSimpleUserList = Lists.newArrayListWithCapacity(list.size());
|
|
|
list.forEach(user -> {
|
|
|
SmsbSimpleUserCO userCO = new SmsbSimpleUserCO();
|