zhangnaisong
2024-03-08 9e062ae15051bb5af82aa9cbcd478ead2fb94813
ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
@@ -13,6 +13,7 @@
import com.ruoyi.sy.controller.ArdSyCarController;
import com.ruoyi.utils.forest.UavClient;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections4.map.HashedMap;
import org.java_websocket.WebSocket;
@@ -58,13 +59,21 @@
    private String token;
    private String workspaceId;
    @Autowired
    private UavClient uavClient;
    @Autowired
    private RedisCache redisCache;
    @Value("${uav.enabled}")
    private Boolean uavEnabled;
    @PostConstruct
    public void created() {
        if(!uavEnabled){//无人机加入开关
            return;
        }
        getUavConfig();
        this.login();
@@ -77,6 +86,10 @@
        this.username = ConfigUtils.getConfigValue("uav_username");
        this.password = ConfigUtils.getConfigValue("uav_password");
        this.salt = ConfigUtils.getConfigValue("uav_salt");
        /*this.host = "http://112.98.126.2:6100/";
        this.username = "znstest";
        this.password = "znstest";
        this.salt = "0123456789012345";*/
        if (StringUtils.isEmpty(this.host) || StringUtils.isEmpty(this.username) || StringUtils.isEmpty(this.password) || StringUtils.isEmpty(this.salt)) {
            throw new RuntimeException("无人机参数配置缺失:");
        }
@@ -128,6 +141,7 @@
            //token赋值
            this.token = token;
            this.workspaceId = (String) uavUser.get("workspace_id");
        } catch (ForestNetworkException fe) {
            if (fe.getStatusCode() == 401) {//token失效,重新登录
                this.login();
@@ -136,6 +150,7 @@
                token = (String) uavUser.get("access_token");
                //token赋值
                this.token = token;
                this.workspaceId = (String) uavUser.get("workspace_id");
                return token;
            }
        }
@@ -546,4 +561,260 @@
        }
        return new Base64().encodeToString(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
    }
    public Object checkPointValid(String url, Map<String,Map<String,Object>> data) {
        String token = this.getToken();
        url = this.host + url;
        Map<String,Object> resultMap = checkPointValid(url,token, data);
        return resultMap;
    }
    public Map<String,Object> checkPointValid(String url,String access_token,Map<String,Map<String,Object>> map){
        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient okHttpClient = new OkHttpClient();
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
        Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
    public Object checkLineValid(String url, Map<String,List<Map<String,String>>> data) {
        String token = this.getToken();
        url = this.host + url;
        Map<String,Object> resultMap = checkLineValid(url,token, data);
        return resultMap;
    }
    public Map<String,Object> checkLineValid(String url,String access_token,Map<String,List<Map<String,String>>> map){
        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient okHttpClient = new OkHttpClient();
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
        Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
    public String getWorkspaceId(){
        String token = this.getToken();
        return this.workspaceId;
    }
    public Object addWaylinesPlanning(String url, Map<String,Object> data) {
        String token = this.getToken();
        url = this.host + url;
        Map<String,Object> resultMap = addWaylinesPlanning(url,token, data);
        return resultMap;
    }
    public Map<String,Object> addWaylinesPlanning(String url,String access_token,Map<String,Object> map){
        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient okHttpClient = new OkHttpClient();
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
        Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
    public Object deleteWaylinesPlanning(String url, Map<String,String> data) {
        String token = this.getToken();
        String waylineId = data.get("waylineId");
        url = this.host + url + waylineId;
        Map<String,Object> resultMap = deleteWaylinesPlanning(url,token);
        return resultMap;
    }
    public static Map<String,Object> deleteWaylinesPlanning(String url,String access_token){
        OkHttpClient okHttpClient = new OkHttpClient();
        Request request = new Request.Builder().url(url).delete().addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
    public Object updateWaylinesPlanning(String url, Map<String,Object> data) {
        String token = this.getToken();
        url = this.host + url;
        Map<String,Object> resultMap = updateWaylinesPlanning(url,token, data);
        return resultMap;
    }
    public Map<String,Object> updateWaylinesPlanning(String url,String access_token,Map<String,Object> map){
        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient okHttpClient = new OkHttpClient();
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
        Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
    public Object addAlarm(String url, Map<String,Object> data) {
        String token = this.getToken();
        url = this.host + url;
        data.put("userName",this.username);
        Map<String,Object> resultMap = addAlarm(url,token, data);
        return resultMap;
    }
    public Map<String,Object> addAlarm(String url,String access_token,Map<String,Object> map){
        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient okHttpClient = new OkHttpClient();
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
        Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
    public Object saveCurrentGroup(String url, Map<String,Object> data) {
        String token = this.getToken();
        url = this.host + url;
        Map<String,Object> resultMap = addWaylinesPlanning(url,token, data);
        return resultMap;
    }
    public Map<String,Object> saveCurrentGroup(String url,String access_token,Map<String,Object> map){
        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient okHttpClient = new OkHttpClient();
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
        Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ResponseBody responseBody = response.body();
        try {
            String message = responseBody.string();// 响应体
            Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
            return map0;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return new HashMap();
        }
    }
}