From 7769adbcc0be1105e1ff457de0dd262dd3e202ba Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 26 九月 2024 15:28:30 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 68 +++++++++++++++++++++++++++------- 1 files changed, 54 insertions(+), 14 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java index 262d869..19e3251 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java @@ -100,17 +100,15 @@ BufferedReader reader = new BufferedReader(new InputStreamReader(this.socket.getInputStream())); // 璇诲彇鏈嶅姟鍣ㄧ殑鍝嶅簲 StringBuffer sb = new StringBuffer(); - String response = null; char[] chars = new char[2048];//缂撳啿鍖� - do { + while (true) { reader.read(chars); - String trim = new String(chars).trim(); + String trim = new String(chars); sb.append(trim); - if (sb.lastIndexOf("\r\n") != -1) { + if (trim.lastIndexOf("\r\n") != -1) { break; } - } while (response != null); -// System.out.println("Received response from server: " + sb); + } JSONObject result = JSON.parseObject(sb.toString());//寰楀埌鍝嶅簲缁撴灉闆� if (!socketResults.isEmpty() && socketResults.size() >= 5) { @@ -214,11 +212,11 @@ shuttleProtocol.setErrorCode(data.getJSONArray("errCode").getString(0)); //鏄惁椤跺崌 - shuttleProtocol.setHasLift(data.getInteger("liftPosition") == 1 ? true : false); + shuttleProtocol.setHasLift(data.getInteger("liftPosition") == 2 ? true : false); //鏄惁鏈夋墭鐩� shuttleProtocol.setHasPallet(data.getInteger("loadState") == 1 ? true : false); //琛岄┒鏂瑰悜 - shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("direction")); + shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("runDir")); //鏄惁涓哄厖鐢电姸鎬� shuttleProtocol.setHasCharge(data.getInteger("chargState") == 1 ? true : false); @@ -375,6 +373,7 @@ NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); Map<String, Object> body = httpCommand.getRequest().getBody(); Object pathObj = body.get("path"); + int taskId = Integer.parseInt(body.get("taskId").toString()); List<JSONObject> path = JSON.parseArray(JSON.toJSONString(pathObj), JSONObject.class); ArrayList<NyShuttleHttpCommand> commandList = new ArrayList<>(); while (!path.isEmpty()) { @@ -382,7 +381,12 @@ if (path.size() > 10) { List<JSONObject> subList = path.subList(0, 10); list.addAll(subList); - subList.clear(); + + List<JSONObject> tmp = new ArrayList<>(); + for (int i = 10; i < path.size(); i++) { + tmp.add(path.get(i)); + } + path = tmp; }else { list.addAll(path); path.clear(); @@ -393,6 +397,7 @@ NyShuttleHttpCommand.NyRequest request = httpCommandCopy.getRequest(); bodyCopy.put("path", list); + bodyCopy.put("taskId", taskId++); request.setBody(bodyCopy); httpCommandCopy.setRequest(request); @@ -401,9 +406,9 @@ for (NyShuttleHttpCommand requestCommand : commandList) { JSONObject result = requestCommand(requestCommand); - if (result == null) { - return false;//璇锋眰澶辫触 - } +// if (result == null) { +// return false;//璇锋眰澶辫触 +// } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 } return true; @@ -450,6 +455,22 @@ setProtocolStatus(ShuttleProtocolStatusType.IDLE); enableMoveLoc(null, false); return true; + } + + @Override + public boolean updateLocation(ShuttleCommand command) { + try { + //鍙戝嚭璇锋眰 + NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); + JSONObject result = requestCommand(httpCommand); + if (result == null) { + return false;//璇锋眰澶辫触 + } + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 + return true; + } catch (IOException e) { + return false; + } } @Override @@ -553,7 +574,7 @@ if (shuttleService == null) { return false; } - BasShuttle basShuttle = shuttleService.getById(this.device.getDeviceNo()); + BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>().eq(BasShuttle::getDeviceId, this.device.getId())); if (basShuttle == null) { return false; } @@ -574,7 +595,7 @@ return false; } - if (this.shuttleProtocol.getDeviceStatus() == 1 && this.shuttleProtocol.getHasCharge()) { + if (this.shuttleProtocol.getDeviceStatus() == 0 && this.shuttleProtocol.getHasCharge()) { //杩愯涓� && 鍏呯數涓� return true; } @@ -792,6 +813,25 @@ return command; } + @Override + public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) { + NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); + NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); + + HashMap<String, Object> body = new HashMap<>(); + body.put("requestType", "updateFloor");//鏇存柊灞俍 + body.put("z", Utils.getLev(locNo));//鍧愭爣Z + request.setBody(body); + + httpStandard.setRequest(request); + + ShuttleCommand command = new ShuttleCommand(); + command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(httpStandard)); + command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); + return command; + } + //鑾峰彇灏忚溅澶嶄綅鍝嶅簲鍛戒护 public ShuttleCommand getInitCommand(Integer taskNo, Integer code) { LocService locService = SpringUtils.getBean(LocService.class); -- Gitblit v1.9.1