From 0f69561e397093b5165c4aac58530721d5c62178 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 25 十一月 2024 11:03:16 +0800 Subject: [PATCH] #led --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 104 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 74 insertions(+), 30 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 56f00c1..ee3af41 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 @@ -31,6 +31,7 @@ import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; import com.zy.asrs.wcs.rcs.entity.Device; import com.zy.asrs.wcs.rcs.entity.DeviceDataLog; +import com.zy.asrs.wcs.rcs.model.CommandResponse; import com.zy.asrs.wcs.rcs.model.command.NyShuttleHttpCommand; import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; import com.zy.asrs.wcs.rcs.model.enums.SlaveType; @@ -123,6 +124,8 @@ //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭 shuttleAction.moveLoc(device); + + Thread.sleep(200); } catch (Exception e) { e.printStackTrace(); } @@ -173,6 +176,7 @@ BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>() .eq(BasShuttle::getShuttleNo, device.getDeviceNo()) .eq(BasShuttle::getHostId, device.getHostId())); + if (basShuttle == null) { basShuttle = new BasShuttle(); //鍥涘悜绌挎杞﹀彿 @@ -182,6 +186,10 @@ basShuttle.setHostId(device.getHostId()); basShuttle.setDeviceId(device.getId().intValue()); shuttleService.save(basShuttle); + }else { + Integer shuttleId = basShuttle.getId(); + basShuttle = new BasShuttle(); + basShuttle.setId(shuttleId); } //浠诲姟鍙� basShuttle.setTaskNo(shuttleProtocol.getTaskNo().intValue()); @@ -429,12 +437,14 @@ } @Override - public boolean movePath(List<NavigateNode> nodes, Integer taskNo) { - return true; + public CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) { + CommandResponse response = new CommandResponse(true); + return response; } @Override - public boolean move(ShuttleCommand command) { + public CommandResponse move(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); try { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); @@ -473,70 +483,86 @@ for (NyShuttleHttpCommand requestCommand : commandList) { JSONObject result = requestCommand(requestCommand); -// if (result == null) { -// return false;//璇锋眰澶辫触 -// } + if (result == null) { + return response;//璇锋眰澶辫触 + } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); } - return true; - } catch (IOException e) { - return false; + return response; + } catch (Exception e) { + e.printStackTrace(); + response.setMessage(e.getMessage()); + return response; } } @Override - public boolean lift(ShuttleCommand command) { + public CommandResponse lift(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); try { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); JSONObject result = requestCommand(httpCommand); if (result == null) { - return false;//璇锋眰澶辫触 + return response;//璇锋眰澶辫触 } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 - return true; - } catch (IOException e) { - return false; + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + return response; + } catch (Exception e) { + e.printStackTrace(); + return response; } } @Override - public boolean charge(ShuttleCommand command) { + public CommandResponse charge(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); try { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); JSONObject result = requestCommand(httpCommand); if (result == null) { - return false;//璇锋眰澶辫触 + return response;//璇锋眰澶辫触 } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 - return true; - } catch (IOException e) { - return false; + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + return response; + } catch (Exception e) { + e.printStackTrace(); + return response; } } @Override - public boolean reset(ShuttleCommand command) { + public 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 { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); JSONObject result = requestCommand(httpCommand); if (result == null) { - return false;//璇锋眰澶辫触 + return response;//璇锋眰澶辫触 } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 - return true; - } catch (IOException e) { - return false; + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + return response; + } catch (Exception e) { + e.printStackTrace(); + return response; } } @@ -787,6 +813,15 @@ } @Override + public boolean requestWaiting() { + if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) { + this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); + return true; + } + return false; + } + + @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(Integer.parseInt(device.getDeviceNo()), taskNo); @@ -794,9 +829,10 @@ ArrayList<HashMap<String, Object>> path = new ArrayList<>(); + Integer taskId = getTaskId(); HashMap<String, Object> body = new HashMap<>(); body.put("requestType", "move");//绉诲姩鍛戒护 - body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈� + body.put("taskId", taskId);//TaskID闇�瑕侀殢鏈� // body.put("start", navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(startCodeNum, device.getHostId())));//璧风偣 // body.put("target", navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(distCodeNum, device.getHostId())));//缁堢偣 body.put("path", path); @@ -839,6 +875,7 @@ command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.MOVE.id); command.setTargetLocNo(loc.getLocNo()); + command.setTaskNo(taskId); return command; } @@ -847,9 +884,10 @@ NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); + Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈� HashMap<String, Object> body = new HashMap<>(); body.put("requestType", lift ? "liftUp" : "liftDown");//椤跺崌鎴栦笅闄嶅懡浠� - body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈� + body.put("taskId", taskId); request.setBody(body); httpStandard.setRequest(request); @@ -858,6 +896,7 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id); + command.setTaskNo(taskId); return command; } @@ -866,9 +905,10 @@ NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); + Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈� HashMap<String, Object> body = new HashMap<>(); body.put("requestType", charge ? "charge" : "stopCharge");//鍏呯數鎴栧仠姝㈠厖鐢� - body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈� + body.put("taskId", taskId); request.setBody(body); httpStandard.setRequest(request); @@ -877,6 +917,7 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id); + command.setTaskNo(taskId); return command; } @@ -896,6 +937,7 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); + command.setTaskNo(taskNo); return command; } @@ -950,6 +992,7 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.RESET.id); + command.setTaskNo(taskNo); return command; } @@ -1050,8 +1093,9 @@ } catch (Exception e) { e.printStackTrace(); } + }else { + break; } - break; } return result;//杩斿洖Body缁撴灉闆� } -- Gitblit v1.9.1