自动化立体仓库 - WCS系统
#
Junjie
2025-03-18 05f2733c4cdc4ea0765e08d61273728aebb70d16
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -203,7 +203,7 @@
        }
    }
    public JSONObject getRequestBody(String type) {
    public JSONObject getRequestBody(String type, String taskId) {
        try {
            // 获取服务器响应
            JSONObject result = null;
@@ -226,7 +226,14 @@
                }
                if (!responseType.equals(type)) {
                    continue;//响应ID与请求ID不一致,不在调试模式下
                    continue;//响应类型与请求类型不一致,不在调试模式下
                }
                if (taskId != null) {
                    String responseTaskId = resultBody.get("taskId").toString();
                    if (!responseTaskId.equals(taskId)) {
                        continue;//响应ID与请求ID不一致,不在调试模式下
                    }
                }
                result = socketResult;
@@ -458,13 +465,17 @@
            }
            for (NyShuttleHttpCommand requestCommand : commandList) {
                JSONObject result = requestCommand(requestCommand);
                if (result == null) {
                    return response;//请求失败
                while (true) {
                    JSONObject result = requestCommand(requestCommand);
                    if (result == null) {
//                        return response;//请求失败
                        continue;//请求失败尝试重新请求
                    }
                    this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
                    response.setMessage(JSON.toJSONString(result));
                    response.setResult(true);
                    break;
                }
                this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
                response.setMessage(JSON.toJSONString(result));
                response.setResult(true);
            }
            return response;
        } catch (Exception e) {
@@ -813,6 +824,13 @@
    }
    @Override
    public boolean offerSystemMsg(String format, Object... arguments) {
        String msg = News.replace(format, arguments);
        shuttleProtocol.setSystemMsg(msg);
        return true;
    }
    @Override
    public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) {
        NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
        NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo);
@@ -1064,17 +1082,20 @@
//            System.out.println("Sent message to server: " + JSON.toJSONString(httpCommand));
        String requestType = null;
        String taskId = null;
        try {
            requestType = httpCommand.getRequest().getBody().get("requestType").toString();
            taskId = httpCommand.getRequest().getBody().get("taskId").toString();
        } catch (Exception e) {
            return null;
//            return null;
            //taskId可能取空,不报错,正常情况
        }
        // 获取服务器响应
        // 尝试10次
        // 尝试100次
        JSONObject result = null;
        for (int i = 0; i < 10; i++) {
            result = getRequestBody(requestType);
        for (int i = 0; i < 100; i++) {
            result = getRequestBody(requestType, taskId);
            if (result == null) {
                try {
                    Thread.sleep(100);