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 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
... ...
... ... @@ -181,6 +181,7 @@
181 181 ifd.tenant_id,
182 182 ifd.organization_id,
183 183 ifd.create_time,
  184 + ifd.device_type,
184 185 ifdp.NAME AS profile_name,
185 186 io.NAME AS organization_name,
186 187 A.bool_v status,
... ...