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 | 17 | @ApiModelProperty("未激活设备数量") |
18 | 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 | 29 | @ApiModelProperty("今日新增设备数量") |
21 | 30 | private Integer todayAdd; |
22 | 31 | |
... | ... | @@ -26,6 +35,8 @@ public class HomeDeviceInfoDTO { |
26 | 35 | this.offLine = defaultValue; |
27 | 36 | this.inActive = defaultValue; |
28 | 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 | 42 | import java.util.concurrent.CompletableFuture; |
43 | 43 | import java.util.concurrent.ExecutionException; |
44 | 44 | import java.util.concurrent.atomic.AtomicInteger; |
45 | +import java.util.concurrent.atomic.AtomicReference; | |
45 | 46 | import java.util.stream.Collectors; |
46 | 47 | |
47 | 48 | @Service |
... | ... | @@ -145,7 +146,7 @@ public class TkHomePageServiceImpl implements HomePageService { |
145 | 146 | } |
146 | 147 | |
147 | 148 | if (isPtSysAdmin || isPtAdmin) { |
148 | - List<TenantDTO> tenants = getTenantInfo(); | |
149 | + List<TenantDTO> tenants = tenantService.getAllTenant(); | |
149 | 150 | AtomicInteger totalExpired = new AtomicInteger(); |
150 | 151 | AtomicInteger totalNormal = new AtomicInteger(); |
151 | 152 | int todayAdd = (int) tenants.stream().filter(tenant -> { |
... | ... | @@ -240,24 +241,12 @@ public class TkHomePageServiceImpl implements HomePageService { |
240 | 241 | |
241 | 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 | 247 | * @param entityId 实体ID,例如:租户ID、客户ID |
258 | 248 | * @param startTime 数据开始时间 |
259 | 249 | * @param endTime 数据结束时间 |
260 | - * @return | |
261 | 250 | */ |
262 | 251 | private Map<String, Object> buildCountFilter(EntityId entityId,LocalDateTime startTime,LocalDateTime endTime){ |
263 | 252 | Map<String, Object> filter = new HashMap<>(); |
... | ... | @@ -285,26 +274,21 @@ public class TkHomePageServiceImpl implements HomePageService { |
285 | 274 | /** |
286 | 275 | * 获取当前用户权限下的客户信息 |
287 | 276 | * |
288 | - * @return | |
289 | 277 | */ |
290 | 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 | 282 | * 查询实体ID的设备 |
296 | 283 | * @param filter 数据过滤参数 |
297 | - * @return | |
298 | 284 | */ |
299 | 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 | 291 | * @param filter 数据过滤参数 |
307 | - * @return | |
308 | 292 | */ |
309 | 293 | private AlarmStatisticsDTO getAlarmInfo(Map<String, Object> filter) { |
310 | 294 | List<AggregationDTO> alarms = ytJpaAarmDao.countAlarms(filter); |
... | ... | @@ -338,7 +322,6 @@ public class TkHomePageServiceImpl implements HomePageService { |
338 | 322 | /** |
339 | 323 | * 获取实体的流量统计信息 |
340 | 324 | * @param filter 数据过滤参数 |
341 | - * @return | |
342 | 325 | */ |
343 | 326 | private FlowStatisticsDTO getFlowStatistics(Map<String, Object> filter) { |
344 | 327 | FlowStatisticsDTO flow = new FlowStatisticsDTO(0); |
... | ... | @@ -457,14 +440,18 @@ public class TkHomePageServiceImpl implements HomePageService { |
457 | 440 | */ |
458 | 441 | private void setDeviceInfoData(List<DeviceDTO> deviceList, HomeDeviceInfoDTO homeDeviceInfoDTO) { |
459 | 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 | 448 | int basicNum = FastIotConstants.MagicNumber.ONE; |
462 | 449 | ZoneOffset zoneOffset = ZoneOffset.of("+8"); |
463 | 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 | 452 | homeDeviceInfoDTO.setTodayAdd(homeDeviceInfoDTO.getTodayAdd() + basicNum); |
466 | 453 | } |
467 | - switch (ytDevice.getDeviceState()) { | |
454 | + switch (device.getDeviceState()) { | |
468 | 455 | case OFFLINE: |
469 | 456 | homeDeviceInfoDTO.setOffLine(homeDeviceInfoDTO.getOffLine() + basicNum); |
470 | 457 | break; |
... | ... | @@ -477,7 +464,23 @@ public class TkHomePageServiceImpl implements HomePageService { |
477 | 464 | default: |
478 | 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 | ... | ... |