package com.ycl.thread;
|
|
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.utils.CheckPointUtil;
|
import com.ycl.utils.http.SelfHttpUtil;
|
import constant.RedisConstant;
|
import enumeration.ErrorType;
|
import enumeration.general.WorkOrderStatusEnum;
|
import lombok.extern.slf4j.Slf4j;
|
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.*;
|
import java.util.concurrent.Callable;
|
|
/**
|
* @author:xp
|
* @date:2024/9/10 11:43
|
*/
|
@Slf4j
|
public class OnlineCheckThread implements Callable<TMonitorResult> {
|
|
private TMonitorResult monitor;
|
private CheckPointUtil checkPointUtil;
|
private Integer times;
|
|
public OnlineCheckThread(TMonitorResult monitor, CheckPointUtil checkPointUtil,Integer times) {
|
this.monitor = monitor;
|
this.checkPointUtil = checkPointUtil;
|
this.times = times;
|
}
|
|
public Integer getTimes() {
|
return times;
|
}
|
|
public void setTimes(Integer times) {
|
this.times = times;
|
}
|
|
public TMonitorResult getMonitor() {
|
return monitor;
|
}
|
|
public void setMonitor(TMonitorResult monitor) {
|
this.monitor = monitor;
|
}
|
|
public CheckPointUtil getCheckPointUtil() {
|
return checkPointUtil;
|
}
|
|
public void setCheckPointUtil(CheckPointUtil checkPointUtil) {
|
this.checkPointUtil = checkPointUtil;
|
}
|
|
@Override
|
public TMonitorResult call() {
|
TMonitorResult result = checkPointUtil.check(monitor);
|
// 一天内监测到离线1次以上,生成工单
|
if (result.getOffLineCount() >= times) {
|
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 result;
|
}
|
|
}
|