Commit 0d01b870e8eeb161dcf3a3ec585736707729f1bf

Authored by 黄 x
1 parent 50337500

fix: homepage add statistics for device type and Off-line rate

@@ -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,