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