From 11f6eb0bcda5e562d26ebc2c5ccd0672d66da76d Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期一, 15 九月 2025 14:50:46 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 84 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 78 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index f6f1c90..ca6a12f 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -2815,6 +2815,7 @@ && rgvProtocol.getModeType() == RgvModeType.AUTO && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1) ){ + log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); if(rgvProtocol.getTaskNo1() == 9999){ // 棰勮皟搴︿换鍔$‘璁� BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); @@ -2847,6 +2848,23 @@ if (rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo1()!=9999){ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1()); if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭 + wrkMastSta.setWrkSts(4); //琛岃蛋鐘舵�� + try{ + wrkMastStaMapper.updateById(wrkMastSta); + log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); + }catch (Exception e){ + log.error("鏇存柊灏忚溅浠诲姟澶辫触"); + } + boolean rgvComplete = false; + + rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),7); + if (!rgvComplete){ + log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); + break; + } + break; + } + if(wrkMastSta.getWrkSts() == 4){//琛岃蛋纭 wrkMastSta.setWrkSts(2); try{ wrkMastStaMapper.updateById(wrkMastSta); @@ -2923,7 +2941,24 @@ log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); if (rgvProtocol.getTaskNo2() !=0 ){ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1()); - if(wrkMastSta.getWrkSts() == 1){//缂鸿揣纭 + if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭 + wrkMastSta.setWrkSts(4); //琛岃蛋鐘舵�� + try{ + wrkMastStaMapper.updateById(wrkMastSta); + log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); + }catch (Exception e){ + log.error("鏇存柊灏忚溅浠诲姟澶辫触"); + } + boolean rgvComplete = false; + + rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),7); + if (!rgvComplete){ + log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); + break; + } + break; + } + if(wrkMastSta.getWrkSts() == 4){//琛岃蛋鍚庣‘璁� wrkMastSta.setWrkSts(2); try{ wrkMastStaMapper.updateById(wrkMastSta); @@ -3300,7 +3335,7 @@ Short direction = 2;//鍙屽伐浣嶆渶缁堟姷杈句綅缃� boolean sign = false; //鑻ュ彇璐т负宸ヤ綅2涓斿彇璐у彛鍓嶄竴绔欑偣鏈夌墿锛岀粰鍙屽伐浣嶅悓鏃朵笅鍙戞寚浠� - if(wrkMastSta.getWorkSta() == 2 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0){ + if(wrkMastSta.getWorkSta() == 2 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0 && sign){ WrkMastSta wrkMastSta3 = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol2.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 wrkMastSta3.setWorkSta(1); wrkMastSta3.setRgvNo((int) rgvProtocol.getRgvNo()); @@ -3400,7 +3435,7 @@ boolean sign = false; Short direction = 1;//宸ヤ綅1鏂瑰悜 //鑻ュ彇璐т负宸ヤ綅2涓斿彇璐у彛鍓嶄竴绔欑偣鏈夌墿锛岀粰鍙屽伐浣嶅悓鏃朵笅鍙戞寚浠� - if(wrkMastSta.getWorkSta() == 1 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0){ + if(wrkMastSta.getWorkSta() == 1 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0 && sign){ WrkMastSta wrkMastSta3 = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol2.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 wrkMastSta3.setWorkSta(2); wrkMastSta3.setRgvNo((int) rgvProtocol.getRgvNo()); @@ -3876,13 +3911,50 @@ boolean pakIn1 = true; boolean pakIn2 = true; rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - if(wrkMastSta.getWrkSts() == 0){//鍙栬揣 + if(wrkMastSta.getWrkSts() == 0 || wrkMastSta.getWrkSts() == 4){//鍒濆鍚庤璧� + if(wrkMastSta.getWorkSta() == 2){//鍑哄簱RGV鍙栬揣琛岃蛋 + rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� + rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙� + rgvCommand.setTaskStatus2(RgvTaskStatusType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐� + rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆 + rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣 + rgvCommand.setDirection2(direction); + rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭 + pakIn1 = false; + }else{ //鍏ュ簱RGV鍙栬揣琛岃蛋 + rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� + rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙� + rgvCommand.setTaskStatus1(RgvTaskStatusType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� + rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆 + rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅1鐩爣绔欑偣 + rgvCommand.setDirection1(direction); + rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭 + } + if(!pakIn1){ + if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { + //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� + log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); + return false; + } else { + return true; + } + }else{ + if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { + //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� + log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); + return false; + } else { + return true; + } + } + } + if(wrkMastSta.getWrkSts() == 1){//鍙栬揣 if(wrkMastSta.getWorkSta() == 2){//鍑哄簱RGV鍙栬揣 rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙� rgvCommand.setTaskStatus2(RgvTaskStatusType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐� rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆 - rgvCommand.setTargetPosition2(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣 + rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣 rgvCommand.setDirection2(direction); rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭 pakIn1 = false; @@ -3919,7 +3991,7 @@ rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙� rgvCommand.setTaskStatus2(RgvTaskStatusType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣 rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆 - rgvCommand.setTargetPosition2(wrkMastSta.getStaEnd()); //宸ヤ綅2鐩爣绔欑偣 + rgvCommand.setTargetPosition1(wrkMastSta.getStaEnd()); //宸ヤ綅2鐩爣绔欑偣 rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭 pakIn2 = false; }else{ //宸ヤ綅1浠诲姟鏀捐揣 -- Gitblit v1.9.1