From c6976365d5bfb39a32db8b541b1fe3ceb30c7826 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 14 二月 2025 10:03:17 +0800
Subject: [PATCH] Merge branch 'dev'

---
 ycl-server/src/main/java/com/ycl/task/OsdTask.java |   75 ++++++++++++++++++++++++++++++-------
 1 files changed, 60 insertions(+), 15 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/OsdTask.java b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
index 1a5a659..5f4f8b9 100644
--- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -2,10 +2,16 @@
 
 
 import com.mongodb.client.result.DeleteResult;
+import com.ycl.api.DH.lib.NetSDKLib;
+import com.ycl.api.DH.lib.structure.NET_CFG_GBMODE_INFO;
+import com.ycl.api.DH.lib.structure.NET_GBMODE_CUSTOMTITLE_INFO;
+import com.ycl.api.DH.lib.structure.NET_TITLE_OSD_INFO;
+import com.ycl.api.DH.module.LoginModule;
 import com.ycl.api.DH.utils.DHApi;
 import com.ycl.api.HK.HKApi;
 import com.ycl.api.YS.YSApi;
 import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.result.BaseResult;
 import com.ycl.platform.domain.result.OSDResult;
 import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
 import com.ycl.platform.domain.result.UY.OsdCheckResult;
@@ -17,6 +23,7 @@
 import com.ycl.utils.DateUtils;
 import com.ycl.utils.StringUtils;
 import constant.ApiConstants;
+import constant.CheckConstants;
 import enumeration.DeviceType;
 import enumeration.general.AreaDeptEnum;
 import lombok.extern.slf4j.Slf4j;
@@ -28,6 +35,9 @@
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
+import java.nio.charset.StandardCharsets;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -35,6 +45,8 @@
 import java.util.concurrent.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+
+import static com.ycl.api.DH.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_GBMODE;
 
 @Slf4j
 @Component("OsdTask")
@@ -59,20 +71,34 @@
     public String YSUserName;
     @Value("${YS.password}")
     public String YSPassword;
+
     /**
      * 閫氳繃鏌ongoDB姣忔棩涓�鏈轰竴妗f暟鎹幏鍙栬澶噄p
+     * 绛涢�夎棰戣澶�
      * 閫氳繃璁惧ip銆佸搧鐗岃皟鐢ㄤ笉鍚宎pi鑾峰彇osd淇℃伅
      * 姣斿mongoDB涓�鏈轰竴妗d俊鎭紝鏁寸悊鎴恟esult瀛樺叆mongo
      * 鍚屾鍝佺墝鍒癿ysql
      */
     public void getOSD() throws ExecutionException, InterruptedException {
         log.info("寮�濮嬭幏鍙朞SD");
+//        //娴峰悍璁惧娴嬭瘯
+//        //鍏ㄦ櫙
+//        OSDResult osd1 = HKApi.getOsdByIP("51031140001320359101","51.95.99.112", HKUserName, HKPassword);
+//        log.info("娴峰悍鍏ㄦ櫙:{}",osd1);
+//        //缁嗚妭
+//        OSDResult osd2 = HKApi.getOsdByIP("51031140001321359101","51.95.99.112", HKUserName, HKPassword);
+//        log.info("娴峰悍缁嗚妭:{}",osd2);
+//        //澶у崕璁惧娴嬭瘯
+//        OSDResult osd3 = DHApi.getOsd("51030244001320120201","51.95.4.3", DHUserName, DHPassword);
+//        log.info("澶у崕鍏ㄦ櫙:{}",osd3);
+//        OSDResult osd4 = DHApi.getOsd("51030244001321120201","51.95.4.3", DHUserName, DHPassword);
+//        log.info("澶у崕缁嗚妭:{}",osd4);
         //鏌ヤ竴鏈轰竴妗onitor
         Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
         List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
         //闇�瑕佽�冩牳鐨勬暟鎹�
         List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
-        if(!CollectionUtils.isEmpty(serialNumbers)) {
+        if (!CollectionUtils.isEmpty(serialNumbers)) {
             ExecutorService executorService = new ThreadPoolExecutor(16,
                     128,
                     5000,
@@ -81,12 +107,15 @@
                     new ThreadPoolExecutor.CallerRunsPolicy()
             );
             List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers);
-            //杩囨护ip
-            monitors = monitors.stream().filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) && !"127.0.0.1".equals(monitor.getIp())).collect(Collectors.toList());
+            //杩囨护鎺夋棤鏁坕p骞剁瓫閫夊嚭瑙嗛璁惧
+            monitors = monitors.stream()
+                    .filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) &&
+                            !"127.0.0.1".equals(monitor.getIp()))
+                    .collect(Collectors.toList());
             List<Future<OSDResult>> futureList = new ArrayList<>(48);
             List<OSDResult> osdResultList = new ArrayList<>();
             for (TMonitor monitor : monitors) {
-                OSDCheckThread thread = new OSDCheckThread(monitor,HKUserName,HKPassword,DHUserName,DHPassword,YSUserName,YSPassword);
+                OSDCheckThread thread = new OSDCheckThread(monitor);
                 Future<OSDResult> future = executorService.submit(thread);
                 futureList.add(future);
             }
