From cdca466c533197157f3255b77fbdb4aac89be064 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 30 八月 2023 08:26:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/utils/NyHttpUtils.java |  109 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 69 insertions(+), 40 deletions(-)

diff --git a/src/main/java/com/zy/common/utils/NyHttpUtils.java b/src/main/java/com/zy/common/utils/NyHttpUtils.java
index 8af6760..12d8c2c 100644
--- a/src/main/java/com/zy/common/utils/NyHttpUtils.java
+++ b/src/main/java/com/zy/common/utils/NyHttpUtils.java
@@ -6,6 +6,8 @@
 import com.zy.core.model.command.NyShuttleHttpCommand;
 import com.zy.core.model.protocol.NyShuttleProtocol;
 
+import java.io.*;
+import java.net.Socket;
 import java.util.*;
 
 /**
@@ -13,13 +15,12 @@
  */
 public class NyHttpUtils {
 
-    private static final String requestUrl = "localhost:9090/tzskwcs";
-
     //鑾峰彇HTTP璇锋眰鏍囧噯缁撴瀯浣�
-    public static NyShuttleHttpCommand getHttpStandard(Integer shuttleNo) {
+    public static NyShuttleHttpCommand getHttpStandard(Integer shuttleNo, Integer wrkNo) {
         NyShuttleHttpCommand httpStandard = new NyShuttleHttpCommand();
         httpStandard.setMsgType("requestMsg");//璇锋眰娑堟伅
         httpStandard.setRobotId(shuttleNo);//杞﹁締缂栧彿
+        httpStandard.setWrkNo(wrkNo);//宸ヤ綔鍙�
 
         //璁剧疆璇锋眰娑堟伅
         NyShuttleHttpCommand.NyRequest request = new NyShuttleHttpCommand.NyRequest();
@@ -35,7 +36,7 @@
 
     //鑾峰彇FAS 鎵嬪姩/鑷姩鍒囨崲
     public static NyShuttleHttpCommand getFASSwitchCommand(Integer shuttleNo, boolean auto) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -48,12 +49,12 @@
 
     //鑾峰彇绉诲姩璇锋眰
     public static NyShuttleHttpCommand getMoveCommand(Integer shuttleNo, Integer wrkNo, NavigateNode start, NavigateNode target) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, wrkNo);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
         body.put("requestType", "move");//绉诲姩鍛戒护
-        body.put("taskId", wrkNo);//浠诲姟鍙�
+        body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
         body.put("start", navigateNodeToNyPointNode(start));//璧风偣
         body.put("target", navigateNodeToNyPointNode(target));//缁堢偣
         request.setBody(body);
@@ -64,12 +65,12 @@
 
     //鑾峰彇杩涘嚭鎻愬崌鏈鸿姹�
     public static NyShuttleHttpCommand getInOutLiftCommand(Integer shuttleNo, Integer wrkNo, NavigateNode start, NavigateNode target, boolean in) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, wrkNo);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
         body.put("requestType", in ? "intoLift" : "outLift");//杩涘嚭鎻愬崌鏈�
-        body.put("taskId", wrkNo);//浠诲姟鍙�
+        body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
         body.put("start", navigateNodeToNyPointNode(start));//璧风偣
         body.put("target", navigateNodeToNyPointNode(target));//缁堢偣
         request.setBody(body);
@@ -80,12 +81,12 @@
 
     //鑾峰彇椤跺崌鍛戒护
     public static NyShuttleHttpCommand getPalletLiftCommand(Integer shuttleNo, Integer wrkNo, boolean lift) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, wrkNo);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
         body.put("requestType", lift ? "liftUp" : "liftDown");//椤跺崌鎴栦笅闄嶅懡浠�
-        body.put("taskId", wrkNo);//浠诲姟鍙�
+        body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
         request.setBody(body);
 
         httpStandard.setRequest(request);
@@ -94,12 +95,12 @@
 
     //鑾峰彇鍏呯數鍛戒护
     public static NyShuttleHttpCommand getChargeCommand(Integer shuttleNo, Integer wrkNo, boolean charge) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, wrkNo);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
         body.put("requestType", charge ? "charge" : "stopCharge");//鍏呯數鎴栧仠姝㈠厖鐢�
-        body.put("taskId", wrkNo);//浠诲姟鍙�
+        body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
         request.setBody(body);
 
         httpStandard.setRequest(request);
@@ -108,12 +109,12 @@
 
     //鑾峰彇绠″埗鍛戒护
     public static NyShuttleHttpCommand getSuspendCommand(Integer shuttleNo, Integer wrkNo, boolean suspend) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, wrkNo);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
         body.put("requestType", suspend ? "stop" : "resume");//绠″埗鎴栧彇娑堢鍒�
-        body.put("taskId", wrkNo);//浠诲姟鍙�
+        body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈�
         request.setBody(body);
 
         httpStandard.setRequest(request);
