From 64efb660b2c119c00432434c0f651f8996483f18 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 21 二月 2025 15:51:13 +0800
Subject: [PATCH] OSD大华数据格式+数据中心重点标签统计数

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java |   53 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
index d238b64..b52a9a4 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
@@ -3,7 +3,9 @@
 import com.ycl.platform.controller.YwThresholdController;
 import com.ycl.platform.domain.entity.WorkOrder;
 import com.ycl.platform.domain.entity.YwThreshold;
+import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
 import com.ycl.platform.domain.result.UY.*;
+import com.ycl.platform.mapper.WorkOrderMapper;
 import com.ycl.platform.service.IYwThresholdService;
 import com.ycl.platform.service.UYErrorTypeCheckService;
 import com.ycl.platform.service.WorkOrderService;
@@ -17,6 +19,7 @@
 import enumeration.general.WorkOrderStatusEnum;
 import lombok.Data;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -37,6 +40,7 @@
 
     private final WorkOrderService workOrderService;
     private final IYwThresholdService ywThresholdService;
+    private final WorkOrderMapper workOrderMapper;
 
     /**
      * 鍥惧儚妫�娴嬬敓鎴愬伐鍗�
@@ -52,27 +56,27 @@
                     WorkOrder workOrder = new WorkOrder();
                     // 淇″彿缂哄け
                     if (-1 == item.getSigna1()) {
-                        this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
+                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
                     }
                     // 鐢婚潰鍋忚壊
                     if (-1 == item.getColor()) {
-                        this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
+                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
                     }
                     // 闆姳骞叉壈
                     if (-1 == item.getSnow()) {
-                        this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
+                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
                     }
                     // 鏉$汗骞叉壈
                     if (-1 == item.getStripe()) {
-                        this.genWorkOrder(workOrder, ErrorType.STRIPE_INTERFERENCE, item.getDeviceId());
+                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
                     }
                     // 鐢婚潰閬尅
                     if (-1 == item.getShade()) {
-                        this.genWorkOrder(workOrder, ErrorType.SCREEN_OCCLUSION, item.getDeviceId());
+                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
                     }
                     // 娓呮櫚搴﹀紓甯�
                     if (-1 == item.getBlur()) {
-                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_CLARITY, item.getDeviceId());
+                        this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
                     }
 //            // 浜害寮傚父
 //            if (-1 == item.getLight()) {
@@ -117,16 +121,31 @@
 
     @Override
     public void videoOnlineCheck(List<VideoOnlineResult> dataList) {
-        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
-            WorkOrder workOrder = new WorkOrder();
-            if (ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())) {
-                this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getDeviceId());
-            }
-//            else if (0 == item.getStatus()) {
-//                this.genWorkOrder(workOrder, ErrorType.UNKNOWN, item.getDeviceId());
-//            }
-            return workOrder;
-        }).collect(Collectors.toList());
+        //鏌ヨ鏁版嵁搴撳凡瀛樺湪鐨勭绾垮伐鍗曡幏鍙杋p闆嗗悎锛屽墧闄�
+        List<String> ips = workOrderMapper.getOfflineWorkOrder();
+        List<WorkOrder> workOrderList = dataList.stream()
+                .filter(item -> CollectionUtils.isEmpty(ips) || !ips.contains(item.getIpAddr()))
+                .map(item -> {
+                    WorkOrder workOrder = new WorkOrder();
+                    if (ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())) {
+                        this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getDeviceId());
+                    }
+                    return workOrder;
+                }).collect(Collectors.toList());
+        workOrderService.innerAddWorkOrder(workOrderList);
+    }
+
+    @Override
+    public void hkOnlineCheck(List<SnapshotDataMonitorResult> dataList) {
+        //鏌ヨ鏁版嵁搴撳凡瀛樺湪鐨勭绾垮伐鍗曡幏鍙杋p闆嗗悎锛屽墧闄�
+        List<String> ips = workOrderMapper.getOfflineWorkOrder();
+        List<WorkOrder> workOrderList = dataList.stream()
+                .filter(item -> CollectionUtils.isEmpty(ips) || !ips.contains(item.getIp()))
+                .map(item -> {
+                    WorkOrder workOrder = new WorkOrder();
+                    this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getExternalIndexCode());
+                    return workOrder;
+                }).collect(Collectors.toList());
         workOrderService.innerAddWorkOrder(workOrderList);
     }
 
@@ -164,7 +183,7 @@
 //            }
             long checkTime = item.getCheckTime().getTime();
             long osdTime = item.getSetTime().getTime();
-            Long timeDiff = (checkTime - osdTime) / 1000;
+            Long timeDiff = Math.abs((checkTime - osdTime) / 1000);
             ywThresholdService.check(YwThreadConstants.Video_DiffTime, timeDiff, item.getDeviceNo(), ywThresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CLOCK_SKEW.getValue());
             return workOrder;
         }).collect(Collectors.toList());

--
Gitblit v1.8.0