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 { 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,times); if (result.getPingOnline()){ result.setPingOnlineStr("1"); }else { result.setPingOnlineStr("-1"); } // 现在需要查出状态为未知的设备 if (result.getCreateWorkOrder()!=null && result.getCreateWorkOrder()) { WorkOrder workOrder = new WorkOrder(); workOrder.setSerialNumber(result.getNo()); List errList = new ArrayList<>(); errList.add(ErrorType.DEVICE_OFFLINE.getValue()); workOrder.setErrorTypeList(errList); workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); result.setWorkOrder(workOrder); } return result; } }