From ddb3068a51a8af8aa9a8f8c2cb9b6e9228b0c8d9 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 28 八月 2024 11:53:27 +0800
Subject: [PATCH] 同步国标设备、点播定时任务优化

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 46 insertions(+), 6 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 d48d425..78fd917 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
@@ -9,7 +9,10 @@
 import enumeration.general.WorkOrderStatusEnum;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -30,18 +33,26 @@
      */
     @Override
     public void imageDetectionCheck(List<ImageDetectionResult> dataList) {
-        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+        List<WorkOrder> workOrderList = dataList.stream().filter(item -> 0 == item.getSigna1()
+                || 0 == item.getColor()
+                || 0 == item.getSnow()
+                || 0 == item.getStripe()
+                || 0 == item.getShade()
+                || 0 == item.getBlur()
+                || 0 == item.getLight()
+        )
+        .map(item -> {
             WorkOrder workOrder = new WorkOrder();
             // 淇″彿缂哄け
-            if (0 == item.getSigna1()) {
+            if (0 == item.getSigna1() ) {
                 this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
             }
             // 鐢婚潰鍋忚壊
-            if (0 == item.getColor()) {
+            if ( 0 == item.getColor()) {
                 this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
             }
             // 闆姳骞叉壈
-            if (0 == item.getSnow()) {
+            if ( 0 == item.getSnow()) {
                 this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
             }
             // 鏉$汗骞叉壈
@@ -122,6 +133,28 @@
     }
 
 
+    @Override
+    public void osdCheck(List<PyOsdResult> dataList) {
+        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+            WorkOrder workOrder = new WorkOrder();
+            // osd鏃堕棿
+            if (!item.getCheckTime().equals(item.getSetTime())) {
+                this.genWorkOrder(workOrder, ErrorType.CLOCK_SKEW, item.getDeviceNo());
+            }
+            // osd淇℃伅
+            if (!"璁剧疆姝g‘".equals(item.getOsd1Province())
+                    || (!"璁剧疆姝g‘".equals(item.getOsd1City()))
+                    || (!"璁剧疆姝g‘".equals(item.getOsd1Part()))
+                    || (!"璁剧疆姝g‘".equals(item.getOsd1TimeFormat()))
+                    || (!"璁剧疆姝g‘".equals(item.getOsd1OSD()))
+            ) {
+                this.genWorkOrder(workOrder, ErrorType.OSD_ERROR, item.getDeviceNo());
+            }
+            return workOrder;
+        }).collect(Collectors.toList());
+        workOrderService.innerAddWorkOrder(workOrderList);
+    }
+
     /**
      * 宸ュ崟淇℃伅
      *
@@ -130,8 +163,15 @@
      * @param serialNumber 鍥芥爣鐮�
      */
     private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) {
-        workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
-        workOrder.setErrorType(errorType.getValue());
+        if (! StringUtils.hasText(workOrder.getWorkOrderNo())) {
+            workOrder.setWorkOrderNo(IdUtils.randomNO());
+        }
+        if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+            workOrder.setErrorTypeList(new ArrayList<>());
+            workOrder.getErrorTypeList().add(errorType.getValue());
+        } else {
+            workOrder.getErrorTypeList().add(errorType.getValue());
+        }
         workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
         workOrder.setSerialNumber(serialNumber);
     }

--
Gitblit v1.8.0