From 1d43e01376590a26a8e976a398b4744b6906cab4 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 02 九月 2024 18:16:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 libs/jna.jar                                                                |    0 
 ycl-server/src/main/java/com/ycl/api/HK/HKApi.java                          |   28 +++---
 ycl-server/src/main/java/com/ycl/api/YS/lib/NetDEVSDKLib.java               |   19 +++-
 ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java             |    2 
 ycl-server/src/main/java/com/ycl/task/OsdTask.java                          |   37 +++++---
 ycl-server/src/main/java/com/ycl/task/VideoTask.java                        |   16 +++
 ycl-server/src/main/java/com/ycl/api/YS/YSInit.java                         |    9 ++
 ycl-server/src/main/java/com/ycl/api/YS/YSApi.java                          |  104 +++++++++++++++++++++-----
 ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java        |    5 -
 ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java |    2 
 ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java       |    2 
 11 files changed, 159 insertions(+), 65 deletions(-)

diff --git a/libs/jna.jar b/libs/jna.jar
index e69de29..af5dd08 100644
--- a/libs/jna.jar
+++ b/libs/jna.jar
Binary files differ
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java
index f2427e0..ade1021 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/OSDResult.java
@@ -35,10 +35,7 @@
      * 閫氶亾鍚嶏紙monitor鐨勮澶囧悕锛�
      */
     private String name;
