From 9d69a278fcb5c159ec62eec3ce78ae15eb5d5ece Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 12 十一月 2024 16:24:59 +0800
Subject: [PATCH] 离线工单ip去重只生成一个工单

---
 ycl-server/src/main/java/com/ycl/task/UYTask.java |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 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 2f92fa3..737fbae 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -40,6 +40,7 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 //浼樹簯瀵规帴鏁版嵁浠诲姟
@@ -260,9 +261,16 @@
             //瀛樻斁鍦╩ongo涓�
             mongoTemplate.insertAll(dataList);
         }
-        //宸ュ崟
+        //宸ュ崟锛堝悓涓�IP鍙敓鎴愪竴涓伐鍗曪級
         List<WorkOrder> workOrderList = dataList.stream()
                 .filter(item -> Objects.nonNull(item.getWorkOrder()))
+                .collect(Collectors.toMap(
+                        TMonitorResult::getIp,
+                        Function.identity(),
+                        (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓� TMonitorResult 瀵硅薄
+                ))
+                .values()
+                .stream()
                 .map(TMonitorResult::getWorkOrder)
                 .collect(Collectors.toList());
         if (!CollectionUtils.isEmpty(workOrderList)) {
@@ -312,8 +320,14 @@
                             return vo;
                         }).collect(Collectors.toList());
                         monitorMapper.updateOnline(willUpdateList);
-                        //绂荤嚎鐢熸垚宸ュ崟
-                        List<VideoOnlineResult> workOrders = records.stream().filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())).collect(Collectors.toList());
+                        //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
+                        List<VideoOnlineResult> workOrders = (List<VideoOnlineResult>) records.stream()
+                                .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus()))
+                                .collect(Collectors.toMap(
+                                        VideoOnlineResult::getIpAddr,
+                                        Function.identity(),
+                                        (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
+                                )).values();
                         uyErrorTypeCheckService.videoOnlineCheck(workOrders);
                     } else {
                         log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);

--
Gitblit v1.8.0