From 8a4d482469e2078cce3cf227c11be862e94b860d Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 12 四月 2024 20:25:24 +0800 Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 15 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java index 600cd12..9dedf44 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java @@ -135,7 +135,7 @@ ///璇诲彇鍥涘悜绌挎杞︾姸鎬�-end //灏忚溅澶勪簬蹇欑鐘舵�侊紝灏嗘爣璁扮疆涓簍rue - if (!shuttleProtocol.getIdle()) { + if (deviceStatus == 1 || deviceStatus == 2 || deviceStatus == 5) { shuttleProtocol.setPakMk(true); } @@ -228,25 +228,37 @@ ArrayList<HashMap<String, Object>> modes = new ArrayList<>(); //鑾峰彇鍒嗘璺緞 ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(nodes); - for (ArrayList<NavigateNode> sectionNodes : data) { + for (int idx = 0; idx < data.size(); idx++) { + ArrayList<NavigateNode> sectionNodes = data.get(idx); + boolean isRemoveFooterNode = false;//鏄惁鍓旈櫎灏捐妭鐐� + if (idx != data.size() - 1) { + isRemoveFooterNode = true;//鍓旈櫎灏捐妭鐐� + } + boolean flag = true; int oper; //寮�濮嬭矾寰� - NavigateNode startPath = nodes.get(0); + NavigateNode startPath = sectionNodes.get(0); + //缁撴潫璺緞 + NavigateNode targetPath = sectionNodes.get(sectionNodes.size() - 1); if (ShuttleRunDirection.get(startPath.getDirection()) == ShuttleRunDirection.LEFT || ShuttleRunDirection.get(startPath.getDirection()) == ShuttleRunDirection.RIGHT) { //姣嶈建鏂瑰悜 oper = 5; - }else { + } else { //瀛愯建鏂瑰悜 oper = 6; } - for (NavigateNode node : sectionNodes) { + for (int i = 0; i < sectionNodes.size(); i++) { + if (isRemoveFooterNode && i == sectionNodes.size() - 1) { + continue; + } + NavigateNode node = sectionNodes.get(i); HashMap<String, Object> map = new HashMap<>(); - map.put("nodexX", node.getX()); - map.put("nodexY", node.getY()); - map.put("nodexZ", node.getZ()); + map.put("nodeX", node.getX()); + map.put("nodeY", node.getY()); + map.put("nodeZ", node.getZ()); if (flag) { map.put("oper", oper); flag = false; @@ -260,7 +272,7 @@ param.put("messageName", "runRoute"); param.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); param.put("deviceNo", device.getDeviceNo()); - param.put("taskId", taskNo); + param.put("taskId", generateDeviceTaskNo(taskNo)); param.put("nodeNum", nodes.size()); param.put("modes", modes); String response = new HttpHandler.Builder() @@ -389,7 +401,7 @@ return false; } } - if (this.shuttleProtocol.getIdle() == null + if (this.shuttleProtocol.getDeviceStatus() == null || this.shuttleProtocol.getPakMk() == null || this.shuttleProtocol.getErrorCode() == null || this.shuttleProtocol.getProtocolStatus() == null @@ -397,7 +409,7 @@ return false; } - boolean res = this.shuttleProtocol.getIdle() + boolean res = (this.shuttleProtocol.getDeviceStatus() == 3 || this.shuttleProtocol.getDeviceStatus() == 11) && this.shuttleProtocol.getPakMk() && this.shuttleProtocol.getErrorCode().equals("0") && this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id @@ -407,7 +419,7 @@ @Override public boolean isRequireCharge() { - if (this.shuttleProtocol.getIdle() == null + if (this.shuttleProtocol.getDeviceStatus() == null || this.shuttleProtocol.getPakMk() == null || this.shuttleProtocol.getErrorCode() == null || this.shuttleProtocol.getProtocolStatus() == null @@ -415,7 +427,7 @@ return false; } - boolean res = this.shuttleProtocol.getIdle() + boolean res = (this.shuttleProtocol.getDeviceStatus() == 3) && this.shuttleProtocol.getPakMk() && this.shuttleProtocol.getErrorCode().equals("0") && this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id @@ -475,7 +487,7 @@ ArrayList<NavigateNode> path = new ArrayList<>(); if (shuttleProtocol.getTaskNo() != 0) { //瀛樺湪浠诲姟锛岃幏鍙栨寚浠� - Object object = redisUtil.get(DeviceRedisConstant.SHUTTLE_FLAG + shuttleProtocol.getTaskNo()); + Object object = redisUtil.get(DeviceRedisConstant.SHUTTLE_WORK_FLAG + shuttleProtocol.getTaskNo()); if (object != null) { ShuttleRedisCommand redisCommand = JSON.parseObject(object.toString(), ShuttleRedisCommand.class); List<NavigateNode> nodes = redisCommand.getAssignCommand().getNodes();//绌挎杞﹂璁¤矾寰� @@ -488,12 +500,21 @@ } @Override + public int generateDeviceTaskNo(int taskNo) { + int no = taskNo % 255; + if (no <= 1) { + no = 2; + } + return no; + } + + @Override public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed) { HashMap<String, Object> body = new HashMap<>(); body.put("messageName", "runOrder"); body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo())); - body.put("taskId", taskNo); + body.put("taskId", generateDeviceTaskNo(taskNo)); LocService locService = SpringUtils.getBean(LocService.class); Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>() -- Gitblit v1.9.1