From 66fa0e5aa36faedce91b1d60cacccfe7e6286b65 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期三, 03 四月 2024 11:08:30 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 62 ++++++++++++++++++++++++------- 1 files changed, 48 insertions(+), 14 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 9bca7de..b2ad115 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -2318,7 +2318,7 @@ param.setIoType(10); param.setSourceStaNo(122); param.setLocType1((short)1); - param.setRgv(rgvProtocol.getRgvNo()); + param.setRgvNo(rgvProtocol.getRgvNo()); String response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath("/rpc/pakin/empty/loc/v1") @@ -4084,10 +4084,16 @@ * */ public synchronized void rgvRunWrkMastEmptyStaAvoidance() { try{ - Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔� - if (integer==0){ +// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔� +// if (integer==0){ +// return; +// } + WrkMastSta wrkMastSta = wrkMastStaMapper.selectAllWrkStsCountWrkMastSta(null, 0); + if (Cools.isEmpty(wrkMastSta)){ return; } + Integer[] rgvRunSta = RouteUtils.RgvRunSta(wrkMastSta.getStaStart(), wrkMastSta.getStaEnd()); + boolean signRgv = true; for (RgvSlave rgvSlave:slaveProperties.getRgv()) { RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); @@ -4109,17 +4115,45 @@ && rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getStatusType2() == RgvStatusType.IDLE ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ - continue; +// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ + if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){ + signRgv = false; + break; } if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){ - continue; + signRgv = false; + break; } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){ + signRgv = false; + break; + } + }else { + signRgv = false; + break; + } + } + if (signRgv){ + for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (rgvProtocol == null) { continue; } - rgvAvoidanceXY(rgvProtocol.getRgvNo()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); + + // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 + if (rgvProtocol.getStatusType() == RgvStatusType.IDLE + && rgvProtocol.getModeType() == RgvModeType.AUTO + && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 + && rgvProtocol.getTaskNo1()==0 + && rgvProtocol.getTaskNo2()==0 + && rgvProtocol.getStatusType1() == RgvStatusType.IDLE + && rgvProtocol.getStatusType2() == RgvStatusType.IDLE + ) { + BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); + rgvAvoidanceXY(rgvProtocol.getRgvNo(),rgvRunSta); + rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute()); + break; + } } } }catch (Exception e){ @@ -4166,10 +4200,10 @@ /* * 灏忚溅XY绉诲姩 閬胯 * */ - public synchronized boolean rgvAvoidanceXY(Integer rgvId){ + public synchronized boolean rgvAvoidanceXY(Integer rgvId, Integer[] rgvRunSta){ if (rgvId==1){ try{ - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- RgvCommand rgvCommand = new RgvCommand(); rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 @@ -4177,7 +4211,7 @@ rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)101); + rgvCommand.setSourceStaNo1(rgvRunSta[0].shortValue()); rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� @@ -4192,14 +4226,14 @@ } }else { try{ - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- RgvCommand rgvCommand = new RgvCommand(); rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙� rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐� - rgvCommand.setSourceStaNo2((short)117); + rgvCommand.setSourceStaNo2(rgvRunSta[1].shortValue()); rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� -- Gitblit v1.9.1