From 5c82602d54928cc414177084ab6d81cef4c11d15 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 11 三月 2025 09:33:25 +0800 Subject: [PATCH] getosd数组下标越界问题 以及 离线时间 --- ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java | 1 ycl-server/src/main/java/com/ycl/api/HK/HKApi.java | 2 ycl-server/src/main/java/com/ycl/api/DH/module/LoginModule.java | 49 +++++++++++++++++++----- ycl-server/src/main/java/com/ycl/task/PlatformTask.java | 15 ++++++- ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java | 8 ++-- ycl-server/src/main/java/com/ycl/task/OsdTask.java | 4 +- ycl-server/src/main/java/com/ycl/api/YS/YSApi.java | 21 +++++++--- ycl-server/src/main/java/com/ycl/thread/OSDCheckThread.java | 4 +- ycl-server/src/main/java/com/ycl/calculate/PlatformOnlineCalculation.java | 3 + ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformOnlineServiceImpl.java | 2 10 files changed, 77 insertions(+), 32 deletions(-) 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 4ebafcc..08dc0b9 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,7 +206,7 @@ for (NET_TITLE_OSD_INFO osd : stuOSD) { String osdStr = null; osdStr = new String(osd.szText, StandardCharsets.UTF_8).trim(); -// log.info("TEXT锛�"+osdStr); + log.error("DHTEXTLeftDown锛�"+osdStr); if (!StringUtils.isEmpty(osdStr)) { osdResult.setOSD4(osdStr); } @@ -217,7 +217,7 @@ for (NET_TITLE_OSD_INFO osd : stuOSD) { String osdStr = null; osdStr = new String(osd.szText, StandardCharsets.UTF_8).trim(); - log.error("TEXT锛�"+osdStr); + log.error("DHTEXTRightDown锛�"+osdStr); if (!StringUtils.isEmpty(osdStr)) { if (osdStr.contains("|")) { String[] osdNames = osdStr.split("\\|"); @@ -253,24 +253,36 @@ * @param loginId * @return */ - public static OSDResult getOsdOld(String serialNumber, LLong loginId) { + public static OSDResult getOsdOld(String moName,String serialNumber, LLong loginId) { OSDResult result = new OSDResult(); NetSDKLib.NET_OSD_CUSTOM_TITLE osdInfo4 = new NetSDKLib.NET_OSD_CUSTOM_TITLE(); osdInfo4.emOsdBlendType = NetSDKLib.NET_EM_OSD_BLEND_TYPE.NET_EM_OSD_BLEND_TYPE_MAIN; NetSDKLib.NET_OSD_CUSTOM_TITLE reserve4 = new NetSDKLib.NET_OSD_CUSTOM_TITLE(); osdInfo4.write(); boolean e = false; - e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 0, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); - if (!e) { - log.error("e涓虹┖,灏濊瘯鍙︿竴涓�氶亾"); + if (moName.startsWith("DX_R2")){ //鍒ゆ柇璁惧鏄惁鏄疍X_R2寮�澶� + if (serialNumber.charAt(ApiConstants.SerialNumber_Channel) == ApiConstants.SerialNumber_All) { + e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 0, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); + } + else if (serialNumber.charAt(ApiConstants.SerialNumber_Channel) == ApiConstants.SerialNumber_Detail) { e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 1, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); + } + if (!e) { + log.error("e涓虹┖"); + } + }else { + e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 0, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); + if (!e) { + log.error("e涓虹┖,灏濊瘯鍙︿竴涓�氶亾"); + e = netsdk.CLIENT_GetConfig(loginId, NET_EM_CFG_CUSTOMTITLE, 1, osdInfo4.getPointer(), osdInfo4.size(), 3000, reserve4.getPointer()); + } } if (e) { osdInfo4.read(); NetSDKLib.NET_CUSTOM_TITLE_INFO[] stuCustomTitle = osdInfo4.stuCustomTitle; for (NetSDKLib.NET_CUSTOM_TITLE_INFO net_custom_title_info : stuCustomTitle) { String name = new String(net_custom_title_info.szText, StandardCharsets.UTF_8).trim(); - log.error("name:{}", name); + log.error("DHname:{}", name); if (StringUtils.isNotEmpty(name) && name.contains("|")) { String[] osdNames = name.split("\\|"); //鍓旈櫎鎺夌┖涓� @@ -280,15 +292,30 @@ // nonEmptyList.add(osd); // } // } - result.setOSD1(osdNames[0]); - result.setOSD2(osdNames[1]); - result.setOSD3(osdNames[2]); - result.setName(osdNames[3]); + for (int i = 0; i < osdNames.length; i++) { + if (i == 0) { + result.setOSD1(osdNames[i]); + } + if (i == 1) { + result.setOSD2(osdNames[i]); + } + if (i == 2) { + result.setOSD3(osdNames[i]); + } + if (i == 3) { + result.setName(osdNames[i]); + } + } + + } } + + } else { log.error(serialNumber, "鍒╂棫osd涓虹┖"); } + return result; } diff --git a/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java b/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java index c25df84..f1c6fac 100644 --- a/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java +++ b/ycl-server/src/main/java/com/ycl/api/DH/utils/DHApi.java @@ -9,14 +9,14 @@ @Slf4j public class DHApi { - public static OSDResult getOsd(String serialNumber,String ip, String userName, String password){ + public static OSDResult getOsd(String name,String serialNumber,String ip, String userName, String password){ NetSDKLib.LLong loginId = LoginModule.login(ip, 80, userName, password); if(loginId.longValue() ==0){ return null; } OSDResult osd = LoginModule.getOsd(serialNumber,loginId); if(osd!=null && osd.getOSD1() ==null &&osd.getOSD2()==null && osd.getOSD3()==null &&osd.getName()==null) { - OSDResult osdOld = LoginModule.getOsdOld(serialNumber, loginId); + OSDResult osdOld = LoginModule.getOsdOld(name,serialNumber, loginId); osd.setOSD1(osdOld.getOSD1()); osd.setOSD2(osdOld.getOSD2()); osd.setOSD3(osdOld.getOSD3()); @@ -25,12 +25,12 @@ LoginModule.logout(loginId); return osd; } - public static OSDResult getOsdOld(String serialNumber,String ip, String userName, String password){ + public static OSDResult getOsdOld(String name,String serialNumber,String ip, String userName, String password){ NetSDKLib.LLong loginId = LoginModule.login(ip, 80, userName, password); if(loginId.longValue() ==0){ return null; } - OSDResult osdOld = LoginModule.getOsdOld(serialNumber, loginId); + OSDResult osdOld = LoginModule.getOsdOld(name,serialNumber, loginId); LoginModule.logout(loginId); return osdOld; } 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 b6c5c17..0f15d17 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 @@ -108,7 +108,7 @@ if (node.getNodeType() == Node.ELEMENT_NODE && "TextOverlay".equals(tagName1)) { Element element = (Element) node; String textContent = element.getElementsByTagName(tagName2).item(0).getTextContent(); - // log.info("TEXT : " + textContent); + log.info("HKTEXT : " + textContent); if (i == 0) { osdResult.setOSD1(textContent); } else if (i == 1) { 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 bb8fcdf..40fd8f6 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 @@ -98,11 +98,20 @@ log.error("YSname:{}" , name); if (StringUtils.isNotEmpty(name) && name.contains("|")){ String[] osdNames = name.split("\\|"); - osdResult.setOSD1(osdNames[0]); - osdResult.setOSD2(osdNames[1]); - osdResult.setOSD3(osdNames[2]); - osdResult.setName(osdNames[3]); - osdResult.setOSD4(osdNames[4]); + for (int i = 0; i < osdNames.length; i++) { + if (i == 0) { + osdResult.setOSD1(osdNames[i]); + } + if (i == 1) { + osdResult.setOSD2(osdNames[i]); + } + if (i == 2) { + osdResult.setOSD3(osdNames[i]); + } + if (i == 3) { + osdResult.setName(osdNames[i]); + } + } }else { //鐪佷唤 osdResult.setOSD1(name); @@ -110,7 +119,7 @@ int num = 0; for (NetDEVSDKLib.NETDEV_OSD_TEXT_OVERLAY_S osd : stOSDInfo.astTextOverlay) { String text = new String(osd.szOSDText, StandardCharsets.UTF_8).trim(); -// log.info("YSnum:"+num+",YStexr:"+text); + log.info("YSnum:"+num+",YStexr:"+text); if (num == 0) { osdResult.setOSD2(text); } else if (num == 1) { diff --git a/ycl-server/src/main/java/com/ycl/calculate/PlatformOnlineCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/PlatformOnlineCalculation.java index 549028c..6d4294b 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/PlatformOnlineCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/PlatformOnlineCalculation.java @@ -41,6 +41,7 @@ @Override public void calculate(List<PlatformOnlineVO> list) { + //list 瀵硅薄鏄煡璇� t_platform_online 鏄ㄥぉ鏃舵鐨勯泦鍚堝璞� Map<String,Double> map = new HashMap<>(); if (!CollectionUtils.isEmpty(list)) { for (PlatformOnlineVO platformOnlineVO : list) { @@ -49,7 +50,7 @@ Integer deptId = AreaDeptEnum.fromCode(area).getDeptId(); //绂荤嚎鏃堕暱 Integer time = platformOnlineVO.getTodayOutlineSed(); - //绂荤嚎鏃堕暱杞崲浣嶅垎閽� + //绂荤嚎鏃堕暱杞崲涓哄垎閽� int num = (time / 60) / 30; double score = Math.max(1 - num * 0.1, 0); map.put(deptId+"",score); diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformOnlineServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformOnlineServiceImpl.java index 8191870..2370080 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformOnlineServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformOnlineServiceImpl.java @@ -49,7 +49,7 @@ * @return */ @Override - public Result page(DataCenterQuery query) { + public Result page(DataCenterQuery query) { //鍒嗛〉 骞冲彴 Page<PlatformOnlineVO> page = new Page<>(query.getPageNum(), query.getPageSize()); baseMapper.getPage(page, query); HashMap<String, Object> map = new HashMap<>(); diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java index 8a19b35..25958be 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java @@ -318,7 +318,6 @@ /** 娣诲姞宸ュ崟 */ workOrderService.innerAddWorkOrder(workOrderList); workOrderService.innerAddWorkOrder(distributeList); - } /** 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 5f4f8b9..6db0349 100644 --- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java +++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java @@ -243,9 +243,9 @@ public void test() throws ExecutionException, InterruptedException { log.info("娴嬭瘯鑾峰彇OSD"); - OSDResult osd3 = DHApi.getOsdOld("51030340001320207201", "51.95.34.20", DHUserName, DHPassword); + 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); + OSDResult osd4 = DHApi.getOsdOld("","51030342001320173201", "51.95.33.174", DHUserName, DHPassword); log.info("osd4:{}", osd4); } } diff --git a/ycl-server/src/main/java/com/ycl/task/PlatformTask.java b/ycl-server/src/main/java/com/ycl/task/PlatformTask.java index f9ca8df..88a6f7c 100644 --- a/ycl-server/src/main/java/com/ycl/task/PlatformTask.java +++ b/ycl-server/src/main/java/com/ycl/task/PlatformTask.java @@ -12,8 +12,11 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import javax.swing.text.DateFormatter; import java.io.IOException; import java.net.InetAddress; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; import java.util.Objects; @@ -74,7 +77,11 @@ } if (!reachable) { // 濡傛灉ping涓嶉�氾紝绂荤嚎鏃堕暱鍔�5绉� - redisTemplate.opsForValue().increment(REDIS_KEY_PREFIX + platform.getPlatformIP(), 5); + LocalDateTime localDateTime = LocalDateTime.now(); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String todayTime = localDateTime.format(dateTimeFormatter); + //姣忔redis绱5s + redisTemplate.opsForValue().increment(REDIS_KEY_PREFIX + todayTime + platform.getPlatformIP(), 5); log.warn(platform.getPlatformName() + "骞冲彴鏈猵ing閫�"); } } catch (Exception e) { @@ -94,9 +101,11 @@ .list(); // 灏唈ava.util.Date杞崲涓簀ava.sql.Date java.sql.Date sqlDate = new java.sql.Date(new Date().getTime()); - + LocalDateTime localDateTime = LocalDateTime.now(); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String todayTime = localDateTime.format(dateTimeFormatter); for (Platform platform : platformList) { - Object outLineTime = redisTemplate.opsForValue().get(REDIS_KEY_PREFIX + platform.getPlatformIP()); + Object outLineTime = redisTemplate.opsForValue().get(REDIS_KEY_PREFIX + todayTime + platform.getPlatformIP()); Integer outlineTimeSed = Objects.isNull(outLineTime) ? 0 : (Integer) outLineTime; PlatformOnline one = new LambdaQueryChainWrapper<>(platformOnlineService.getBaseMapper()) .eq(PlatformOnline::getPlatformId, platform.getId()) diff --git a/ycl-server/src/main/java/com/ycl/thread/OSDCheckThread.java b/ycl-server/src/main/java/com/ycl/thread/OSDCheckThread.java index 1d8863b..e9d10d7 100644 --- a/ycl-server/src/main/java/com/ycl/thread/OSDCheckThread.java +++ b/ycl-server/src/main/java/com/ycl/thread/OSDCheckThread.java @@ -39,7 +39,7 @@ } } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) { //澶у崕 - OSDResult osd = DHApi.getOsd(monitor.getSerialNumber(),monitor.getIp(), monitor.getUsername(),monitor.getPassword()); + OSDResult osd = DHApi.getOsd(monitor.getName(),monitor.getSerialNumber(),monitor.getIp(), monitor.getUsername(),monitor.getPassword()); OSDResult osdResult = checkSuccess(monitor, osd); if (osdResult!=null) { return osd; @@ -69,7 +69,7 @@ return hkosd; } //灏濊瘯澶у崕鐨刟pi - OSDResult dhosd = DHApi.getOsd(monitor.getSerialNumber(),monitor.getIp(),monitor.getUsername(),monitor.getPassword()); + OSDResult dhosd = DHApi.getOsd(monitor.getName(),monitor.getSerialNumber(),monitor.getIp(),monitor.getUsername(),monitor.getPassword()); if (dhosd != null) { dhosd.setSerialNumber(monitor.getSerialNumber()); return dhosd; -- Gitblit v1.8.0