From d9b90148df8ce5b6ae7cba019359430df8c61742 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期六, 16 八月 2025 16:42:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   83 +++++++++++++++++++++++++++--------------
 1 files changed, 55 insertions(+), 28 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 5dd7333..712baf2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2803,18 +2803,7 @@
                         }
                     }
                     if (rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo1()!=9999){
-//                        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());
+                        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
                         if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
@@ -2844,20 +2833,6 @@
                                 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;
-//                            }
-//                        }
                         int sourceSta = wrkMast.getSourceStaNo();
                         boolean rgvComplete = false;
 
@@ -2872,7 +2847,7 @@
                             log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
                             break;
                         }
-                        WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+                        WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1());
                         wrkMast1.setPdcType("Y");
 
                         wrkMastService.updateById(wrkMast1);
@@ -2894,6 +2869,57 @@
         }catch (Exception e){
             log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
         }
+    }
+
+    /**
+     * rgv鍑哄叆搴撲换鍔′笅鍙�
+     */
+    public synchronized void rgvIoExecute(Integer mark) {
+        List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+
+        for (BasRgvMap rgvSlave:basRgvMaps) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
+                continue;
+            }
+            BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+            if (basRgv == null) {
+                log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
+                continue;
+            }
+
+            // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+            if (rgvProtocol.getStatusType() == CrnStatusType.IDLE && rgvProtocol.getTaskNo() == 0 && rgvProtocol.getModeType() == CrnModeType.AUTO
+                    && rgvProtocol.getLoaded() == 0 && rgvProtocol.getForkPos() == 0) {
+                News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
+                // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+                if (rgvProtocol.getLastIo().equals("I")) {
+                    if (basCrnp.getInEnable().equals("Y")) {
+                        //mark - 1 - ....
+                        this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
+                        crnProtocol.setLastIo("O");
+                    } else if (basCrnp.getOutEnable().equals("Y")) {
+                        //mark - 2 - ....
+                        this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
+                        crnProtocol.setLastIo("I");
+                    }
+                }
+                // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+                else if (crnProtocol.getLastIo().equals("O")) {
+                    if (basCrnp.getOutEnable().equals("Y")) {
+                        this.locToCrnStn(crn, crnProtocol,mark); //  鍑哄簱
+                        crnProtocol.setLastIo("I");
+                    } else if (basCrnp.getInEnable().equals("Y")) {
+                        this.crnStnToLoc(crn, crnProtocol,mark); //  鍏ュ簱
+                        crnProtocol.setLastIo("O");
+                    }
+                }
+            }
+
+        }
+//        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
     }
     /**
      * 鎵ц灏忚溅鎼繍浠诲姟
@@ -2985,7 +3011,7 @@
                     List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
                     for (WrkMastSta wrkMastSta : wrkMastStaList){
                         List<Integer> staNos = Arrays.asList(1042, 1105, 1038, 1036, 2037);//鍏ュ簱鍙�
-                        if (staNos.contains(wrkMastSta.getStaStart())) {
+                        if (staNos.contains(wrkMastSta.getStaStart())) {//闈炲叆搴撳彛锛堝嚭搴撳彛锛夐檺鍒�
                             continue;
                         }
                         boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
@@ -3062,6 +3088,7 @@
                     // 鏍规嵁杈撻�佺嚎plc閬嶅巻
                     for (DevpSlave devp : slaveProperties.getDevp()) {
                         // 閬嶅巻鍏ュ簱鍙�  鍏ュ簱棰勮皟搴�
+                        for()
                         List<Integer> staNos = Arrays.asList(1042, 1043, 1105, 1104);
                         for (Integer staNo : staNos) {
                             SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());

--
Gitblit v1.9.1