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