@@ -122,7 +123,7 @@
 
     //鑾峰彇鏇存柊灞傚潗鏍嘮(妤煎眰)鍛戒护
     public static NyShuttleHttpCommand getUpdateZCommand(Integer shuttleNo, Integer z) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -136,7 +137,7 @@
 
     //鑾峰彇璇籉AS鐘舵�佷俊鎭懡浠�
     public static NyShuttleHttpCommand getReadStatusCommand(Integer shuttleNo) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -149,7 +150,7 @@
 
     //鑾峰彇鏇存柊FAS鍩哄噯鍦板浘鍛戒护
     public static NyShuttleHttpCommand getUpdateFASBaseMapCommand(Integer shuttleNo, Integer xBase, Integer yBase, Integer zBase, Integer xEnd, Integer yEnd, Integer zEnd, Integer xBaseCoord, Integer yBaseCoord, Integer xDefaultSpace, Integer yDefaultSpace) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -175,7 +176,7 @@
 
     //鑾峰彇鏇存柊FAS鐗规畩X杞村湴鍥惧懡浠�
     public static NyShuttleHttpCommand getUpdateMapSpecialXAxisCommand(Integer shuttleNo, List<Map<String, Object>> list) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -189,7 +190,7 @@
 
     //鑾峰彇鏇存柊FAS鐗规畩Y杞村湴鍥惧懡浠�
     public static NyShuttleHttpCommand getUpdateMapSpecialYAxisCommand(Integer shuttleNo, List<Map<String, Object>> list) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -203,7 +204,7 @@
 
     //鑾峰彇鏇存柊FAS鐗规畩搴撲綅鐐瑰湴鍥惧懡浠�
     public static NyShuttleHttpCommand getUpdateMapSpecialPointCommand(Integer shuttleNo, List<Map<String, Object>> list) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -217,7 +218,7 @@
 
     //鑾峰彇鏇存柊FAS鎻愬崌鏈虹偣浣嶅湴鍥惧懡浠�
     public static NyShuttleHttpCommand getUpdateMapDevicePointCommand(Integer shuttleNo, List<Map<String, Object>> list) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -231,7 +232,7 @@
 
     //鑾峰彇鍗曚釜RFID褰曞啓鍛戒护
     public static NyShuttleHttpCommand getWriteSingleRFIDCommand(Integer shuttleNo, Integer xPoint, Integer yPoint, Integer zPoint) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -247,7 +248,7 @@
 
     //鑾峰彇鑷姩褰曞啓RFID鍛戒护
     public static NyShuttleHttpCommand getAutoWriteRFIDCommand(Integer shuttleNo, Integer dir, Integer xBase, Integer yBase, Integer zBase, Integer pointEnd, List<Integer> specialPoint) {
-        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo);
+        NyShuttleHttpCommand httpStandard = getHttpStandard(shuttleNo, 9999);
         NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest();
 
         HashMap<String, Object> body = new HashMap<>();
@@ -270,32 +271,60 @@
         return random.nextInt(9999999);
     }
 
+    //鑾峰彇TaskId
+    public static Integer getTaskId() {
+        Random random = new Random();
+        return random.nextInt(999999);
+    }
+
     //鍙戝嚭璇锋眰
-    public static JSONObject requestCommand(NyShuttleHttpCommand httpCommand) {
+    public static JSONObject requestCommand(Socket socket, NyShuttleHttpCommand httpCommand) {
         try {
-            String response = new HttpHandler.Builder()
-                    .setUri(requestUrl)
-                    .setPath("/static/readStatus.json")
-                    .setJson(JSON.toJSONString(httpCommand))
-                    .build()
-                    .doGet();
-            JSONObject jsonObject = JSON.parseObject(response);
-            JSONObject response2 = jsonObject.getJSONObject("response");
-            JSONObject body = response2.getJSONObject("body");
-
-            if (body.get("responseType").equals("state")) {//璇诲彇鐘舵�侊紝涓嶉渶瑕佸垽鏂璼uccess
-                return body;
+            if (socket == null) {
+                return null;
             }
+            // 鑾峰彇杈撳叆娴佸拰杈撳嚭娴�
+            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
+            OutputStreamWriter writer = new OutputStreamWriter(socket.getOutputStream());
+            writer.write(JSON.toJSONString(httpCommand) + "\r\n");
+            writer.flush();
+//            System.out.println("Sent message to server: " + JSON.toJSONString(httpCommand));
 
-            if (body.get("result").equals("success")) {
-                return body;
-            }
+            // 璇诲彇鏈嶅姟鍣ㄧ殑鍝嶅簲
+            StringBuffer sb = new StringBuffer();
+            String response = null;
+            char[] chars = new char[2048];//缂撳啿鍖�
+            do {
+                reader.read(chars);
+                String trim = new String(chars).trim();
+                sb.append(trim);
+                if (sb.lastIndexOf("\r\n") != -1) {
+                    break;
+                }
+            } while (response != null);
+//            System.out.println("Received response from server: " + sb);
+             return JSON.parseObject(sb.toString());
         } catch (Exception e) {
-//            e.printStackTrace();
+            e.printStackTrace();
         }
         return null;
     }
 
+    public static JSONObject filterData(JSONObject data) {
+        Object response = data.get("response");
+        if (response == null) {
+            return null;
+        }
+
+        JSONObject result = JSON.parseObject(response.toString());
+        Object body = result.get("body");
+        if (body == null) {
+            return null;
+        }
+        JSONObject jsonBody = JSON.parseObject(body.toString());
+        return jsonBody;
+    }
+
     //鍦板浘鑺傜偣杞崲鐗涚溂鑺傜偣
     public static NyShuttleProtocol.NyShuttlePointClass navigateNodeToNyPointNode(NavigateNode node) {
         int[] NyPosition = NavigatePositionConvert.WCSXyzToNyXyz(node.getX(), node.getY(), node.getZ());//WCS绯荤粺鍧愭爣杞墰鐪煎潗鏍�

--
Gitblit v1.9.1