fuliqi
2024-10-31 ec809f0f35973f5b86c8b5e7cccec8af0bc9803f
ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
@@ -48,18 +48,17 @@
     */
    public TMonitorResult check(TMonitorResult monitor) {
        // 先检测能否访问该ip的网页
        ResponseEntity<Object> res = null;
        log.info("监测IP:" + monitor.getIp());
        ResponseEntity<String> res = null;
        String prefix = "http://";
        if ("127.0.0.1".equals(monitor.getIp())) {
            monitor.setOnline(Boolean.FALSE);
            monitor.setPingOnline(Boolean.FALSE);
            return monitor;
        }
        try {
            res = selfHttpUtil.get(prefix + monitor.getIp(), null, null);
            monitor.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
            monitor.setPingOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
        } catch (Exception e) {
            monitor.setOnline(Boolean.FALSE);
            monitor.setPingOnline(Boolean.FALSE);
        }
        // 如果http得到的不在线,那么再ping一下
        boolean reachable = false;
@@ -72,15 +71,15 @@
        } else {
            map = new HashMap<>();
        }
        if (!monitor.getOnline()) {
        if (!monitor.getPingOnline()) {
            try {
                reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000);
                reachable = InetAddress.getByName(monitor.getIp()).isReachable(5000);
            } catch (IOException e) {
                e.printStackTrace();
            }
            monitor.setOnline(reachable);
            monitor.setPingOnline(reachable);
        }
        if (!monitor.getOnline()) {
        if (!monitor.getPingOnline()) {
            offLineTimes++;
        }
        map.put("checkTimes", checkTimes);
@@ -115,9 +114,10 @@
        }
        boolean webReachable = false;
        try {
            ResponseEntity<Object> res = selfHttpUtil.get(prefix + checkUtil.getIp(), null, null);
            ResponseEntity<String> res = selfHttpUtil.get(prefix + checkUtil.getIp(), null, null);
            webReachable = Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode();
        } catch (Exception e) {
            log.info("检测web异常"+e.getMessage());
            webReachable = Boolean.FALSE;
        }
        // ping
@@ -130,31 +130,39 @@
        } catch (IOException e) {
            e.printStackTrace();
        }
        String imgUrl = "";
        // 查出国标设备,就一条数据
        List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper)
                .orderByDesc(DeviceInfo::getUpdateTime)
                .last("limit 1")
                .list();
        if (! CollectionUtils.isEmpty(gbDevices)) {
            try {
                imgUrl = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), checkUtil.getSerialNumber(), IdUtils.workOrderNO(new Date(), "99999"));
                result.setImg(imgUrl);
            } catch (Exception e) {
                e.printStackTrace();
        if(pingReachable || webReachable) {
            // 查出国标设备,就一条数据
            List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper)
                    .orderByDesc(DeviceInfo::getUpdateTime)
                    .last("limit 1")
                    .list();
            if (!CollectionUtils.isEmpty(gbDevices)) {
                try {
                    imgUrl = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), checkUtil.getSerialNumber(), IdUtils.workOrderNO(new Date(), "99999"));
                    result.setImg(imgUrl);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        String status = "";
        if (! webReachable) {
            status += "设备web访问失败;";
        }else if(webReachable){
            status += "设备web访问正常;";
        }
        if (! pingReachable) {
            status += "设备ip未ping通;";
        }else if(pingReachable){
            status += "设备ipPing正常;";
        }
        if (StringUtils.isEmpty(imgUrl)) {
            status += "未获取到图片";
        }else {
            status += "获取图片正常";
        }
        result.setStatus(status);
        return result;
@@ -187,6 +195,8 @@
        String status = "";
        if (! pingReachable) {
            status += "ip未ping通;";
        }else {
            status += "成功";
        }
        result.setStatus(status);
        return result;