From 83f222c9eebcee8db94d41a081596506f60f9775 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 05 八月 2025 16:59:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  193 +++++++++++++++++++++++++++--------------------
 1 files changed, 111 insertions(+), 82 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 0298d74..a93a7c6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -213,20 +213,20 @@
                         log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
                         continue;
                     }
-                    if (staProtocol.getSiteId()!= 159){
-                        if( Cools.isEmpty(barcodeMat) || "NG".endsWith(barcodeMat) || "NoRead".equals(barcodeMat) || "00000000".equals(barcodeMat)) {
-                            News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcodeMat(), barcodeMat);
-
-                            staProtocol.setWorkNo(wrkNo);
-                            News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
-                            wrkNo++;
-                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
-                            continue;
-                        }
-                    }
+//                    if (staProtocol.getSiteId()!= 159){
+//                        if( Cools.isEmpty(barcodeMat) || "NG".endsWith(barcodeMat) || "NoRead".equals(barcodeMat) || "00000000".equals(barcodeMat)) {
+//                            News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcodeMat(), barcodeMat);
+//
+//                            staProtocol.setWorkNo(wrkNo);
+//                            News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+//                            wrkNo++;
+//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
+//                            continue;
+//                        }
+//                    }
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                     if (wrkMast != null) {
@@ -2505,9 +2505,9 @@
         }
     }
 
-//    /**
-//     *  鑷姩鐢熸垚RGV鎺ラ┏浠诲姟
-//     */
+    /**
+     *  鑷姩鐢熸垚RGV鎺ラ┏浠诲姟锛堟绱�4妤间换鍔★紝闈�3鍙峰爢鍨涙満锛屽垯鐢熸垚瀵瑰簲鎺ラ┏浠诲姟锛�
+     */
 //    public synchronized  void rgvCreateWrkMastSta(){
 //        try{
 //
@@ -2543,17 +2543,17 @@
                 ){
                     log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
                     if (rgvProtocol.getTaskNo1()!=0){
-                        if (rgvProtocol.getTaskNo1()==32222){
-                            boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                            if (!rgvComplete){
-                                log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            }
-                            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415");
-                            rgvThread.setPakMk(true);
-                            break;
-                        }
+//                        if (rgvProtocol.getTaskNo1()==32222){
+//                            boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+//                            if (!rgvComplete){
+//                                log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+//                            }
+//                            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+//                            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+//                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415");
+//                            rgvThread.setPakMk(true);
+//                            break;
+//                        }
                         WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
                         if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
@@ -2583,22 +2583,31 @@
                             if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
                                 continue;
                             }
-                        }else {
-                            log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
-                            // 涓嬪彂绔欑偣淇℃伅
-                            Map<Integer,Integer> map = new HashMap<>();
-                            map.put(101,102);map.put(112,111);
-                            map.put(100,100);
-                            staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
-                            staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                            log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
-                            if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
-                                continue;
-                            }
                         }
-                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-//                        boolean rgvComplete = true;
+//                        else {
+//                            log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
+//                            // 涓嬪彂绔欑偣淇℃伅
+//                            Map<Integer,Integer> map = new HashMap<>();
+//                            map.put(101,102);map.put(112,111);
+//                            map.put(100,100);
+//                            staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
+//                            staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue());
+//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+////                            log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+//                            if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
+//                                continue;
+//                            }
+//                        }
+                        int sourceSta = wrkMast.getSourceStaNo();
+                        boolean rgvComplete = false;
+
+                        //鍙屽伐浣嶅嚭鍏ュ簱涓嶅悓宸ヤ綅澶嶄綅
+                        if((sourceSta >= 1001 && sourceSta <= 1035) || (sourceSta >= 2001 && sourceSta <= 2030)){
+                            rgvComplete = rgvComplete(rgvProtocol.getRgvNo(),6);
+                        }else{
+                            rgvComplete = rgvComplete(rgvProtocol.getRgvNo(),3);
+
+                        }
                         if (!rgvComplete){
                             log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
                             break;
@@ -2667,31 +2676,31 @@
                             continue;
                         }
                         //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵��
-                        boolean signDev = false;
-                        BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd()));
-                        if (devNo.getDevNo()==113){
-                            BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114));
-                            if (!Cools.isEmpty(devNo114)){
-                                if (devNo114.getOutEnable().equals("Y")){
-                                    signDev = true;
-                                }
-                            }
-                        }
-                        if (!Cools.isEmpty(devNo)){
-                            if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){
-                                continue;
-                            }
-                            if (!signDev && devNo.getDevNo()==113){
-                                if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){
-                                    wrkEnable = true;
-                                    continue;
-                                }
-                                if (!devNo.getOutEnable().equals("Y")){
-                                    wrkEnable = true;
-                                    continue;
-                                }
-                            }
-                        }
+//                        boolean signDev = false;
+//                        BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd()));
+//                        if (devNo.getDevNo()==113){
+//                            BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114));
+//                            if (!Cools.isEmpty(devNo114)){
+//                                if (devNo114.getOutEnable().equals("Y")){
+//                                    signDev = true;
+//                                }
+//                            }
+//                        }
+//                        if (!Cools.isEmpty(devNo)){
+//                            if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){
+//                                continue;
+//                            }
+//                            if (!signDev && devNo.getDevNo()==113){
+//                                if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){
+//                                    wrkEnable = true;
+//                                    continue;
+//                                }
+//                                if (!devNo.getOutEnable().equals("Y")){
+//                                    wrkEnable = true;
+//                                    continue;
+//                                }
+//                            }
+//                        }
                         boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
                         wrkEnable = true;
                         if (sign){
@@ -2969,21 +2978,41 @@
      * */
     public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
         try{
+            int startSta = wrkMastSta.getStaStart();
             //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
             RgvCommand rgvCommand = new RgvCommand();
             rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
-            rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
-            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
-            rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡:  鍙栨斁璐�
-            rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
-            rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
-            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鍐欎换鍔�
-                log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
-                return false;
-            } else {
-                return true;
+            if((startSta >= 1001 && startSta <= 1035) || (startSta >= 2001 && startSta <= 2030)){//鍑哄簱RGV鍙栬揣
+                rgvCommand.setAckFinish2((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+                rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+                rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅2浠诲姟妯″紡:  鍙栨斁璐�
+                rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅2璧风偣
+                rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅2鐩爣绔欑偣
+                rgvCommand.setCommand((short) 2);   //宸ヤ綅1浠诲姟纭
+            }else{  //鍏ュ簱RGV鍙栬揣
+                rgvCommand.setAckFinish1((short) 0);  // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+                rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+                rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡:  鍙栨斁璐�
+                rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //宸ヤ綅1璧风偣
+                rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //宸ヤ綅1鐩爣绔欑偣
+                rgvCommand.setCommand((short) 1);   //宸ヤ綅1浠诲姟纭
+            }
+            if(rgvCommand.getCommand() == 1){
+                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;
+                }
             }
         }catch (Exception e){
             return false;
@@ -3093,10 +3122,10 @@
     /*
      * 灏忚溅澶嶄綅
      * */
-    public synchronized boolean rgvComplete(Integer rgvId){
+    public synchronized boolean rgvComplete(Integer rgvId,Integer step){
         try{
             //  鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
+            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(step, new RgvCommand()))) {
                 //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱   step=4锛屽伐浣�1鍐欎换鍔★紱     step=5锛屽伐浣�2鍐欎换鍔�
                 log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId);
                 return false;

--
Gitblit v1.9.1