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