|  |  | 
 |  |  | package com.zy.common.utils; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.zy.common.model.NavigateNode; | 
 |  |  | import com.zy.core.model.command.NyShuttleHttpCommand; | 
 |  |  | import com.zy.core.model.protocol.NyShuttleProtocol; | 
 |  |  |  | 
 |  |  | import java.util.HashMap; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Map; | 
 |  |  | import java.util.Random; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 牛眼四向穿梭车HTTP请求工具类 | 
 |  |  |  */ | 
 |  |  | public class NyHttpUtils { | 
 |  |  |  | 
 |  |  |     private static final String requestUrl = "localhost:9090/skwcs"; | 
 |  |  |  | 
 |  |  |     //获取HTTP请求标准结构体 | 
 |  |  |     public static NyShuttleHttpCommand getHttpStandard(Integer shuttleNo) { | 
 |  |  | 
 |  |  |         HashMap<String, Object> body = new HashMap<>(); | 
 |  |  |         body.put("requestType", "move");//移动命令 | 
 |  |  |         body.put("taskId", wrkNo);//任务号 | 
 |  |  |         body.put("start", start);//起点 | 
 |  |  |         body.put("target", target);//终点 | 
 |  |  |         body.put("start", navigateNodeToNyPointNode(start));//起点 | 
 |  |  |         body.put("target", navigateNodeToNyPointNode(target));//终点 | 
 |  |  |         request.setBody(body); | 
 |  |  |  | 
 |  |  |         httpStandard.setRequest(request); | 
 |  |  | 
 |  |  |         HashMap<String, Object> body = new HashMap<>(); | 
 |  |  |         body.put("requestType", in ? "intoLift" : "outLift");//进出提升机 | 
 |  |  |         body.put("taskId", wrkNo);//任务号 | 
 |  |  |         body.put("start", start);//起点 | 
 |  |  |         body.put("target", target);//终点 | 
 |  |  |         body.put("start", navigateNodeToNyPointNode(start));//起点 | 
 |  |  |         body.put("target", navigateNodeToNyPointNode(target));//终点 | 
 |  |  |         request.setBody(body); | 
 |  |  |  | 
 |  |  |         httpStandard.setRequest(request); | 
 |  |  | 
 |  |  |         return random.nextInt(9999999); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //发出请求 | 
 |  |  |     public static JSONObject requestCommand(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")) {//读取状态,不需要判断success | 
 |  |  |                 return body; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (body.get("result").equals("success")) { | 
 |  |  |                 return body; | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  | //            e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //地图节点转换牛眼节点 | 
 |  |  |     public static NyShuttleProtocol.NyShuttlePointClass navigateNodeToNyPointNode(NavigateNode node) { | 
 |  |  |         int[] NyPosition = NavigatePositionConvert.WCSXyzToNyXyz(node.getX(), node.getY(), node.getZ());//WCS系统坐标转牛眼坐标 | 
 |  |  |         NyShuttleProtocol.NyShuttlePointClass point = new NyShuttleProtocol.NyShuttlePointClass(); | 
 |  |  |         point.setX(NyPosition[0]); | 
 |  |  |         point.setY(NyPosition[1]); | 
 |  |  |         point.setZ(NyPosition[2]); | 
 |  |  |         return point; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |