From d22bbb827940050d4df2bf3fb16dae79eba91d4e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 12 十一月 2024 18:45:15 +0800
Subject: [PATCH] 批量审核bug,离线时间点回显

---
 ycl-server/src/main/java/com/ycl/task/UYTask.java |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index 737fbae..0256642 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -189,6 +189,15 @@
         }
         // 鍏堟煡鍑鸿澶嘔P闆嗗悎,鍓旈櫎鎺夊湪绾挎儏鍐垫槸鏈煡鐨�,骞朵笖鍙娴嬫鍦ㄨ�冩牳鐨勮澶囬伩鍏嶅浣欏伐鍗�
         List<TMonitorResult> monitorList = monitorMapper.getDistinctIP();
+        //琛ュ厖閿欒鏃堕棿鐐�
+        Query onlineQuery = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+        Map<String, TMonitorResult> mongoMap = mongoTemplate.find(onlineQuery, TMonitorResult.class).stream().collect(Collectors.toMap(TMonitorResult::getNo, Function.identity()));
+        for (TMonitorResult result : monitorList) {
+            TMonitorResult mongoData = mongoMap.get(result.getNo());
+            if(mongoData!=null){
+                result.setOffLineTime(mongoData.getOffLineTime());
+            }
+        }
         List<TMonitorResult> dataList = new ArrayList<>(48);
         Integer time = times;
         List<CompletableFuture<TMonitorResult>> futureList = monitorList.stream()
@@ -214,6 +223,10 @@
                             monitor.setPingOnline(Boolean.FALSE);
                             monitor.setCheckCount(checkTimes);
                             monitor.setOffLineCount(offLineTimes);
+                            List<Date> offLineTime = monitor.getOffLineTime();
+                            if(CollectionUtils.isEmpty(offLineTime)) offLineTime = new ArrayList<>();
+                            offLineTime.add(new Date());
+                            monitor.setOffLineTime(offLineTime);
                             if (monitor.getOffLineCount() >= time) {
                                 WorkOrder workOrder = new WorkOrder();
                                 workOrder.setSerialNumber(monitor.getNo());
@@ -321,13 +334,13 @@
                         }).collect(Collectors.toList());
                         monitorMapper.updateOnline(willUpdateList);
                         //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
-                        List<VideoOnlineResult> workOrders = (List<VideoOnlineResult>) records.stream()
+                        List<VideoOnlineResult> workOrders = new ArrayList<>(records.stream()
                                 .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus()))
                                 .collect(Collectors.toMap(
                                         VideoOnlineResult::getIpAddr,
                                         Function.identity(),
                                         (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
-                                )).values();
+                                )).values());
                         uyErrorTypeCheckService.videoOnlineCheck(workOrders);
                     } else {
                         log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);

--
Gitblit v1.8.0