-    /**
-     * OSD4銆�5閮藉彲鑳戒负鍚嶅瓧锛屼袱鏉′竴璧锋瘮瀵�
-     */
-    private String name2;
+
     //osd宸︿笅
     /**
      * 鍥恒�佹灙銆佽矾銆佽タ鍖�
diff --git a/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java b/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
index 694047d..136a3d5 100644
--- a/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
+++ b/ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java
@@ -206,8 +206,6 @@
                                 osdResult.setOSD3(osdStr);
                             }else if(num ==3){
                                 osdResult.setName(osdStr);
-                            }else if(num ==4){
-                                osdResult.setName2(osdStr);
                             }
                         }
                         num++;
diff --git a/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java b/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java
index cd6869c..a427de7 100644
--- a/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java
+++ b/ycl-server/src/main/java/com/ycl/api/HK/HKApi.java
@@ -1,6 +1,7 @@
 package com.ycl.api.HK;
 
 import com.ycl.platform.domain.result.OSDResult;
+import com.ycl.utils.StringUtils;
 import constant.ApiConstants;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpResponse;
@@ -40,21 +41,21 @@
             if (OSDString == null) return null;
 
             //瑙f瀽xml
-            parseXMl(OSDString, "TextOverlay", "displayText", osdResult, null,ip);
+            parseXMl(OSDString, "TextOverlay", "displayText", osdResult, null, ip);
             //鑾峰彇Time
             String timeString = getHttpResponse(hostUrl + ApiConstants.HK_OSD_TIME, userName, password);
             if (timeString == null) return null;
 
             Date date = new Date();
             //瑙f瀽xml
-            parseXMl(timeString, "Time", "localTime", osdResult, date,ip);
+            parseXMl(timeString, "Time", "localTime", osdResult, date, ip);
         } catch (Exception e) {
             return null;
         }
         return osdResult;
     }
 
-    private static void parseXMl(String OSDString, String tagName1, String tagName2, OSDResult osdResult, Date date,String ip) throws ParserConfigurationException, SAXException, IOException {
+    private static void parseXMl(String OSDString, String tagName1, String tagName2, OSDResult osdResult, Date date, String ip) throws ParserConfigurationException, SAXException, IOException {
 
         try {
             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
@@ -66,26 +67,23 @@
                 Node node = nodeList.item(i);
                 if (node.getNodeType() == Node.ELEMENT_NODE && "TextOverlay".equals(tagName1)) {
                     Element element = (Element) node;
-                    String id = element.getElementsByTagName("id").item(0).getTextContent();
                     String textContent = element.getElementsByTagName(tagName2).item(0).getTextContent();
-    //                log.info("TEXT : " + textContent);
-                    if ("1".equals(id)) {
+                    //                log.info("TEXT : " + textContent);
+                    if (i == 0) {
                         osdResult.setOSD1(textContent);
-                    } else if ("2".equals(id)) {
+                    } else if (i == 1) {
                         osdResult.setOSD2(textContent);
-                    } else if ("3".equals(id)) {
+                    } else if (i == 2) {
                         osdResult.setOSD3(textContent);
-                    } else if ("4".equals(id)) {
+                    } else if (i == 3) {
                         osdResult.setName(textContent);
-                    } else if ("5".equals(id)) {
-                        osdResult.setName2(textContent);
-                    } else if ("7".equals(id)) {
+                    } else if (i == 4) {
                         osdResult.setOSD4(textContent);
                     }
                 } else if (node.getNodeType() == Node.ELEMENT_NODE && "Time".equals(tagName1)) {
                     Element element = (Element) node;
                     String textContent = element.getElementsByTagName(tagName2).item(0).getTextContent();
-    //                log.info("TEXT : " + textContent);
+                    //                log.info("TEXT : " + textContent);
                     osdResult.setCheckTime(date);
                     OffsetDateTime dateTime = OffsetDateTime.parse(textContent);
                     // 灏哋ffsetDateTime杞崲涓篋ate瀵硅薄
@@ -93,8 +91,8 @@
                 }
             }
         } catch (Exception e) {
-           log.error("ip:{}鍑虹幇寮傚父,{}",ip,e.getMessage());
-           throw new RuntimeException(e.getMessage());
+            log.error("ip:{}鍑虹幇寮傚父,{}", ip, e.getMessage());
+            throw new RuntimeException(e.getMessage());
         }
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/api/YS/YSApi.java b/ycl-server/src/main/java/com/ycl/api/YS/YSApi.java
index 3ec5e46..e36f651 100644
--- a/ycl-server/src/main/java/com/ycl/api/YS/YSApi.java
+++ b/ycl-server/src/main/java/com/ycl/api/YS/YSApi.java
@@ -3,62 +3,126 @@
 
 import com.sun.jna.Pointer;
 import com.sun.jna.ptr.IntByReference;
+import com.ycl.api.DH.lib.ToolKits;
 import com.ycl.api.DH.utils.DHApi;
 import com.ycl.api.YS.lib.NetDEVSDKLib;
 import com.ycl.api.YS.login.Login;
+import com.ycl.api.YS.util.Common;
 import com.ycl.platform.domain.result.OSDResult;
+import com.ycl.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 
+import javax.swing.*;
+import javax.swing.table.DefaultTableModel;
 import java.nio.charset.StandardCharsets;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Vector;
 
 import static com.ycl.api.YS.lib.NetDEVSDKLib.NETDEV_LOGIN_PROTO_E.NETDEV_LOGIN_PROTO_ONVIF;
 
 @Slf4j
 public class YSApi {
 
-    public static OSDResult getOsd(String ip, String userName, String password){
-        log.info("ip:{},鐢ㄦ埛:{}锛屽瘑鐮�:{}",ip,userName,password);
+    public static OSDResult getOsd(String ip, String userName, String password) {
+        log.info("ip:{},鐢ㄦ埛:{}锛屽瘑鐮�:{}", ip, userName, password);
         //鐧诲綍
         NetDEVSDKLib.NETDEV_DEVICE_LOGIN_INFO_S stDevLoginInfo = new NetDEVSDKLib.NETDEV_DEVICE_LOGIN_INFO_S();
         NetDEVSDKLib.NETDEV_SELOG_INFO_S stSELogInfo = new NetDEVSDKLib.NETDEV_SELOG_INFO_S();
-//        System.arraycopy(userName.getBytes(), 0, stDevLoginInfo.szUserName, 0, userName.getBytes().length);
-//        System.arraycopy(password.getBytes(), 0, stDevLoginInfo.szPassword, 0, password.getBytes().length);
-//        System.arraycopy(ip.getBytes(), 0, stDevLoginInfo.szIPAddr, 0, ip.getBytes().length);
-        stDevLoginInfo.szUserName = userName.getBytes();
-        stDevLoginInfo.szPassword = password.getBytes();
-        stDevLoginInfo.szIPAddr = ip.getBytes();
+        System.arraycopy(userName.getBytes(), 0, stDevLoginInfo.szUserName, 0, userName.getBytes().length);
+        System.arraycopy(password.getBytes(), 0, stDevLoginInfo.szPassword, 0, password.getBytes().length);
+        System.arraycopy(ip.getBytes(), 0, stDevLoginInfo.szIPAddr, 0, ip.getBytes().length);
         stDevLoginInfo.dwPort = 80;
         //鐧诲綍鍗忚
         stDevLoginInfo.dwLoginProto = NETDEV_LOGIN_PROTO_ONVIF;
-        log.info("SDK浼犲弬ip:{},鐢ㄦ埛:{}锛屽瘑鐮�:{}",stDevLoginInfo.szIPAddr,stDevLoginInfo.szUserName,stDevLoginInfo.szPassword);
-        Pointer lpUserID  = YSInit.netdevsdk.NETDEV_Login_V30(stDevLoginInfo, stSELogInfo);
+        Pointer lpUserID = YSInit.netdevsdk.NETDEV_Login_V30(stDevLoginInfo, stSELogInfo);
+        if (lpUserID != null) {
+            OSDResult osdResult = new OSDResult();
+            //鑾峰彇閫氶亾
+            int nMaxChlCount = 256;
+            IntByReference dwChlCount = new IntByReference(nMaxChlCount);
+            NetDEVSDKLib.NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S[] stVideoChlList = (NetDEVSDKLib.NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S[]) new NetDEVSDKLib.NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S().toArray(nMaxChlCount);
+            boolean bRe = YSInit.netdevsdk.NETDEV_QueryVideoChlDetailListEx(lpUserID, dwChlCount, stVideoChlList);
+            if (!bRe) {
+                log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError());
+                return null;
+            }
+            //鑾峰彇鏃堕棿
+            NetDEVSDKLib.NETDEV_TIME_CFG_S stTimeCfg = new NetDEVSDKLib.NETDEV_TIME_CFG_S();
+            stTimeCfg.write();
+            boolean bRetime = NetDemo.netdevsdk.NETDEV_GetSystemTimeCfg(lpUserID, stTimeCfg);
+            if (!bRetime) {
+                log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError());
+                return null;
+            } else {
+                stTimeCfg.read();
+                String strTime = "" + stTimeCfg.stTime.dwYear + "-";
+                if (stTimeCfg.stTime.dwMonth < 10) {
+                    strTime += "0";
+                }
+                strTime = strTime + stTimeCfg.stTime.dwMonth + "-";
+                if (stTimeCfg.stTime.dwDay < 10) {
+                    strTime += "0";
+                }
+                strTime = strTime + stTimeCfg.stTime.dwDay + " ";
+                if (stTimeCfg.stTime.dwHour < 10) {
+                    strTime += "0";
+                }
+                strTime = strTime + stTimeCfg.stTime.dwHour + ":";
+                if (stTimeCfg.stTime.dwMinute < 10) {
+                    strTime += "0";
+                }
+                strTime = strTime + stTimeCfg.stTime.dwMinute + ":";
 
-        log.info("鐧诲綍杩斿洖id:{}",lpUserID);
-        if(lpUserID !=null) {
-            log.info("鐧诲綍鎴愬姛");
+                if (stTimeCfg.stTime.dwSecond < 10) {
+                    strTime += "0";
+                }
+                strTime = strTime + stTimeCfg.stTime.dwSecond;
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                try {
+                    osdResult.setOsdTime(format.parse(strTime));
+                } catch (Exception e) {
+                    log.error(ip + "鏃堕棿瑙f瀽鏈夎");
+                }
+            }
             //鑾峰彇osd
             NetDEVSDKLib.NETDEV_VIDEO_OSD_CFG_S stOSDInfo = new NetDEVSDKLib.NETDEV_VIDEO_OSD_CFG_S();
             stOSDInfo.write();
             IntByReference dwBytesReturned = new IntByReference();
 
-            boolean bRet = YSInit.netdevsdk.NETDEV_GetDevConfig(lpUserID, 0, NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E.NETDEV_GET_OSDCFG, stOSDInfo.getPointer(), 616, dwBytesReturned);
+            boolean bRet = YSInit.netdevsdk.NETDEV_GetDevConfig(lpUserID, stVideoChlList[0].dwChannelID, NetDEVSDKLib.NETDEV_CONFIG_COMMAND_E.NETDEV_GET_OSDCFG, stOSDInfo.getPointer(), 616, dwBytesReturned);
             if (!bRet) {
-                log.error("error code"+YSInit.netdevsdk.NETDEV_GetLastError());
+                log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError());
                 return null;
             }
             stOSDInfo.read();
+            //鐪佷唤
+            String name = new String(stOSDInfo.stNameOSD.szOSDText, StandardCharsets.UTF_8);
+            osdResult.setOSD1(name);
+            int num = 0;
             for (NetDEVSDKLib.NETDEV_OSD_TEXT_OVERLAY_S osd : stOSDInfo.astTextOverlay) {
-                String text = new String(osd.szOSDText, StandardCharsets.UTF_8);
-                log.info("text:" + text);
+                String text = new String(osd.szOSDText, StandardCharsets.UTF_8).trim();
+                if (num == 0) {
+                    osdResult.setOSD2(text);
+                } else if (num == 1) {
+                    osdResult.setOSD3(text);
+                } else if (num == 2) {
+                    osdResult.setName(text);
+                } else if (num == 3) {
+                    osdResult.setOSD4(text);
+                }
+                num++;
             }
             //鐧诲嚭
             YSInit.netdevsdk.NETDEV_Logout(lpUserID);
-        }else {
-            log.error("error code"+YSInit.netdevsdk.NETDEV_GetLastError());
+            return osdResult;
+        } else {
+            log.error("error code" + YSInit.netdevsdk.NETDEV_GetLastError());
         }
         return null;
     }
-    public static void demo(){
+
+    public static void demo() {
         Login.loginIn();
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/api/YS/YSInit.java b/ycl-server/src/main/java/com/ycl/api/YS/YSInit.java
index 22fc161..8adbfad 100644
--- a/ycl-server/src/main/java/com/ycl/api/YS/YSInit.java
+++ b/ycl-server/src/main/java/com/ycl/api/YS/YSInit.java
@@ -10,6 +10,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import javax.swing.*;
 import java.io.File;
 
 @Component
@@ -47,6 +48,14 @@
                 file.mkdir();
             }
 
+            NetDEVSDKLib.NETDEV_REV_TIMEOUT_S pstRevTimeout=new NetDEVSDKLib.NETDEV_REV_TIMEOUT_S();
+            pstRevTimeout.dwRevTimeOut=2;
+            pstRevTimeout.dwFileReportTimeOut=30;
+            pstRevTimeout.write();
+            boolean rbet1=netdevsdk.NETDEV_SetRevTimeOut(pstRevTimeout);
+            boolean rbet2=netdevsdk.NETDEV_SetConnectTime(2, 1);
+
+
         }
     }
     @PreDestroy
diff --git a/ycl-server/src/main/java/com/ycl/api/YS/lib/NetDEVSDKLib.java b/ycl-server/src/main/java/com/ycl/api/YS/lib/NetDEVSDKLib.java
index a14bc35..8ac6b23 100644
--- a/ycl-server/src/main/java/com/ycl/api/YS/lib/NetDEVSDKLib.java
+++ b/ycl-server/src/main/java/com/ycl/api/YS/lib/NetDEVSDKLib.java
@@ -4,7 +4,6 @@
 import com.sun.jna.Library;
 import com.sun.jna.Native;
 import com.sun.jna.Pointer;
-
 import com.sun.jna.Structure;
 import com.sun.jna.ptr.IntByReference;
 import com.sun.jna.ptr.LongByReference;
@@ -130,7 +129,7 @@
 	 * @brief 璁惧鐧诲綍淇℃伅
 	 * @attention
 	 */
