From 38f29e38fcc668171dc05c53d40a36b895c86102 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 10 十月 2024 13:34:28 +0800
Subject: [PATCH] init

---
 ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java |  664 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 661 insertions(+), 3 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
index 1861639..8720596 100644
--- a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
+++ b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.device.uav.service;
 
+import com.alibaba.fastjson.JSON;
 import com.dtflys.forest.exceptions.ForestNetworkException;
 import com.dtflys.forest.exceptions.ForestRuntimeException;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -8,9 +9,14 @@
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.ConfigUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.device.uav.websocketclient.UAVWebsocketClient;
+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;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpMethod;
@@ -24,7 +30,9 @@
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.Map;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.*;
 
 @Service
 @Slf4j(topic = "uav")
@@ -46,16 +54,31 @@
 
     private Map uavUser;//鐧诲綍鐨勭敤鎴蜂俊鎭�
     private ObjectMapper om = new ObjectMapper();
+
+    private Map<String, UAVWebsocketClient> UAVWebsocketClientMap = new HashedMap();
+
+    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();
+        //鍒涘缓鏃犱汉鏈篧ebsocket瀹㈡埛绔�
+        createWebsocketCients();
     }
 
     private void getUavConfig() {
@@ -63,12 +86,18 @@
         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("鏃犱汉鏈哄弬鏁伴厤缃己澶�:");
         }
     }
 
     public String doUavRequest(HttpMethod method, String url, String data) {
+
+        getUavConfig();
         String res = null;
         Method requestMethod = null;
         //鑾峰彇method
@@ -78,13 +107,17 @@
             e.printStackTrace();
         }
         //鎵цmethod
-        this.getToken();//鑾峰彇token楠岃瘉,楠岃瘉token鏈夋晥鎬�
+       // this.getToken();//鑾峰彇token楠岃瘉,楠岃瘉token鏈夋晥鎬�
         try {
             String token = this.getToken();
             res = (String) requestMethod.invoke(this.uavClient, this.host + url, token, data);
         } catch (IllegalAccessException e) {
+            System.out.println("doUavRequest 璁块棶澶辫触");
+            System.out.println(url);
             log.error("doUavRequest 璁块棶澶辫触" + e.getMessage());
         } catch (InvocationTargetException e) {
+            System.out.println("doUavRequest 鎵ц澶辫触");
+            System.out.println(url);
             log.error("doUavRequest 鎵ц澶辫触" + e.getMessage());
             e.printStackTrace();
         }
@@ -103,13 +136,21 @@
         //楠岃瘉token鏈夋晥鎬�
         try {
             String res = uavClient.GET(this.host+"manage/api/v1/devices", token, "{}");
+            res+="";
             //System.out.println(res);
+
+            //token璧嬪��
+            this.token = token;
+            this.workspaceId = (String) uavUser.get("workspace_id");
         } catch (ForestNetworkException fe) {
             if (fe.getStatusCode() == 401) {//token澶辨晥,閲嶆柊鐧诲綍
                 this.login();
                 //鍐嶆鑾峰彇token
                 uavUser = redisCache.getCacheMap("uav:uavUser");
                 token = (String) uavUser.get("access_token");
+                //token璧嬪��
+                this.token = token;
+                this.workspaceId = (String) uavUser.get("workspace_id");
                 return token;
             }
         }
@@ -127,7 +168,7 @@
             //uavClient.GET("logout", null, "{}");
             String res = uavClient.POST(this.host+"login", null, body);
             Map resMap = om.readValue(res, Map.class);
-            if (resMap != null) {
+            if (resMap != null&& resMap.get("data") instanceof Map) {
                 redisCache.setCacheMap("uav:uavUser", (Map) resMap.get("data"));
             }
         } catch (ForestRuntimeException e) {
@@ -136,6 +177,367 @@
         } catch (JsonProcessingException e) {
         } catch (IOException e) {
         }
