Просмотр исходного кода

[功能修复]优化无登录应答重新上线

liuf 1 год назад
Родитель
Сommit
18e4562831
1 измененных файлов с 17 добавлено и 0 удалено
  1. 17 0
      src/main/java/com/tmzn/devicelinkykc/message/DeviceMsgHandle.java

+ 17 - 0
src/main/java/com/tmzn/devicelinkykc/message/DeviceMsgHandle.java

@@ -1,5 +1,7 @@
 package com.tmzn.devicelinkykc.message;
 
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -750,7 +752,22 @@ public class DeviceMsgHandle {
 
         DeviceConnectionMsg deviceConnectionMsg = socketHandle.getDeviceConnection(statusServiceOne.getPileCode());
         if (deviceConnectionMsg == null || deviceConnectionMsg.getLoginStatus() != Constant.DEVICE_LOGIN_STATUS) {
+            //下线
             logger.info("设备{}未登录成功不上报", statusServiceOne.getDeviceImei());
+           if(deviceConnectionMsg!=null && deviceConnectionMsg.getLoginTime()>0 && (System.currentTimeMillis()-deviceConnectionMsg.getLoginTime()>30*1000)){
+               //调用重启
+               try{
+                   logger.info("超过30秒设备{}重新上线", statusServiceOne.getDeviceImei());
+                   String url = "http://127.0.0.1:8063/api/device/restLogin/"+statusServiceOne.getPileCode();
+                   HttpResponse execute = HttpRequest.post(url)
+                           .timeout(3000)
+                           .execute();
+                   String body = execute.body();
+                   System.out.println("reset login body:>>>"+body);
+               } catch (Exception ex) {
+                   System.out.println("reset error :>>>"+ex.toString());
+               }
+            }
             return;
         }