-	@Structure.FieldOrder({"byRes", "dwDeviceType" ,"dwLoginProto","dwPort","szIPAddr","szPassword","szUserName"})
+	@Structure.FieldOrder({"szIPAddr", "dwPort" ,"szUserName","szPassword","dwLoginProto","dwDeviceType","byRes"})
 	public class NETDEV_DEVICE_LOGIN_INFO_S extends Structure
 	{
 		public byte[]  	szIPAddr = new byte[NETDEV_LEN_260];	/* IP鍦板潃/鍩熷悕 */
@@ -147,7 +146,7 @@
 	 * @brief 瀹夊叏鐧诲綍淇℃伅
 	 * @attention
 	 */
-	@Structure.FieldOrder({"byRes", "dwSELogCount","dwSELogTime"})
+	@Structure.FieldOrder({"dwSELogCount", "dwSELogTime","byRes"})
 	public class NETDEV_SELOG_INFO_S extends Structure {
 		public int 		dwSELogCount; 			/* 瀹夊叏鐧诲綍娆℃暟 */
 		public int 		dwSELogTime;  			/* 瀹夊叏鐧诲綍鏃堕棿 */
@@ -4962,6 +4961,8 @@
 	 * @brief 瑙嗛閫氶亾璇︾粏淇℃伅 缁撴瀯浣撳畾涔�  Structure definition
 	 * @attention 鏃� None
 	 */
+	@Structure.FieldOrder({"dwChannelID","bPtzSupported","enStatus","dwStreamNum","enChannelType","enVideoFormat","enAddressType", "szIPAddr","dwPort",
+			"szChnName","allowDistribution","dwDeviceType","szManufacturer","szDeviceModel","udwAccessProtocol","pstExtendedInformation","byRes"})
 	public class NETDEV_VIDEO_CHL_DETAIL_INFO_EX_S extends Structure {
 		public int                  dwChannelID;                        /* 閫氶亾ID  Channel ID */
 		public int                  bPtzSupported;                      /* 鏄惁鏀寔浜戝彴 Whether ptz is supported */
@@ -5232,6 +5233,7 @@
 	 * @brief 瓒呮椂鏃堕棿 缁撴瀯浣撳畾涔�  Timeout structure definition
 	 * @attention
 	 */
+	@Structure.FieldOrder({"dwRevTimeOut", "dwFileReportTimeOut","byRes"})
 	public class NETDEV_REV_TIMEOUT_S extends Structure {
 		public int   dwRevTimeOut;                 /* 璁剧疆鎺ユ敹瓒呮椂鏃堕棿 Set timeout for receiving */
 		public int   dwFileReportTimeOut;          /* 璁剧疆鏂囦欢鎿嶄綔瓒呮椂鏃堕棿 Set timeout for file operation */
@@ -5988,7 +5990,7 @@
 	 * @brief OSD鏃堕棿閰嶇疆淇℃伅 OSD time configuration information
 	 * @attention 鏃� None
 	 */
-	@Structure.FieldOrder({"bEnableFlag", "bWeekEnableFlag","stAreaScope","udwDateFormat","udwTimeFormat"})
+	@Structure.FieldOrder({"bEnableFlag", "bWeekEnableFlag","stAreaScope","udwTimeFormat","udwDateFormat"})
 	public class NETDEV_OSD_TIME_S extends Structure {
 		public int                    bEnableFlag;        /** 鏃堕棿OSD浣胯兘, BOOL_TRUE涓轰娇鑳�,BOOL_FALSE涓洪潪浣胯兘 * Enable time OSD, BOOL_TRUE means enable and BOOL_FALSE means disable */
 		public int                    bWeekEnableFlag;    /** 鏄惁鏄剧ず鏄熸湡(棰勭暀) * Display week or not (reserved) */
@@ -6005,7 +6007,7 @@
 	 * @brief OSD瀛楃鍙犲姞淇℃伅 OSD text overlay information
 	 * @attention
 	 */
-	@Structure.FieldOrder({"bEnableFlag", "byRes","stAreaScope","szOSDText"})
+	@Structure.FieldOrder({"bEnableFlag", "stAreaScope","szOSDText","byRes"})
 	public class NETDEV_OSD_TEXT_OVERLAY_S extends Structure {
 		public int  				bEnableFlag;                /** OSD瀛楃鍙犲姞浣胯兘, BOOL_TRUE涓轰娇鑳�,BOOL_FALSE涓洪潪浣胯兘 * Enable OSD text overlay, BOOL_TRUE means enable and BOOL_FALSE means disable */
 		public NETDEV_AREA_SCOPE_S	stAreaScope;                /** OSD瀛楃鍙犲姞鍖哄煙鍧愭爣 * OSD text overlay area coordinates */
@@ -6020,7 +6022,7 @@
 	 * @brief 閫氶亾OSD鐨勫熀鏈睘鎬т俊鎭� Basic channel OSD information
 	 * @attention
 	 */
-	@Structure.FieldOrder({"astTextOverlay", "stNameOSD","stTimeOSD","wTextNum"})
+	@Structure.FieldOrder({"stTimeOSD", "stNameOSD","wTextNum","astTextOverlay"})
 	public class NETDEV_VIDEO_OSD_CFG_S extends Structure {
 		public NETDEV_OSD_TIME_S         stTimeOSD;        /* 閫氶亾鐨勬椂闂碠SD淇℃伅  Information of channel time OSD */
 		public NETDEV_OSD_TEXT_OVERLAY_S stNameOSD;        /* 閫氶亾鐨勫悕绉癘SD淇℃伅  Information of channel name OSD */
@@ -7177,6 +7179,7 @@
 	 * @brief 鏃堕棿閰嶇疆 缁撴瀯浣撳畾涔� Time configuration structure definition
 	 * @attention
 	 */
+	@Structure.FieldOrder({"dwMonth", "dwWeekInMonth" ,"dwDayInWeek","dwHour"})
 	public class NETDEV_TIME_DST_S extends Structure{
 		public int dwMonth;              /* 鏈�(1~12)  Month(1~12)*/
 		public int dwWeekInMonth;        /* 姣忔湀鐨勭N鍛紙1~5锛�  1 for the first week and 5 for the last week in the month */
@@ -7188,6 +7191,7 @@
 	 * @brief 鏃堕棿閰嶇疆 缁撴瀯浣撳畾涔� Time configuration structure definition
 	 * @attention
 	 */
+	@Structure.FieldOrder({"stBeginTime", "stEndTime" ,"dwOffsetTime"})
 	public class NETDEV_TIME_DST_CFG_S extends Structure{
 		public NETDEV_TIME_DST_S   stBeginTime;        /* 澶忎护鏃跺紑濮嬫椂闂� 鍙傝鏋氫妇#NETDEV_TIME_DST_S  DST begin time see enumeration NETDEV_TIME_DST_S */
 		public NETDEV_TIME_DST_S   stEndTime;          /* 澶忎护鏃剁粨鏉熸椂闂� 鍙傝鏋氫妇#NETDEV_TIME_DST_S  DST end time see enumeration NETDEV_TIME_DST_S */
@@ -7198,6 +7202,7 @@
 	 * @brief 鏃堕棿鍙傛暟 缁撴瀯浣撳畾涔� Time parameter Structure definition
 	 * @attention 鏃� None
 	 */
+	@Structure.FieldOrder({"dwYear", "dwMonth" ,"dwDay","dwHour","dwMinute","dwSecond"})
 	public class NETDEV_TIME_S extends Structure{
 		public int   dwYear;                       /* 骞�  Year */
 		public int   dwMonth;                      /* 鏈�  Month */
@@ -7211,6 +7216,7 @@
 	 * @brief 鏃堕棿閰嶇疆 缁撴瀯浣撳畾涔� Time configuration structure definition
 	 * @attention
 	 */
+	@Structure.FieldOrder({"dwTimeZone", "stTime" ,"bEnableDST","stTimeDSTCfg","udwDateFormat","udwHourFormat","byRes"})
 	public class NETDEV_TIME_CFG_S extends Structure{
 		public int     dwTimeZone;             /* 鏃跺尯 鍙傝鏋氫妇# NETDEV_TIME_ZONE_E  Time zone, see enumeration #NETDEV_TIME_ZONE_E */
 		public NETDEV_TIME_S           stTime;                 /* 鏃堕棿  Time */
@@ -10904,6 +10910,7 @@
 	 * @return TRUE琛ㄧず鎴愬姛,鍏朵粬琛ㄧず澶辫触 TRUE means success, and any other value means failure.
 	 * @note
 	 */
+
 	public boolean NETDEV_SetConnectTime(int dwWaitTime, int dwTrytimes);
 
 	/**
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index 5446079..4d89129 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -102,10 +102,12 @@
     public BigDecimal viewConnectStability(Map<String, Object> param) {
         BigDecimal totalDataSum = new BigDecimal((Integer) param.get("totalDataSum"));
         BigDecimal avgCount = (BigDecimal) param.get("avgCount");
+        log.info("瑙嗗浘搴撳鎺ョǔ瀹氭�э紝totalDataSum锛歿}锛宎vgCount锛歿}",totalDataSum,avgCount);
         return BigDecimal.ZERO.compareTo(totalDataSum) == 0 ? BigDecimal.ZERO : avgCount.divide(totalDataSum, 4, RoundingMode.HALF_UP);
     }
 
     //鏍囨敞姝g‘鐜�
+
     public BigDecimal infoAccuracy(Map<String, Object> param) {
         BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites"));
         BigDecimal qualifySiteCount = new BigDecimal((Integer) param.get("qualifySite"));
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java b/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java
index f3b4c57..5293a90 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java
@@ -101,7 +101,7 @@
 
     @GetMapping("/list")
     @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
-    @PreAuthorize("@ss.hasPermi('point:list')")
+//    @PreAuthorize("@ss.hasPermi('point:list')")
     public Result list() {
         return ywPointService.all();
     }
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 f2c565a..ae12191 100644
--- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -4,6 +4,7 @@
 import com.mongodb.client.result.DeleteResult;
 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.OSDResult;
 import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
@@ -65,7 +66,6 @@
      */
     public void getOSD() {
         log.info("寮�濮嬭幏鍙朞SD");
-//        YSApi.getOsd("51.95.66.42",YSUserName,YSPassword);
         //鎵归噺淇敼娴峰悍鍝佺墝闆嗗悎
         List<String> hkList = new ArrayList<>();
         //鎵归噺淇敼澶у崕鍝佺墝闆嗗悎
@@ -92,21 +92,26 @@
             for (TMonitor monitor : monitors) {
                 executorService.submit(() -> {
                     if (DeviceType.HK.getType().equals(monitor.getDeviceType())) {
-                        //娴峰悍鍝佺墝
+                        //娴峰悍
                         OSDResult osd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword);
                         if (checkSuccess(osdResultList, monitor, osd)) {
                             log.info("娴峰悍璋冪敤鎴愬姛" + osd);
                             return;
                         }
                     } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) {
-                        //澶у崕鍝佺墝
+                        //澶у崕
                         OSDResult osd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword);
                         if (checkSuccess(osdResultList, monitor, osd)) {
                             log.info("澶у崕璋冪敤鎴愬姛" + osd);
                             return;
                         }
                     } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) {
-                        //TODO锛氬畤瑙哸pi
+                        //瀹囪
+                        OSDResult osd = YSApi.getOsd(monitor.getIp(), YSUserName, YSPassword);
+                        if (checkSuccess(osdResultList, monitor, osd)) {
+                            log.info("瀹囪璋冪敤鎴愬姛" + osd);
+                            return;
+                        }
                     }
                     //鏈煡鍝佺墝鎴栬�卆pi璋冪敤澶辫触锛屾尐涓墽琛屾墍鏈塧pi
                     OSDResult osd = tryAllApi(monitor, hkList, dhList, ysList);
@@ -155,14 +160,14 @@
             }
             //淇敼鏁版嵁搴撳搧鐗�
             if (!CollectionUtils.isEmpty(hkList)) {
-                log.info("淇敼鍝佺墝");
                 monitorMapper.batchUpdateDeviceType(hkList, DeviceType.HK.getType());
             }
             if (!CollectionUtils.isEmpty(dhList)) {
-                log.info("淇敼鍝佺墝");
                 monitorMapper.batchUpdateDeviceType(dhList, DeviceType.DH.getType());
             }
-            //TODO:瀹囪
+            if (!CollectionUtils.isEmpty(ysList)) {
+                monitorMapper.batchUpdateDeviceType(ysList, DeviceType.YS.getType());
+            }
         }
         log.info("缁撴潫鑾峰彇OSD");
     }
@@ -195,16 +200,11 @@
             }
         }
         //妫�鏌ラ�氶亾鍚嶆槸鍚︽纭�
-        //TODO:鏍¢獙瑙勫垯锛岃繖閲屾殏鏃朵笉姣旇緝鍏ㄦ櫙鍜岀粏鑺備袱瀛椼��
+        //鏍¢獙瑙勫垯锛岃繖閲屾殏鏃朵笉姣旇緝鍏ㄦ櫙鍜岀粏鑺備袱瀛椼��
         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())) {
-                //OSD4鍜�5閮藉彲鑳戒负鍚嶅瓧銆佹瘮杈冨叾涓竴鏉℃纭嵆鍙紝姝g‘浜嗘敼涓烘纭悕瀛�
                 osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Correct);
                 osdCheckResult.setOsdName(osdResult.getName());
-            }else if (monitor.getName().equals(osdResult.getName2()) || monitor.getName().replace("鍏ㄦ櫙","缁嗚妭").equals(osdResult.getName2()) || monitor.getName().replace("缁嗚妭","鍏ㄦ櫙").equals(osdResult.getName2())) {
-                //OSD4鍜�5閮藉彲鑳戒负鍚嶅瓧銆佹瘮杈冨叾涓竴鏉℃纭嵆鍙紝姝g‘浜嗘敼涓烘纭悕瀛�
-                osdCheckResult.setOsdName(osdResult.getName2());
-                osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Correct);
             }else {
                 osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Error);
             }
@@ -269,7 +269,16 @@
             }
             return dhosd;
         }