@@ -99,12 +128,11 @@
             List<OsdCheckResult> checkResults = new ArrayList<>();
             Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
             for (OSDResult osdResult : osdResultList) {
-                if(osdResult!=null) {
+                if (osdResult != null) {
                     TMonitor monitor = monitorMap.get(osdResult.getSerialNumber());
                     //灏佽OsdCheckResult
                     OsdCheckResult osdCheckResult = getOsdCheckResult(osdResult, monitor);
                     checkCorrect(osdResult, monitor, osdCheckResult);
-                    log.info("鏍¢獙缁撴灉锛歿}", osdCheckResult);
                     checkResults.add(osdCheckResult);
                 }
             }
@@ -115,8 +143,19 @@
                 //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
                 Query pyQuery = new Query(Criteria
                         .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+                List<OsdCheckResult> osdCheckResults = mongoTemplate.find(pyQuery, OsdCheckResult.class);
+                pointService.setDeviceTagByGB(checkResults, CheckConstants.Rule_Category_Video);
+                //娣诲姞鏃ф暟鎹繘鍘�
+                List<String> resultNos = checkResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(osdCheckResults)) {
+                    for (OsdCheckResult mongoResult : osdCheckResults) {
+                        //濡傛灉鏂扮殑缁撴灉涓病鏈夋棫鏁版嵁閭d箞鍔犺繘鍘�
+                        if (!resultNos.contains(mongoResult.getNo())) {
+                            checkResults.add(mongoResult);
+                        }
+                    }
+                }
                 DeleteResult result = mongoTemplate.remove(pyQuery, OsdCheckResult.class);
-                pointService.setDeviceTagByGB(checkResults);
                 //瀛樻斁鍦╩ongo涓�
                 mongoTemplate.insertAll(checkResults);
                 // 宸ュ崟鐢熸垚
@@ -148,25 +187,24 @@
         if (osdResult.getCheckTime() != null && osdResult.getOsdTime() != null) {
             long checkTime = osdResult.getCheckTime().getTime();
             long osdTime = osdResult.getOsdTime().getTime();
-            long timeDiff = (checkTime - osdTime) / 1000;
+            long timeDiff = Math.abs((checkTime - osdTime) / 1000);
             if (timeDiff <= 60) {
                 osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Correct);
             } else {
                 osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Error);
             }
-        }else {
+        } else {
             osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Unknown);
         }
         //妫�鏌ラ�氶亾鍚嶆槸鍚︽纭�
-        //鏍¢獙瑙勫垯锛岃繖閲屾殏鏃朵笉姣旇緝鍏ㄦ櫙鍜岀粏鑺備袱瀛椼��
         if (!StringUtils.isEmpty(osdResult.getName()) && !StringUtils.isEmpty(monitor.getName())) {
-            if (monitor.getName().equals(osdResult.getName()) || monitor.getName().replace("鍏ㄦ櫙", "缁嗚妭").equals(osdResult.getName()) || monitor.getName().replace("缁嗚妭", "鍏ㄦ櫙").equals(osdResult.getName())) {
+            if (monitor.getName().equals(osdResult.getName())) {
                 osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Correct);
                 osdCheckResult.setOsdName(osdResult.getName());
             } else {
                 osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Error);
             }
-        }else {
+        } else {
             osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Unknown);
         }
         //妫�鏌ョ渷鏄惁姝g‘
@@ -176,7 +214,7 @@
             } else {
                 osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Error);
             }
-        }else {
+        } else {
             osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Unknown);
         }
         //妫�鏌ュ競鏄惁姝g‘
@@ -186,7 +224,7 @@
             } else {
                 osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Error);
             }
-        }else {
+        } else {
             osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Unknown);
         }
         //妫�鏌ュ尯鍘挎槸鍚︽纭�
@@ -197,10 +235,17 @@
             } else {
                 osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Error);
             }
-        }else {
+        } else {
             osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Unknown);
         }
     }
 
 
+    public void test() throws ExecutionException, InterruptedException {
+        log.info("娴嬭瘯鑾峰彇OSD");
+        OSDResult osd3 = DHApi.getOsdOld("51030340001320207201", "51.95.34.20", DHUserName, DHPassword);
+        log.info("osd3:{}", osd3);
+        OSDResult osd4 = DHApi.getOsdOld("51030342001320173201", "51.95.33.174", DHUserName, DHPassword);
+        log.info("osd4:{}", osd4);
+    }
 }

--
Gitblit v1.8.0