Junjie
2024-12-03 b757ac18d7aab051f72c8f52c546c7fd715a8196
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -28,6 +28,7 @@
import com.zy.asrs.wcs.rcs.cache.OutputQueue;
import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
import com.zy.asrs.wcs.rcs.entity.DeviceDataLog;
import com.zy.asrs.wcs.rcs.model.CommandResponse;
import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
@@ -240,8 +241,10 @@
    }
    @Override
    public synchronized boolean movePath(List<NavigateNode> nodes, Integer taskNo) {
    public synchronized CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) {
        CommandResponse response = new CommandResponse(false);
        try {
            NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
            //默认地图母轨方向x
            String mapDirection = "x";
            DictService dictService = SpringUtils.getBean(DictService.class);
@@ -254,7 +257,7 @@
            String loginToken = requestLoginToken();
            if (loginToken == null) {
                return false;
                return response;
            }
            HashMap<String, Object> headers = new HashMap<>();
@@ -262,7 +265,7 @@
            ArrayList<HashMap<String, Object>> modes = new ArrayList<>();
            //获取分段路径
            ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(nodes);
            ArrayList<ArrayList<NavigateNode>> data = navigateUtils.getSectionPath(nodes);
            for (int idx = 0; idx < data.size(); idx++) {
                ArrayList<NavigateNode> sectionNodes = data.get(idx);
                boolean isRemoveFooterNode = false;//是否剔除尾节点
@@ -310,7 +313,7 @@
            param.put("taskId", taskNo);
            param.put("nodeNum", nodes.size());
            param.put("modes", modes);
            String response = new HttpHandler.Builder()
            String responseStr = new HttpHandler.Builder()
                    .setUri(API_URL)
                    .setPath("/RDS/runRoute")
                    .setHeaders(headers)
@@ -318,33 +321,36 @@
                    .setTimeout(60, TimeUnit.SECONDS)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            JSONObject jsonObject = JSON.parseObject(responseStr);
            Integer code = jsonObject.getInteger("code");
            System.out.println("路径下发" + taskNo);
            System.out.println(JSON.toJSONString(jsonObject));
            System.out.println(JSON.toJSONString(param));
            if (code.equals(200)) {
                System.out.println("路径下发" + taskNo);
                return true;
                response.setResult(true);
                response.setMessage(responseStr);
                return response;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
        return response;
    }
    @Override
    public synchronized boolean move(ShuttleCommand command) {
    public synchronized CommandResponse move(ShuttleCommand command) {
        CommandResponse response = new CommandResponse(false);
        try {
            String loginToken = requestLoginToken();
            if (loginToken == null) {
                return false;
                return response;
            }
            HashMap<String, Object> headers = new HashMap<>();
            headers.put("Authorization", "Bearer " + loginToken);
            String response = new HttpHandler.Builder()
            String responseStr = new HttpHandler.Builder()
                    .setUri(API_URL)
                    .setPath("/RDS/runOrder")
                    .setHeaders(headers)
@@ -352,31 +358,34 @@
                    .setTimeout(60, TimeUnit.SECONDS)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            JSONObject jsonObject = JSON.parseObject(responseStr);
            Integer code = jsonObject.getInteger("code");
            System.out.println(JSON.toJSONString(command.getBody()));
            if (code.equals(200)) {
                this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
                return true;
                response.setResult(true);
                response.setMessage(responseStr);
                return response;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
        return response;
    }
    @Override
    public synchronized boolean lift(ShuttleCommand command) {
    public synchronized CommandResponse lift(ShuttleCommand command) {
        CommandResponse response = new CommandResponse(false);
        try {
            String loginToken = requestLoginToken();
            if (loginToken == null) {
                return false;
                return response;
            }
            HashMap<String, Object> headers = new HashMap<>();
            headers.put("Authorization", "Bearer " + loginToken);
            String response = new HttpHandler.Builder()
            String responseStr = new HttpHandler.Builder()
                    .setUri(API_URL)
                    .setPath("/RDS/actionOrder")
                    .setHeaders(headers)
@@ -384,30 +393,33 @@
                    .setTimeout(60, TimeUnit.SECONDS)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            JSONObject jsonObject = JSON.parseObject(responseStr);
            Integer code = jsonObject.getInteger("code");
            if (code.equals(200)) {
                this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
                return true;
                response.setResult(true);
                response.setMessage(responseStr);
                return response;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
        return response;
    }
    @Override
    public synchronized boolean charge(ShuttleCommand command) {
    public synchronized CommandResponse charge(ShuttleCommand command) {
        CommandResponse response = new CommandResponse(false);
        try {
            String loginToken = requestLoginToken();
            if (loginToken == null) {
                return false;
                return response;
            }
            HashMap<String, Object> headers = new HashMap<>();
            headers.put("Authorization", "Bearer " + loginToken);
            String response = new HttpHandler.Builder()
            String responseStr = new HttpHandler.Builder()
                    .setUri(API_URL)
                    .setPath("/RDS/actionOrder")
                    .setHeaders(headers)
@@ -415,38 +427,41 @@
                    .setTimeout(60, TimeUnit.SECONDS)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            JSONObject jsonObject = JSON.parseObject(responseStr);
            Integer code = jsonObject.getInteger("code");
            if (code.equals(200)) {
                this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
                return true;
                response.setResult(true);
                response.setMessage(responseStr);
                return response;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
        return response;
    }
    @Override
    public synchronized boolean reset(ShuttleCommand command) {
    public synchronized CommandResponse reset(ShuttleCommand command) {
        setSyncTaskNo(0);
        setProtocolStatus(ShuttleProtocolStatusType.IDLE);
        enableMoveLoc(null, false);
        return true;
        return new CommandResponse(true, JSON.toJSONString(command));
    }
    @Override
    public boolean updateLocation(ShuttleCommand command) {
    public CommandResponse updateLocation(ShuttleCommand command) {
        CommandResponse response = new CommandResponse(false);
        try {
            String loginToken = requestLoginToken();
            if (loginToken == null) {
                return false;
                return response;
            }
            HashMap<String, Object> headers = new HashMap<>();
            headers.put("Authorization", "Bearer " + loginToken);
            String response = new HttpHandler.Builder()
            String responseStr = new HttpHandler.Builder()
                    .setUri(API_URL)
                    .setPath("/RDS/changeLocation")
                    .setHeaders(headers)
@@ -454,16 +469,18 @@
                    .setTimeout(60, TimeUnit.SECONDS)
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            JSONObject jsonObject = JSON.parseObject(responseStr);
            Integer code = jsonObject.getInteger("code");
            if (code.equals(200)) {
                this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
                return true;
                response.setResult(true);
                response.setMessage(responseStr);
                return response;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
        return response;
    }
    @Override
@@ -733,6 +750,7 @@
        command.setBody(JSON.toJSONString(body));
        command.setMode(ShuttleCommandModeType.MOVE.id);
        command.setTargetLocNo(loc.getLocNo());
        command.setTaskNo(taskNo);
        return command;
    }
@@ -749,6 +767,7 @@
        command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
        command.setBody(JSON.toJSONString(body));
        command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id);
        command.setTaskNo(taskNo);
        return command;
    }
@@ -765,6 +784,7 @@
        command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
        command.setBody(JSON.toJSONString(body));
        command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id);
        command.setTaskNo(taskNo);
        return command;
    }
@@ -782,6 +802,7 @@
        command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo()));
        command.setBody(JSON.toJSONString(body));
        command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id);
        command.setTaskNo(taskNo);
        return command;
    }