-        //TODO锛氬畤瑙哸pi
+        //瀹囪api
+        OSDResult ysosd = YSApi.getOsd(monitor.getIp(), YSUserName, YSPassword);
+        if (ysosd != null) {
+            ysosd.setSerialNumber(monitor.getSerialNumber());
+            log.info("瀹囪璋冪敤鎴愬姛"+ysosd);
+            synchronized (ysList) {
+                ysList.add(monitor.getSerialNumber());
+            }
+            return ysosd;
+        }
         return null;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
index b559d09..a5d1da3 100644
--- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -89,7 +89,8 @@
         calculator.calculate(tMonitorVOS);
         log.info("缁撴潫璁$畻涓�鏈轰竴妗f敞鍐岀巼銆佹。妗堣�冩牳姣�");
     }
-    public void oneMonitorQualifyTask(){
+
+    public void oneMonitorQualifyTask() {
         log.info("寮�濮嬭绠椾竴鏈轰竴妗e悎鏍肩巼");
         //璁$畻涓�鏈轰竴妗e悎鏍肩巼
         Date yesterday = DateUtils.addDays(new Date(), -1);
@@ -101,6 +102,7 @@
         calculator.calculate(results);
         log.info("缁撴潫璁$畻涓�鏈轰竴妗e悎鏍肩巼");
     }
+
     public void platformOnlineTask() {
         log.info("寮�濮嬭绠楀钩鍙板湪绾跨巼");
         //璁$畻骞冲彴鍦ㄧ嚎鐜�
@@ -109,6 +111,7 @@
         calculator.calculate(list);
         log.info("缁撴潫璁$畻骞冲彴鍦ㄧ嚎鐜�");
     }
+
     public void osdTask() {
         log.info("寮�濮嬭绠桹sd鏍囨敞銆佹椂闂村噯纭巼");
         //璁$畻Osd鏍囨敞銆佹椂闂村噯纭巼
@@ -125,6 +128,7 @@
     /**
      * 瑙嗛鍥惧儚璧勬簮瀹夊叏锛岄渶瑕佹帓鍦ㄥ钩鍙板湪绾跨巼鍚庨潰銆�
      */
+    //鎵嬪姩鎵撳垎鍙栨渶杩戞暟鎹紝鍓嶇椤甸潰鍔犳墦鍒嗚鍒欐彁绀�
     @Transactional
     public void videoSecurity() {
         ArrayList<ImageResourceSecurity> imageResourceSecurities = new ArrayList<>();
@@ -151,14 +155,20 @@
                     count++;
                 }
             }
-            imageResourceSecurity.setWeakPassword(BigDecimal.valueOf(score).divide(new BigDecimal(100),4, RoundingMode.HALF_UP));
+            imageResourceSecurity.setWeakPassword(BigDecimal.valueOf(score).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP));
             // 鑾峰彇瀛楀吀鍊�-鎬绘暟
             int onlineAssetsTotal = Integer.parseInt(DictUtils.getDictValue("online_assets_total", checkIndexVideo.getDeptName()));
             imageResourceSecurity.setRiskProperty(BigDecimal.valueOf(count / onlineAssetsTotal));
             imageResourceSecurity.setCreateTime(DateUtils.getNowDate());
             imageResourceSecurities.add(imageResourceSecurity);
             // 鏇存柊鎸囨爣鏁版嵁
-            checkIndexVideo.setImageResourceSecurity(imageResourceSecurity.getPlatformOnline().add(imageResourceSecurity.getPropertyAccuracy().add(imageResourceSecurity.getWeakPassword().add(imageResourceSecurity.getRiskProperty()))).multiply(NUM));
+            checkIndexVideo.setImageResourceSecurity(
+                    imageResourceSecurity.getPlatformOnline()
+                            .add(imageResourceSecurity.getPropertyAccuracy()
+                                    .add(imageResourceSecurity.getWeakPassword()
+                                            .add(imageResourceSecurity.getRiskProperty()))).multiply(NUM)
+                            .add(imageResourceSecurity.getBoundaryIntegrity()).multiply(new BigDecimal("0.45"))
+            );
             checkIndexVideoMapper.updateById(checkIndexVideo);
         }
         imageResourceSecurityService.saveBatch(imageResourceSecurities);

--
Gitblit v1.8.0