+    }
+
+    public void createWebsocketCients(){
+        /*String ip = this.host.replace("http://", "");
+        if(this.UAVWebsocketClientMap.get("status") != null && this.UAVWebsocketClientMap.get("control") != null){
+            //鏃犱汉鏈虹姸鎬佺伃娲�
+            UAVWebsocketClient uavStatusWebsocketClient = this.UAVWebsocketClientMap.get("status");
+            uavStatusWebsocketClient.getHeartBeatTimer().cancel();
+            uavStatusWebsocketClient.close();
+            //鏃犱汉鏈烘帶鍒剁伃娲�
+            UAVWebsocketClient uavControlWebsocketClient = this.UAVWebsocketClientMap.get("control");
+            uavControlWebsocketClient.getHeartBeatTimer().cancel();
+            uavControlWebsocketClient.close();
+
+            this.UAVWebsocketClientMap.remove("status");
+            this.UAVWebsocketClientMap.remove("control");
+        }
+
+        String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
+        System.out.println(uavStatusWsURL);
+        UAVWebsocketClient uavStatusWebsocketClient;
+        try {
+            uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
+            uavStatusWebsocketClient.connect();
+            System.out.println("杩炴帴涓�傘�傘��");
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+                uavStatusWebsocketClient.close();
+                return;
+            }
+            Date date = new Date();
+            Timer heartBeatTimer = new Timer();
+            TimerTask heartBeatTask = new TimerTask(){
+                public void run(){
+                    Map<String,Object> para = new HashMap();
+                    para.put("biz_code", "user_cmd");
+                    para.put("version", "1.0");
+                    Date date = new Date();
+                    para.put("time_stamp", String.valueOf(date.getTime()));
+                    Map<String,String> payload = new HashMap();
+                    payload.put("timeStamp", String.valueOf(date.getTime()));
+                    Map<String,Object> data = new HashMap();
+                    data.put("dataHead", "0x7479");
+                    data.put("cmdCode", "0x02");
+                    data.put("payload", payload);
+                    para.put("data", data);
+                    try{
+                        uavStatusWebsocketClient.send(JSON.toJSONString(para));
+                        System.out.println("鏃犱汉鏈虹姸鎬佸績璺冲彂閫�");
+                    }catch(Exception e){
+                        e.printStackTrace();
+                        System.out.println(uavStatusWebsocketClient.getServerUri());
+                    }
+                }
+            };
+            uavStatusWebsocketClient.setHeartBeatTimer(heartBeatTimer);
+            heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
+            this.UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
+        } catch (NumberFormatException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (URISyntaxException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
+        System.out.println(uavControlWsURL);
+        UAVWebsocketClient uavControlWebsocketClient;
+        try {
+            uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
+            uavControlWebsocketClient.connect();
+            System.out.println("杩炴帴涓�傘�傘��");
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+                //鏃犱汉鏈虹姸鎬佺伃娲�
+                UAVWebsocketClient uavStatusWebsocketClient0 =  this.UAVWebsocketClientMap.get("status");
+                uavStatusWebsocketClient0.getHeartBeatTimer().cancel();
+                uavStatusWebsocketClient0.close();
+
+                uavControlWebsocketClient.close();
+                return;
+            }
+            Date date = new Date();
+            Timer heartBeatTimer = new Timer();
+            TimerTask heartBeatTask = new TimerTask(){
+                public void run(){
+                    Map<String,Object> para = new HashMap();
+                    para.put("biz_code", "user_cmd");
+                    para.put("version", "1.0");
+                    Date date = new Date();
+                    para.put("time_stamp", String.valueOf(date.getTime()));
+                    Map<String,String> payload = new HashMap();
+                    payload.put("timeStamp", String.valueOf(date.getTime()));
+                    Map<String,Object> data = new HashMap();
+                    data.put("dataHead", "0x7479");
+                    data.put("cmdCode", "0x02");
+                    data.put("payload", payload);
+                    para.put("data", data);
+                    try{
+                        uavControlWebsocketClient.send(JSON.toJSONString(para));
+                        System.out.println("鏃犱汉鏈烘帶鍒跺績璺冲彂閫�");
+                    }catch(Exception e){
+                        e.printStackTrace();
+                        System.out.println(uavControlWebsocketClient.getServerUri());
+                    }
+                }
+            };
+            uavControlWebsocketClient.setHeartBeatTimer(heartBeatTimer);
+            heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
+            this.UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
+        } catch (NumberFormatException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (URISyntaxException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }*/
+        String ip = this.host.replace("http://", "");
+        Date date = new Date();
+        Timer heartBeatTimer = new Timer();
+        TimerTask heartBeatTask = new TimerTask(){
+            public void run(){
+                if(token != null){//鍒ゆ柇鏄惁涓簄ull
+                    if(UAVWebsocketClientMap.get("status") != null && UAVWebsocketClientMap.get("control") != null){
+                        String oldURL = UAVWebsocketClientMap.get("status").getServerUri().toString();
+                        String oldToken = oldURL.split("x-auth-token=")[1];
+                        if(!oldToken.equals(token)){//token鏇存柊浠庢柊鍒涘缓瀹㈡埛绔�
+                            //鍘熷鎴风鐏椿
+                            UAVWebsocketClientMap.get("status").close();//鏃犱汉鏈虹姸鎬佺伃娲�
+                            UAVWebsocketClientMap.get("control").close();//鏃犱汉鏈烘帶鍒剁伃娲�
+                            UAVWebsocketClientMap.remove("status");
+                            UAVWebsocketClientMap.remove("control");
+
+                            String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
+                            UAVWebsocketClient uavStatusWebsocketClient = null;
+                            try {
+                                uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
+                                uavStatusWebsocketClient.connect();
+                                System.out.println("杩炴帴涓�傘�傘��");
+                                try {
+                                    Thread.sleep(1000);
+                                } catch (InterruptedException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                                if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+                                    uavStatusWebsocketClient.close();
+                                    uavStatusWebsocketClient = null;
+                                }
+                            } catch (NumberFormatException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            } catch (URISyntaxException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+
+                            String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
+                            UAVWebsocketClient uavControlWebsocketClient = null;
+                            try {
+                                uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
+                                uavControlWebsocketClient.connect();
+                                System.out.println("杩炴帴涓�傘�傘��");
+                                try {
+                                    Thread.sleep(1000);
+                                } catch (InterruptedException e) {
+                                    // TODO Auto-generated catch block
+                                    e.printStackTrace();
+                                }
+                                if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+                                    //鏃犱汉鏈虹姸鎬佺伃娲�
+                                    UAVWebsocketClient uavStatusWebsocketClient0 =  UAVWebsocketClientMap.get("status");
+                                    uavStatusWebsocketClient0.close();
+
+                                    uavControlWebsocketClient.close();
+                                    uavStatusWebsocketClient0 = null;
+                                    uavControlWebsocketClient = null;
+                                    //return;
+                                }
+                            } catch (NumberFormatException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            } catch (URISyntaxException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            if(uavStatusWebsocketClient != null || uavControlWebsocketClient != null){
+                                UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
+                                UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
+
+                                Map<String,Object> para = new HashMap();
+                                para.put("biz_code", "user_cmd");
+                                para.put("version", "1.0");
+                                Date date = new Date();
+                                para.put("time_stamp", String.valueOf(date.getTime()));
+                                Map<String,String> payload = new HashMap();
+                                payload.put("timeStamp", String.valueOf(date.getTime()));
+                                Map<String,Object> data = new HashMap();
+                                data.put("dataHead", "0x7479");
+                                data.put("cmdCode", "0x02");
+                                data.put("payload", payload);
+                                para.put("data", data);
+                                try{
+                                    uavStatusWebsocketClient.send(JSON.toJSONString(para));
+                                    uavControlWebsocketClient.send(JSON.toJSONString(para));
+                                    //System.out.println("鏃犱汉鏈哄績璺冲彂閫�");
+                                }catch(Exception e){
+                                    e.printStackTrace();
+                                    System.out.println(uavStatusWebsocketClient.getServerUri());
+                                    System.out.println(uavControlWebsocketClient.getServerUri());
+                                    //鏃犱汉鏈虹姸鎬佺伃娲�
+                                    uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+                                    uavStatusWebsocketClient.close();
+                                    //鏃犱汉鏈烘帶鍒剁伃娲�
+                                    uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+                                    uavControlWebsocketClient.close();
+
+                                    UAVWebsocketClientMap.remove("status");
+                                    UAVWebsocketClientMap.remove("control");
+                                }
+                            }
+                        }else{
+                            Map<String,Object> para = new HashMap();
+                            para.put("biz_code", "user_cmd");
+                            para.put("version", "1.0");
+                            Date date = new Date();
+                            para.put("time_stamp", String.valueOf(date.getTime()));
+                            Map<String,String> payload = new HashMap();
+                            payload.put("timeStamp", String.valueOf(date.getTime()));
+                            Map<String,Object> data = new HashMap();
+                            data.put("dataHead", "0x7479");
+                            data.put("cmdCode", "0x02");
+                            data.put("payload", payload);
+                            para.put("data", data);
+                            UAVWebsocketClient uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+                            UAVWebsocketClient uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+                            try{
+                                uavStatusWebsocketClient.send(JSON.toJSONString(para));
+                                uavControlWebsocketClient.send(JSON.toJSONString(para));
+                                //System.out.println("鏃犱汉鏈哄績璺冲彂閫�");
+                            }catch(Exception e){
+                                e.printStackTrace();
+                                System.out.println(uavStatusWebsocketClient.getServerUri());
+                                System.out.println(uavControlWebsocketClient.getServerUri());
+                                //鏃犱汉鏈虹姸鎬佺伃娲�
+                                uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+                                uavStatusWebsocketClient.close();
+                                //鏃犱汉鏈烘帶鍒剁伃娲�
+                                uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+                                uavControlWebsocketClient.close();
+
+                                UAVWebsocketClientMap.remove("status");
+                                UAVWebsocketClientMap.remove("control");
+                            }
+                        }
+                    }else{
+                        String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
+                        System.out.println(uavStatusWsURL);
+                        UAVWebsocketClient uavStatusWebsocketClient = null;
+                        try {
+                            uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
+                            uavStatusWebsocketClient.connect();
+                            System.out.println("杩炴帴涓�傘�傘��");
+                            try {
+                                Thread.sleep(1000);
+                            } catch (InterruptedException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+                                uavStatusWebsocketClient.close();
+                                uavStatusWebsocketClient = null;
+                            }
+                        } catch (NumberFormatException e) {
+                            // TODO Auto-generated catch block
+                            e.printStackTrace();
+                        } catch (URISyntaxException e) {
+                            // TODO Auto-generated catch block
+                            e.printStackTrace();
+                        }
+
+                        String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
+                        System.out.println(uavControlWsURL);
+                        UAVWebsocketClient uavControlWebsocketClient = null;
+                        try {
+                            uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
+                            uavControlWebsocketClient.connect();
+                            System.out.println("杩炴帴涓�傘�傘��");
+                            try {
+                                Thread.sleep(1000);
+                            } catch (InterruptedException e) {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
+                                //鏃犱汉鏈虹姸鎬佺伃娲�
+                                UAVWebsocketClient uavStatusWebsocketClient0 =  UAVWebsocketClientMap.get("status");
+                                uavStatusWebsocketClient0.close();
+
+                                uavControlWebsocketClient.close();
+                                uavStatusWebsocketClient0 = null;
+                                uavControlWebsocketClient = null;
+                            }
+                        } catch (NumberFormatException e) {
+                            // TODO Auto-generated catch block
+                            e.printStackTrace();
+                        } catch (URISyntaxException e) {
+                            // TODO Auto-generated catch block
+                            e.printStackTrace();
+                        }
+                        if(uavStatusWebsocketClient != null || uavControlWebsocketClient != null){
+                            UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
+                            UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
+
+                            Map<String,Object> para = new HashMap();
+                            para.put("biz_code", "user_cmd");
+                            para.put("version", "1.0");
+                            Date date = new Date();
+                            para.put("time_stamp", String.valueOf(date.getTime()));
+                            Map<String,String> payload = new HashMap();
+                            payload.put("timeStamp", String.valueOf(date.getTime()));
+                            Map<String,Object> data = new HashMap();
+                            data.put("dataHead", "0x7479");
+                            data.put("cmdCode", "0x02");
+                            data.put("payload", payload);
+                            para.put("data", data);
+                            try{
+                                uavStatusWebsocketClient.send(JSON.toJSONString(para));
+                                uavControlWebsocketClient.send(JSON.toJSONString(para));
+                                //System.out.println("鏃犱汉鏈哄績璺冲彂閫�");
+                            }catch(Exception e){
+                                e.printStackTrace();
+                                System.out.println(uavStatusWebsocketClient.getServerUri());
+                                System.out.println(uavControlWebsocketClient.getServerUri());
+                                //鏃犱汉鏈虹姸鎬佺伃娲�
+                                uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
+                                uavStatusWebsocketClient.close();
+                                //鏃犱汉鏈烘帶鍒剁伃娲�
+                                uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
+                                uavControlWebsocketClient.close();
+
+                                UAVWebsocketClientMap.remove("status");
+                                UAVWebsocketClientMap.remove("control");
+                            }
+                        }
+                    }
+                }
+            }
+        };
+        heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
     }
 
 
@@ -159,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();
+        }
+    }
 }

--
Gitblit v1.9.3