From 29742997e749cd38a83f7d70b125124832c16a27 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 24 一月 2024 11:35:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  267 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 217 insertions(+), 50 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 d9f635e..a1fb9cc 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -579,6 +579,164 @@
     }
 
     /**
+     * 2妤�212鍛煎彨绌烘澘
+     */
+    public synchronized void stnToCrnStnPick3Auto(Integer sign) {
+        try{
+            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+            StaProtocol staProtocol = devpThread.getStation().get(212);
+            if (staProtocol == null) {
+                return;
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo()==0 ){
+                switch (sign){
+                    //鎵ц灏忚溅璐х墿鎼繍浠诲姟
+                    case 1:
+                    case 4:
+                        stnToCrnStnPick3();
+                        return;
+                    //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
+                    case 2://鏀�//鎷嗙洏
+                    case 5://鏀�//鎷嗙洏
+                        stnToCrnStnPick4();
+                        return;
+                    default:
+                        return;
+                }
+            } else if (staProtocol.isAutoing() && staProtocol.isLoading()){
+                switch (sign){
+                    case 3://婊℃斁
+                    case 6://婊℃斁
+                        stnToCrnStnPick5();
+                        return;
+                    default:
+                        return;
+                }
+            }
+        }catch (Exception e){
+            log.error("2妤�212鍛煎彨绌烘澘"+e);
+        }
+    }
+    /**
+     * 2妤�212鍛煎彨绌烘澘
+     */
+    public synchronized void stnToCrnStnPick3() {
+        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
+        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61銆佺瓑寰呯┖鏉�
+            return;
+        }
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
+                if (driveSta.getStaNo()!=215){
+                    continue;
+                }
+                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
+                        || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){
+                    boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+
+                    staProtocol.setWorkNo(wrkMast.getWrkNo()-1);
+                    staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221);
+                    boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    if (!result2) {
+                        log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                    }
+                    wrkMast.setWrkSts(62L);
+                    wrkMastMapper.updateById(wrkMast);
+
+                    boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
+                    return;
+                }
+            }
+        }
+    }
+
+    /**
+     * 2妤�212鍛煎彨绌烘澘
+     */
+    public synchronized void stnToCrnStnPick4() {
+        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
+        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62銆佺瓑寰呭皬杞︽惉杩�
+            return;
+        }
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            for (DevpSlave.Sta driveSta : devp.getInSta()) {
+                if (driveSta.getStaNo()!=217){
+                    continue;
+                }
+                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                StaProtocol staProtocol212 = devpThread.getStation().get(212);
+                if (staProtocol212 == null) {
+                    continue;
+                } else {
+                    staProtocol212 = staProtocol212.clone();
+                }
+                if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
+                            || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){
+//                        boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+
+                        staProtocol.setWorkNo(wrkMast.getWrkNo());
+                        staProtocol.setStaNo(212);
+                        boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result2) {
+                            log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                        }
+                        wrkMast.setWrkSts(63L);
+                        wrkMastMapper.updateById(wrkMast);
+
+//                        boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
+                        return;
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 2妤�212鍛煎彨绌烘澘
+     */
+    public synchronized void stnToCrnStnPick5() {
+        WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
+        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63銆佺瓑寰呭畬鎴�
+            return;
+        }
+
+        // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+        StaProtocol staProtocol = devpThread.getStation().get(212);
+        if (staProtocol == null) {
+            return;
+        } else {
+            staProtocol = staProtocol.clone();
+        }
+        if (staProtocol.isAutoing() && staProtocol.isLoading()){
+//            boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol));
+
+            wrkMast.setWrkSts(64L);
+            wrkMastMapper.updateById(wrkMast);
+
+//            boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol));
+            return;
+        }
+    }
+    /**
      * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  鎷嗗灈浣嶇疆
      */
     public synchronized void storeEmptyPlt4() {
@@ -2133,6 +2291,10 @@
                         ledCommand.setTitle("绌烘澘鍑哄簱");
                         ledCommand.setEmptyMk(true);
                         break;
+                    case 212:
+                        ledCommand.setTitle("绌烘澘鍑哄簱");
+                        ledCommand.setEmptyMk(true);
+                        break;
                     default:
                         log.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                         break;
@@ -3079,9 +3241,9 @@
                         && staProtocol.isLoading()
                         && basDevp.getReportSign()==0
                 ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-                    if (true){
-                        return;
-                    }
+//                    if (true){
+//                        return;
+//                    }
 
                     //浠诲姟瀹屾垚
                     boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
@@ -3148,17 +3310,14 @@
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
                         }
-                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                        if (!rgvComplete){
-                            log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            break;
-                        }
-
-                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                        StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
                         WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
                         if (!Cools.isEmpty(wrkMast)){
                             Thread.sleep(200);
+                            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                            StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
+                            if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
+                                continue;
+                            }
                             // 涓嬪彂绔欑偣淇℃伅
                             staProtocol.setWorkNo(wrkMast.getWrkNo());
                             staProtocol.setStaNo(wrkMast.getStaNo());
@@ -3166,22 +3325,27 @@
                                 continue;
                             }
                             log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
-                            try{
-                                Thread.sleep(1000);
-                                DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                                StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
-                                log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
-                                if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
-                                    staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
-                                    staProtocolEnd.setStaNo(wrkMast.getStaNo());
-                                    if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
-                                        continue;
-                                    }
-                                    log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
-                                }
-                            }catch (Exception e){
-
-                            }
+//                            try{
+//                                Thread.sleep(1000);
+//                                DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+//                                StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
+//                                log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
+//                                if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
+//                                    staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
+//                                    staProtocolEnd.setStaNo(wrkMast.getStaNo());
+//                                    if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
+//                                        continue;
+//                                    }
+//                                    log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
+//                                }
+//                            }catch (Exception e){
+//
+//                            }
+                        }
+                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+                        if (!rgvComplete){
+                            log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+                            break;
                         }
                         wrkMastSta.setWrkSts(3);
                         wrkMastStaMapper.updateById(wrkMastSta);
@@ -3204,16 +3368,14 @@
                             log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
                             continue;
                         }
-                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-                        if (!rgvComplete){
-                            log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-                            break;
-                        }
-                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                        StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
                         WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
                         if (!Cools.isEmpty(wrkMast)){
                             Thread.sleep(200);
+                            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                            StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
+                            if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
+                                continue;
+                            }
                             // 涓嬪彂绔欑偣淇℃伅
                             staProtocol.setWorkNo(wrkMast.getWrkNo());
                             staProtocol.setStaNo(wrkMast.getStaNo());
@@ -3221,22 +3383,27 @@
                                 continue;
                             }
                             log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
-                            try{
-                                Thread.sleep(1000);
-                                DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                                StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
-                                log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
-                                if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
-                                    staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
-                                    staProtocolEnd.setStaNo(wrkMast.getStaNo());
-                                    if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
-                                        continue;
-                                    }
-                                    log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
-                                }
-                            }catch (Exception e){
-
-                            }
+//                            try{
+//                                Thread.sleep(1000);
+//                                DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+//                                StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
+//                                log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
+//                                if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
+//                                    staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
+//                                    staProtocolEnd.setStaNo(wrkMast.getStaNo());
+//                                    if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
+//                                        continue;
+//                                    }
+//                                    log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
+//                                }
+//                            }catch (Exception e){
+//
+//                            }
+                        }
+                        boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+                        if (!rgvComplete){
+                            log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+                            break;
                         }
                         wrkMastSta.setWrkSts(3);
                         wrkMastStaMapper.updateById(wrkMastSta);

--
Gitblit v1.9.1