Commit 0d01b870e8eeb161dcf3a3ec585736707729f1bf
1 parent
50337500
fix: homepage add statistics for device type and Off-line rate
Showing
3 changed files
with
40 additions
and
25 deletions
@@ -17,6 +17,15 @@ public class HomeDeviceInfoDTO { | @@ -17,6 +17,15 @@ public class HomeDeviceInfoDTO { | ||
17 | @ApiModelProperty("未激活设备数量") | 17 | @ApiModelProperty("未激活设备数量") |
18 | private Integer inActive; | 18 | private Integer inActive; |
19 | 19 | ||
20 | + @ApiModelProperty("未激活设备数量") | ||
21 | + private Integer gateWay; | ||
22 | + | ||
23 | + @ApiModelProperty("未激活设备数量") | ||
24 | + private Integer directConnection; | ||
25 | + | ||
26 | + @ApiModelProperty("未激活设备数量") | ||
27 | + private Integer sensor; | ||
28 | + | ||
20 | @ApiModelProperty("今日新增设备数量") | 29 | @ApiModelProperty("今日新增设备数量") |
21 | private Integer todayAdd; | 30 | private Integer todayAdd; |
22 | 31 | ||
@@ -26,6 +35,8 @@ public class HomeDeviceInfoDTO { | @@ -26,6 +35,8 @@ public class HomeDeviceInfoDTO { | ||
26 | this.offLine = defaultValue; | 35 | this.offLine = defaultValue; |
27 | this.inActive = defaultValue; | 36 | this.inActive = defaultValue; |
28 | this.todayAdd = defaultValue; | 37 | this.todayAdd = defaultValue; |
38 | + this.gateWay = defaultValue; | ||
39 | + this.directConnection = defaultValue; | ||
40 | + this.sensor = defaultValue; | ||
29 | } | 41 | } |
30 | - | ||
31 | } | 42 | } |
@@ -42,6 +42,7 @@ import java.util.*; | @@ -42,6 +42,7 @@ import java.util.*; | ||
42 | import java.util.concurrent.CompletableFuture; | 42 | import java.util.concurrent.CompletableFuture; |
43 | import java.util.concurrent.ExecutionException; | 43 | import java.util.concurrent.ExecutionException; |
44 | import java.util.concurrent.atomic.AtomicInteger; | 44 | import java.util.concurrent.atomic.AtomicInteger; |
45 | +import java.util.concurrent.atomic.AtomicReference; | ||
45 | import java.util.stream.Collectors; | 46 | import java.util.stream.Collectors; |
46 | 47 | ||
47 | @Service | 48 | @Service |
@@ -145,7 +146,7 @@ public class TkHomePageServiceImpl implements HomePageService { | @@ -145,7 +146,7 @@ public class TkHomePageServiceImpl implements HomePageService { | ||
145 | } | 146 | } |
146 | 147 | ||
147 | if (isPtSysAdmin || isPtAdmin) { | 148 | if (isPtSysAdmin || isPtAdmin) { |
148 | - List<TenantDTO> tenants = getTenantInfo(); | 149 | + List<TenantDTO> tenants = tenantService.getAllTenant(); |
149 | AtomicInteger totalExpired = new AtomicInteger(); | 150 | AtomicInteger totalExpired = new AtomicInteger(); |
150 | AtomicInteger totalNormal = new AtomicInteger(); | 151 | AtomicInteger totalNormal = new AtomicInteger(); |
151 | int todayAdd = (int) tenants.stream().filter(tenant -> { | 152 | int todayAdd = (int) tenants.stream().filter(tenant -> { |
@@ -240,24 +241,12 @@ public class TkHomePageServiceImpl implements HomePageService { | @@ -240,24 +241,12 @@ public class TkHomePageServiceImpl implements HomePageService { | ||
240 | 241 | ||
241 | return app; | 242 | return app; |
242 | } | 243 | } |
243 | - /** | ||
244 | - * 获取当前用户权限下的租户信息 | ||
245 | - * | ||
246 | - * @return | ||
247 | - */ | ||
248 | - private List<TenantDTO> getTenantInfo() { | ||
249 | - List<TenantDTO> tenants = tenantService.getAllTenant(); | ||
250 | - return tenants; | ||
251 | - } | ||
252 | - | ||
253 | - | ||
254 | 244 | ||
255 | /** | 245 | /** |
256 | * 统计数据的过滤参数 | 246 | * 统计数据的过滤参数 |
257 | * @param entityId 实体ID,例如:租户ID、客户ID | 247 | * @param entityId 实体ID,例如:租户ID、客户ID |
258 | * @param startTime 数据开始时间 | 248 | * @param startTime 数据开始时间 |
259 | * @param endTime 数据结束时间 | 249 | * @param endTime 数据结束时间 |
260 | - * @return | ||
261 | */ | 250 | */ |
262 | private Map<String, Object> buildCountFilter(EntityId entityId,LocalDateTime startTime,LocalDateTime endTime){ | 251 | private Map<String, Object> buildCountFilter(EntityId entityId,LocalDateTime startTime,LocalDateTime endTime){ |
263 | Map<String, Object> filter = new HashMap<>(); | 252 | Map<String, Object> filter = new HashMap<>(); |
@@ -285,26 +274,21 @@ public class TkHomePageServiceImpl implements HomePageService { | @@ -285,26 +274,21 @@ public class TkHomePageServiceImpl implements HomePageService { | ||
285 | /** | 274 | /** |
286 | * 获取当前用户权限下的客户信息 | 275 | * 获取当前用户权限下的客户信息 |
287 | * | 276 | * |
288 | - * @return | ||
289 | */ | 277 | */ |
290 | private List<UserDetailsDTO> getCustomerInfo(Map<String, Object> filter) { | 278 | private List<UserDetailsDTO> getCustomerInfo(Map<String, Object> filter) { |
291 | - List<UserDetailsDTO> userList = userMapper.findCustomers(filter); | ||
292 | - return userList; | 279 | + return userMapper.findCustomers(filter); |
293 | } | 280 | } |
294 | /** | 281 | /** |
295 | * 查询实体ID的设备 | 282 | * 查询实体ID的设备 |
296 | * @param filter 数据过滤参数 | 283 | * @param filter 数据过滤参数 |
297 | - * @return | ||
298 | */ | 284 | */ |
299 | private List<DeviceDTO> getDeviceInfo(Map<String, Object> filter) { | 285 | private List<DeviceDTO> getDeviceInfo(Map<String, Object> filter) { |
300 | - List<DeviceDTO> deviceDTOS = deviceMapper.findDevices(filter);; | ||
301 | - return deviceDTOS; | 286 | + return deviceMapper.findDevices(filter); |
302 | } | 287 | } |
303 | 288 | ||
304 | /** | 289 | /** |
305 | * 统计实体的告警信息 | 290 | * 统计实体的告警信息 |
306 | * @param filter 数据过滤参数 | 291 | * @param filter 数据过滤参数 |
307 | - * @return | ||
308 | */ | 292 | */ |
309 | private AlarmStatisticsDTO getAlarmInfo(Map<String, Object> filter) { | 293 | private AlarmStatisticsDTO getAlarmInfo(Map<String, Object> filter) { |
310 | List<AggregationDTO> alarms = ytJpaAarmDao.countAlarms(filter); | 294 | List<AggregationDTO> alarms = ytJpaAarmDao.countAlarms(filter); |
@@ -338,7 +322,6 @@ public class TkHomePageServiceImpl implements HomePageService { | @@ -338,7 +322,6 @@ public class TkHomePageServiceImpl implements HomePageService { | ||
338 | /** | 322 | /** |
339 | * 获取实体的流量统计信息 | 323 | * 获取实体的流量统计信息 |
340 | * @param filter 数据过滤参数 | 324 | * @param filter 数据过滤参数 |
341 | - * @return | ||
342 | */ | 325 | */ |
343 | private FlowStatisticsDTO getFlowStatistics(Map<String, Object> filter) { | 326 | private FlowStatisticsDTO getFlowStatistics(Map<String, Object> filter) { |
344 | FlowStatisticsDTO flow = new FlowStatisticsDTO(0); | 327 | FlowStatisticsDTO flow = new FlowStatisticsDTO(0); |
@@ -457,14 +440,18 @@ public class TkHomePageServiceImpl implements HomePageService { | @@ -457,14 +440,18 @@ public class TkHomePageServiceImpl implements HomePageService { | ||
457 | */ | 440 | */ |
458 | private void setDeviceInfoData(List<DeviceDTO> deviceList, HomeDeviceInfoDTO homeDeviceInfoDTO) { | 441 | private void setDeviceInfoData(List<DeviceDTO> deviceList, HomeDeviceInfoDTO homeDeviceInfoDTO) { |
459 | homeDeviceInfoDTO.setSumCount(deviceList.size()); | 442 | homeDeviceInfoDTO.setSumCount(deviceList.size()); |
460 | - deviceList.forEach(ytDevice -> { | 443 | + int defaultValue = FastIotConstants.MagicNumber.ZERO; |
444 | + AtomicReference<Integer> gateWay= new AtomicReference<>(defaultValue); | ||
445 | + AtomicReference<Integer> directConnection= new AtomicReference<>(defaultValue); | ||
446 | + AtomicReference<Integer> sensor= new AtomicReference<>(defaultValue); | ||
447 | + deviceList.forEach(device -> { | ||
461 | int basicNum = FastIotConstants.MagicNumber.ONE; | 448 | int basicNum = FastIotConstants.MagicNumber.ONE; |
462 | ZoneOffset zoneOffset = ZoneOffset.of("+8"); | 449 | ZoneOffset zoneOffset = ZoneOffset.of("+8"); |
463 | LocalDateTime todayZeroTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); | 450 | LocalDateTime todayZeroTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); |
464 | - if (ytDevice.getCreateTime().atZone(zoneOffset).toInstant().toEpochMilli() >= todayZeroTime.toInstant(zoneOffset).toEpochMilli()) { | 451 | + if (device.getCreateTime().atZone(zoneOffset).toInstant().toEpochMilli() >= todayZeroTime.toInstant(zoneOffset).toEpochMilli()) { |
465 | homeDeviceInfoDTO.setTodayAdd(homeDeviceInfoDTO.getTodayAdd() + basicNum); | 452 | homeDeviceInfoDTO.setTodayAdd(homeDeviceInfoDTO.getTodayAdd() + basicNum); |
466 | } | 453 | } |
467 | - switch (ytDevice.getDeviceState()) { | 454 | + switch (device.getDeviceState()) { |
468 | case OFFLINE: | 455 | case OFFLINE: |
469 | homeDeviceInfoDTO.setOffLine(homeDeviceInfoDTO.getOffLine() + basicNum); | 456 | homeDeviceInfoDTO.setOffLine(homeDeviceInfoDTO.getOffLine() + basicNum); |
470 | break; | 457 | break; |
@@ -477,7 +464,23 @@ public class TkHomePageServiceImpl implements HomePageService { | @@ -477,7 +464,23 @@ public class TkHomePageServiceImpl implements HomePageService { | ||
477 | default: | 464 | default: |
478 | break; | 465 | break; |
479 | } | 466 | } |
467 | + switch (device.getDeviceType()){ | ||
468 | + case GATEWAY: | ||
469 | + gateWay.getAndSet(gateWay.get() + 1); | ||
470 | + break; | ||
471 | + case DIRECT_CONNECTION: | ||
472 | + directConnection.getAndSet(directConnection.get()+1); | ||
473 | + break; | ||
474 | + case SENSOR: | ||
475 | + sensor.getAndSet(sensor.get()+1); | ||
476 | + break; | ||
477 | + default: | ||
478 | + break; | ||
479 | + } | ||
480 | }); | 480 | }); |
481 | + homeDeviceInfoDTO.setGateWay(gateWay.get()); | ||
482 | + homeDeviceInfoDTO.setDirectConnection(directConnection.get()); | ||
483 | + homeDeviceInfoDTO.setSensor(sensor.get()); | ||
481 | } | 484 | } |
482 | 485 | ||
483 | 486 |
@@ -181,6 +181,7 @@ | @@ -181,6 +181,7 @@ | ||
181 | ifd.tenant_id, | 181 | ifd.tenant_id, |
182 | ifd.organization_id, | 182 | ifd.organization_id, |
183 | ifd.create_time, | 183 | ifd.create_time, |
184 | + ifd.device_type, | ||
184 | ifdp.NAME AS profile_name, | 185 | ifdp.NAME AS profile_name, |
185 | io.NAME AS organization_name, | 186 | io.NAME AS organization_name, |
186 | A.bool_v status, | 187 | A.bool_v status, |