From c83101eb62f5d4906b9c01ceea6b21a37f9e84d8 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 18 十一月 2025 09:24:53 +0800
Subject: [PATCH] bug修复
---
ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java | 109 +++++++++++++++++-------------------------------------
1 files changed, 34 insertions(+), 75 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
index 4003e46..2349ed3 100644
--- a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
+++ b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
@@ -1,9 +1,9 @@
package com.ycl.thread;
-import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.entity.WorkOrder;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.vo.OnlineThreadVO;
-import com.ycl.platform.domain.vo.UpdateOnlineVO;
+import com.ycl.utils.CheckPointUtil;
import com.ycl.utils.http.SelfHttpUtil;
import constant.RedisConstant;
import enumeration.ErrorType;
@@ -12,13 +12,11 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
import java.util.concurrent.Callable;
/**
@@ -26,20 +24,15 @@
* @date锛�2024/9/10 11:43
*/
@Slf4j
-public class OnlineCheckThread implements Callable<OnlineThreadVO> {
+public class OnlineCheckThread implements Callable<TMonitorResult> {
- private TMonitor monitor;
-
- private RedisTemplate redisTemplate;
-
- private SelfHttpUtil selfHttpUtil;
-
+ private TMonitorResult monitor;
+ private CheckPointUtil checkPointUtil;
private Integer times;
- public OnlineCheckThread(TMonitor monitor, RedisTemplate redisTemplate, SelfHttpUtil selfHttpUtil, Integer times) {
+ public OnlineCheckThread(TMonitorResult monitor, CheckPointUtil checkPointUtil,Integer times) {
this.monitor = monitor;
- this.redisTemplate = redisTemplate;
- this.selfHttpUtil = selfHttpUtil;
+ this.checkPointUtil = checkPointUtil;
this.times = times;
}
@@ -51,79 +44,45 @@
this.times = times;
}
- public SelfHttpUtil getSelfHttpUtil() {
- return selfHttpUtil;
- }
-
- public void setSelfHttpUtil(SelfHttpUtil selfHttpUtil) {
- this.selfHttpUtil = selfHttpUtil;
- }
-
- public TMonitor getMonitor() {
+ public TMonitorResult getMonitor() {
return monitor;
}
- public void setMonitor(TMonitor monitor) {
+ public void setMonitor(TMonitorResult monitor) {
this.monitor = monitor;
}
- public RedisTemplate getRedisTemplate() {
- return redisTemplate;
+ public CheckPointUtil getCheckPointUtil() {
+ return checkPointUtil;
}
- public void setRedisTemplate(RedisTemplate redisTemplate) {
- this.redisTemplate = redisTemplate;
+ public void setCheckPointUtil(CheckPointUtil checkPointUtil) {
+ this.checkPointUtil = checkPointUtil;
}
@Override
- public OnlineThreadVO call() throws Exception {
- // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤�
- ResponseEntity<Object> res = null;
- OnlineThreadVO vo = new OnlineThreadVO();
- vo.setIp(monitor.getIp());
- log.info("鐩戞祴IP锛�" + monitor.getIp());
- String prefix = "http://";
- if ("127.0.0.1".equals(monitor.getIp())) {
- vo.setOnline(Boolean.FALSE);
- return vo;
- }
- try {
- res = selfHttpUtil.get(prefix + monitor.getIp(), null, null);
- vo.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
- } catch (Exception e) {
- vo.setOnline(Boolean.FALSE);
- }
+ public TMonitorResult call() {
+ TMonitorResult result = checkPointUtil.check(monitor,times);
+ if (result.getPingOnline()){
+ result.setPingOnlineStr("1");
- // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓�
- boolean reachable = false;
- if (!vo.getOnline()) {
- try {
- reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000);
- } catch (IOException e) {
- e.printStackTrace();
- }
- vo.setOnline(reachable);
+ }else {
+ result.setPingOnlineStr("-1");
}
- if (!vo.getOnline()) {
- Integer outLineTimes = (Integer) redisTemplate.opsForHash().get(RedisConstant.ONLINE_PREFIX, monitor.getIp());
- if (Objects.isNull(outLineTimes)) {
- outLineTimes = 1;
- } else {
- outLineTimes += 1;
- }
- redisTemplate.opsForHash().put(RedisConstant.ONLINE_PREFIX, monitor.getIp(), outLineTimes);
- // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟
- if (outLineTimes >= times) {
- WorkOrder workOrder = new WorkOrder();
- workOrder.setSerialNumber(monitor.getSerialNumber());
- List<String> errList = new ArrayList<>();
- errList.add(ErrorType.DEVICE_OFFLINE.getValue());
- workOrder.setErrorTypeList(errList);
- workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
- vo.setWorkOrder(workOrder);
- }
+// if ("DX_闀垮緛澶ч亾璐″叴璺矾鍙d笢鍗楁柟鍚慱鏋満_缁嗚妭".equals(result.getName())){
+// log.info("1.鎵撳嵃鏌ュ嚭璁惧淇℃伅:{}",result);
+// }
+ // 鐜板湪闇�瑕佹煡鍑虹姸鎬佷负鏈煡鐨勮澶�
+ if (result.getCreateWorkOrder()!=null && result.getCreateWorkOrder()) {
+ WorkOrder workOrder = new WorkOrder();
+ workOrder.setSerialNumber(result.getNo());
+ List<String> errList = new ArrayList<>();
+ errList.add(ErrorType.DEVICE_OFFLINE.getValue());
+ workOrder.setErrorTypeList(errList);
+ workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ result.setWorkOrder(workOrder);
}
- return vo;
+ return result;
}
}
--
Gitblit v1.8.0