| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | |
| | | String loginToken = requestLoginToken(); |
| | | if (loginToken == null) { |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | |
| | | |
| | | 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;//是否剔除尾节点 |
| | |
| | | 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) |
| | |
| | | .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) |
| | |
| | | .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) |
| | |
| | | .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) |
| | |
| | | .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) |
| | |
| | | .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 |
| | |
| | | command.setBody(JSON.toJSONString(body)); |
| | | command.setMode(ShuttleCommandModeType.MOVE.id); |
| | | command.setTargetLocNo(loc.getLocNo()); |
| | | command.setTaskNo(taskNo); |
| | | return command; |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); |
| | | command.setBody(JSON.toJSONString(body)); |
| | | command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); |
| | | command.setTaskNo(taskNo); |
| | | return command; |
| | | } |
| | | |