|
@@ -3,6 +3,7 @@ package org.thingsboard.server.dao.yunteng.impl; |
|
@@ -3,6 +3,7 @@ package org.thingsboard.server.dao.yunteng.impl; |
3
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
3
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
4
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
4
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
5
|
import com.fasterxml.jackson.databind.JsonNode;
|
5
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
6
|
+import com.fasterxml.jackson.databind.node.ArrayNode;
|
6
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
7
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
7
|
import com.google.common.util.concurrent.FutureCallback;
|
8
|
import com.google.common.util.concurrent.FutureCallback;
|
8
|
import com.google.common.util.concurrent.Futures;
|
9
|
import com.google.common.util.concurrent.Futures;
|
|
@@ -34,11 +35,9 @@ import org.thingsboard.server.common.data.yunteng.utils.ExcelUtil; |
|
@@ -34,11 +35,9 @@ import org.thingsboard.server.common.data.yunteng.utils.ExcelUtil; |
34
|
import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
|
35
|
import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
|
35
|
import org.thingsboard.server.dao.timeseries.TimeseriesService;
|
36
|
import org.thingsboard.server.dao.timeseries.TimeseriesService;
|
36
|
import org.thingsboard.server.dao.yunteng.entities.TkReportGenerateRecordEntity;
|
37
|
import org.thingsboard.server.dao.yunteng.entities.TkReportGenerateRecordEntity;
|
|
|
38
|
+import org.thingsboard.server.dao.yunteng.mapper.DeviceMapper;
|
37
|
import org.thingsboard.server.dao.yunteng.mapper.ReportGenerateRecordMapper;
|
39
|
import org.thingsboard.server.dao.yunteng.mapper.ReportGenerateRecordMapper;
|
38
|
-import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
|
|
|
39
|
-import org.thingsboard.server.dao.yunteng.service.UserOrganizationMappingService;
|
|
|
40
|
-import org.thingsboard.server.dao.yunteng.service.TkOrganizationService;
|
|
|
41
|
-import org.thingsboard.server.dao.yunteng.service.TkReportGenerateRecordService;
|
40
|
+import org.thingsboard.server.dao.yunteng.service.*;
|
42
|
|
41
|
|
43
|
import java.io.ByteArrayInputStream;
|
42
|
import java.io.ByteArrayInputStream;
|
44
|
import java.io.ByteArrayOutputStream;
|
43
|
import java.io.ByteArrayOutputStream;
|
|
@@ -64,6 +63,7 @@ public class TkReportGenerateRecordServiceImpl |
|
@@ -64,6 +63,7 @@ public class TkReportGenerateRecordServiceImpl |
64
|
private final TimeseriesService tsService;
|
63
|
private final TimeseriesService tsService;
|
65
|
private final FileStorageService fileStorageService;
|
64
|
private final FileStorageService fileStorageService;
|
66
|
private final UserOrganizationMappingService userOrganizationMappingService;
|
65
|
private final UserOrganizationMappingService userOrganizationMappingService;
|
|
|
66
|
+ private final DeviceMapper deviceMapper;
|
67
|
private volatile HashMap<String,List<CustomDataForExcelDTO>> excelReportMap = new HashMap<>();
|
67
|
private volatile HashMap<String,List<CustomDataForExcelDTO>> excelReportMap = new HashMap<>();
|
68
|
|
68
|
|
69
|
@Override
|
69
|
@Override
|
|
@@ -80,7 +80,8 @@ public class TkReportGenerateRecordServiceImpl |
|
@@ -80,7 +80,8 @@ public class TkReportGenerateRecordServiceImpl |
80
|
.map(obj -> Integer.valueOf(obj.toString()))
|
80
|
.map(obj -> Integer.valueOf(obj.toString()))
|
81
|
.orElse(null);
|
81
|
.orElse(null);
|
82
|
List<String> organizationIds = null;
|
82
|
List<String> organizationIds = null;
|
83
|
- if (!tenantAdmin && null != queryMap.get("userId")) {
|
83
|
+ boolean isCustomer =!tenantAdmin && null != queryMap.get("userId");
|
|
|
84
|
+ if (isCustomer) {
|
84
|
organizationIds =
|
85
|
organizationIds =
|
85
|
userOrganizationMappingService.getOrganizationIdsByUserId(
|
86
|
userOrganizationMappingService.getOrganizationIdsByUserId(
|
86
|
queryMap.get("userId").toString());
|
87
|
queryMap.get("userId").toString());
|
|
@@ -107,6 +108,20 @@ public class TkReportGenerateRecordServiceImpl |
|
@@ -107,6 +108,20 @@ public class TkReportGenerateRecordServiceImpl |
107
|
organizationIds != null && organizationIds.size() > 0,
|
108
|
organizationIds != null && organizationIds.size() > 0,
|
108
|
TkReportGenerateRecordEntity::getOrganizationId,
|
109
|
TkReportGenerateRecordEntity::getOrganizationId,
|
109
|
organizationIds));
|
110
|
organizationIds));
|
|
|
111
|
+
|
|
|
112
|
+ if (isCustomer) {
|
|
|
113
|
+ List<TkReportGenerateRecordEntity> list = iPage.getRecords();
|
|
|
114
|
+ List<String> deviceIds = deviceMapper.findDeviceIdsByCustomerId(queryMap.get("customerId").toString());
|
|
|
115
|
+ list.forEach(entity -> {
|
|
|
116
|
+ ArrayNode exes = (ArrayNode) entity.getExecuteCondition().path("executeAttributes");
|
|
|
117
|
+ for (int i = 0; i < exes.size(); i++) {
|
|
|
118
|
+ if(!deviceIds.contains(exes.get(i).get("device").asText())){
|
|
|
119
|
+ exes.remove(i);
|
|
|
120
|
+ i--;
|
|
|
121
|
+ }
|
|
|
122
|
+ }
|
|
|
123
|
+ });
|
|
|
124
|
+ }
|
110
|
return getPageData(iPage, ReportGenerateRecordDTO.class);
|
125
|
return getPageData(iPage, ReportGenerateRecordDTO.class);
|
111
|
}
|
126
|
}
|
112
|
|
127
|
|