From fb74f60f1d8397acf5251ae289e80ab8a056857f Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 09 十月 2025 09:08:05 +0800
Subject: [PATCH] #和得服务器

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  311 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 192 insertions(+), 119 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 1b70a6d..d770187 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
+import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.ArmOrderAssignmentParam;
@@ -197,7 +198,9 @@
                     wrkNo++;
                     staProtocol.setStaNo(inSta.getBackSta().shortValue());
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    staProtocol.setPakMk(false);
                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    System.out.println(staProtocol);
                     log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
                 }
 
@@ -244,6 +247,11 @@
                         int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
                         if (wrkNo1 != 0){
                             News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+                            StaProtocol staProtocolNew = new StaProtocol();
+                            staProtocolNew.setWorkNo(wrkNo1);
+                            staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+                            staProtocolNew.setSiteId(staProtocol.getSiteId());
+                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew));
                             if (ledThread != null) {
                                 News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
                                 MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�="+ wrkMast.getWrkNo()));
@@ -1348,10 +1356,10 @@
 //                    continue;
                 }
                 // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-//                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+//                     if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
 //                        && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
 
-                if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+                if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && !staProtocol.isLoading()
                         ) {
 //                    if (slave.getId() == 1 || slave.getId() == 2){
 //                        if (staProtocol.isLoading() || staProtocol.getWorkNo() != 0 || !staProtocol.isOutEnable()){
@@ -2612,7 +2620,7 @@
     }
 
     public synchronized void autoEmptyIn() {
-        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         List<Integer> list = new ArrayList<>();
         list.add(1038);
         for (Integer site:list){
@@ -3053,18 +3061,21 @@
                 log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
                 continue;
             }
+            if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+                rgvThread.setPaking(true);
+            }
             //灏忚溅鏃犱换鍔℃椂璺宠繃
             if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
                 continue;
             }
             if(!rgvThread.isPaking()){
                 continue;
+
             }
-            List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId());
-            if(wrkMastStaLock.size() == 1){
+            if(!basRgv.getPakAll().equals("1")){
                 continue;
             }
-            if(rgvThread.isPakIn()){
+            if(basRgv.getPakIn().equals("1")){
                 for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣
                     boolean flag = false;
 
@@ -3121,9 +3132,11 @@
                     }
 
                 }
+                basRgv.setPakRgv("1");
+                basRgvService.updateById(basRgv);
             }
             //鍑哄簱鏀捐揣
-            if(  rgvThread.isPakOut()){
+            if( basRgv.getPakOut().equals("1")){
                 for(RgvSlave.RgvStn rgvStn : rgv.getRgvOutPStn()){//鍏ュ簱鏀捐揣绔欑偣
                     boolean flag = false;
 
@@ -3155,7 +3168,7 @@
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
                     Integer workNo = 0;
-                    if(rgvThread.isPakToCrn()){
+                    if(basRgv.getPakToCrn().equals("1")){
                         workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2();  //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
                     }else{
                         workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2():rgvProtocol.getTaskNo1();  //鎺ラ┏鎯呭喌浼樺厛宸ヤ綅2鏀�
@@ -3183,8 +3196,9 @@
                     }
 
                 }
+                basRgv.setPakRgv("1");
+                basRgvService.updateById(basRgv);
             }
-            rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害
         }
     }
     /**
@@ -3196,6 +3210,11 @@
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
             RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
             if (rgvProtocol == null) {
+                continue;
+            }
+            BasRgv basRgv = basRgvService.selectById(rgv.getId());
+            if (basRgv == null) {
+                log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
                 continue;
             }
             Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1());
@@ -3221,11 +3240,22 @@
                     && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
                     && !rgvProtocol.isLoaded1ing()
                     && !rgvProtocol.isLoaded2ing()){
-                rgvThread.setPakRgv(true);
+                List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk();
+                List<WrkMastSta> wrkMastStaLockT = wrkMastStaService.selectLockWrkT();
+
+                if(wrkMastStaLock.size() > 0 && rgvProtocol.getRgvNo() == 1){
+                    continue ;
+                }
+                if(wrkMastStaLockT.size() > 0 && rgvProtocol.getRgvNo() == 2){
+                    continue ;
+                }
+                basRgv.setPakRgv("1");
+                basRgv.setPakToCrn("1");
+                basRgv.setPakIn("1");
+                basRgv.setPakOut("1");
+                basRgv.setPakAll("1");
+                basRgvService.updateById(basRgv);
                 rgvThread.setPakMk(true);
-                rgvThread.setPakIn(true);
-                rgvThread.setPakOut(true);
-                rgvThread.setPakToCrn(true);
             }
 
         }
@@ -3243,39 +3273,53 @@
             if (rgvProtocol == null) {
                 continue;
             }
+
             BasRgv basRgv = basRgvService.selectById(rgv.getId());
             if (basRgv == null) {
                 log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
                 continue;
             }
             if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
-//                log.error("瑙i攣");
                 rgvThread.setPaking(true);
             }
+            if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
+                basRgv.setPakAll("1");
+                basRgvService.updateById(basRgv);
+            }
             // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
-            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) {
+            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
+                    rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
+                    && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) {
                 News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
                 // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
 //                rgvRunWrkMastInTest();
 
                 if (rgvProtocol.getLastIo().equals("I")) {
-                    if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
+                    if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
                         //mark - 1 - ....
-                        this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); //  鍏ュ簱
+                        if (rgvProtocol.getTaskNo1()==0){
+                            this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); //  鍏ュ簱
+                        }
                         rgvProtocol.setLastIo("O");
-                    } else if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
+                    } else if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) {
                         //mark - 2 - ....
-                        this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); //  鍑哄簱
+                        if (rgvProtocol.getTaskNo2()==0){
+                            this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); //  鍑哄簱
+                        }
                         rgvProtocol.setLastIo("I");
                     }
                 }
                 // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
                 else if (rgvProtocol.getLastIo().equals("O")) {
-                    if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
-                        this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); //  鍑哄簱
+                    if (basRgv.getOutEnable().equals("1")  && basRgv.getPakOut().equals("1")) {
+                        if (rgvProtocol.getTaskNo2()==0){
+                            this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); //  鍑哄簱
+                        }
                         rgvProtocol.setLastIo("I");
-                    } else if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
-                        this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); //  鍏ュ簱
+                    } else if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
+                        if (rgvProtocol.getTaskNo1()==0){
+                            this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); //  鍏ュ簱
+                        }
                         rgvProtocol.setLastIo("O");
                     }
                 }
@@ -3285,9 +3329,9 @@
             if(wrkMastSta1 != null && wrkMastSta2 != null){
                 rgvThread.setPakMk(false);  //灏忚溅鍙屽伐浣嶉攣瀹�
             }
-            if(!rgvThread.isPakToCrn()){
-                rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
-            }
+//            if(!rgvThread.isPakToCrn()){
+//                rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
+//            }
 //            if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
 //                rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
 //            }
@@ -3344,6 +3388,11 @@
     public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) {
         for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣
             boolean flag = false;
+            BasRgv basRgv = basRgvService.selectById(slave.getId());
+            if (basRgv == null) {
+                log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId());
+                continue;
+            }
             //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
             StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
@@ -3409,7 +3458,10 @@
                  result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
             }
             if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
-                rgvThread.setPakRgv(false);
+                basRgv.setPakRgv("0");
+                basRgvService.updateById(basRgv);
+
+//                rgvThread.setPakRgv(false);
                 continue;
             }
             wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2);
@@ -3419,6 +3471,9 @@
             if (sign){
                 if(wrkMastSta3 != null){
                     wrkMastSta3.setMk(1);
+                    basRgv.setPakAll("0");
+                    basRgvService.updateById(basRgv);
+
                     try{
                         wrkMastStaMapper.updateById(wrkMastSta3);
                         log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
@@ -3427,8 +3482,12 @@
                     }
 
                 }
+                basRgv.setPakOut("0");
+                basRgvService.updateById(basRgv);
                 rgvThread.setPaking(false);
-                rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
+//                rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
+//                basRgvService.updateById(basRgv);
+
                 try{
                     wrkMastSta.setWrkSts(1);
                     wrkMastStaMapper.updateById(wrkMastSta);
@@ -3453,6 +3512,11 @@
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
             StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+            BasRgv basRgv = basRgvService.selectById(slave.getId());
+            if (basRgv == null) {
+                log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId());
+                continue;
+            }
             StaProtocol staProtocol2 = null;
             WrkMastSta wrkMastSta3 = null;
 
@@ -3515,7 +3579,10 @@
                 result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
             }
             if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
-                rgvThread.setPakRgv(false);
+                basRgv.setPakRgv("0");
+                basRgvService.updateById(basRgv);
+
+//                rgvThread.setPakRgv(false);
                 continue;
             }
             wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
@@ -3524,7 +3591,10 @@
             sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
             if (sign){
                 if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
-                    rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
+                    basRgv.setPakToCrn("0");
+                    basRgvService.updateById(basRgv);
+
+//                    rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
                 }
                 if(wrkMastSta3 != null){
                     wrkMastSta3.setMk(1);
@@ -3536,8 +3606,11 @@
                     }
 
                 }
+                basRgv.setPakIn("0");
+                basRgvService.updateById(basRgv);
+
                 rgvThread.setPaking(false);
-                rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+//                rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
                 try{
                     wrkMastSta.setWrkSts(1);
                     wrkMastStaMapper.updateById(wrkMastSta);
@@ -3556,94 +3629,94 @@
     /**
      * 灏忚溅鍑哄簱鎺ラ┏浠诲姟鍙栬揣涓嬪彂
      */
-    public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
-        for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
-            boolean flag = false;
-            //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
-            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
-            StaProtocol staProtocol2 = null;
-            if(rgvStn.getStaNo2()!= null ){
-                staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
-                if (staProtocol2 == null) {
-                    News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
-                    continue;
-                } else {
-                    staProtocol2 = staProtocol2.clone();
-                }
-                BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
-                if (staDetl2 == null) {
-                    News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
-                    continue;
-                }
-            }
-            if (staProtocol == null) {
-                News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
-                continue;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-
-            // 鏌ヨ绔欑偣璇︾粏淇℃伅
-            BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
-            if (staDetl == null) {
-                News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
-                continue;
-            }
-
-            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
-                    && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
-                flag = true;
-            }
-            if (!flag) {
-                News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
-                        + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
-                        + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
-                        + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
-                continue;
-            }
-            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-            List<Integer> route = new ArrayList<>();
-            switch (rgvProtocol.getRgvNo()){
-                case 1: route = RouteUtils.getRouteOne();break;
-                case 2: route = RouteUtils.getRouteTwo();break;
-            }
-            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-            WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-            if( null == wrkMastSta ) {
-                News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
-                continue;
-            }
-            WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
-            boolean result = false;
-            if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻   2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
-                result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
-            }
-            if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
-                rgvThread.setPakRgv(false);
-                continue;
-            }
-            wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
-            wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
-            boolean sign = false;
-            sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
-            if (sign){
-                rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
-                try{
-                    wrkMastSta.setWrkSts(1);
-                    wrkMastStaMapper.updateById(wrkMastSta);
-                    log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-                }catch (Exception e){
-                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-                }
-            } else {
-                log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
-            }
-
-
-        }
-    }
+//    public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
+//        for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
+//            boolean flag = false;
+//            //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
+//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
+//            StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
+//            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+//            StaProtocol staProtocol2 = null;
+//            if(rgvStn.getStaNo2()!= null ){
+//                staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
+//                if (staProtocol2 == null) {
+//                    News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+//                    continue;
+//                } else {
+//                    staProtocol2 = staProtocol2.clone();
+//                }
+//                BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
+//                if (staDetl2 == null) {
+//                    News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+//                    continue;
+//                }
+//            }
+//            if (staProtocol == null) {
+//                News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+//                continue;
+//            } else {
+//                staProtocol = staProtocol.clone();
+//            }
+//
+//            // 鏌ヨ绔欑偣璇︾粏淇℃伅
+//            BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
+//            if (staDetl == null) {
+//                News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+//                continue;
+//            }
+//
+//            if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
+//                    && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+//                flag = true;
+//            }
+//            if (!flag) {
+//                News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
+//                        + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
+//                        + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
+//                        + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
+//                continue;
+//            }
+//            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+//            List<Integer> route = new ArrayList<>();
+//            switch (rgvProtocol.getRgvNo()){
+//                case 1: route = RouteUtils.getRouteOne();break;
+//                case 2: route = RouteUtils.getRouteTwo();break;
+//            }
+//            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+//            WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+//            if( null == wrkMastSta ) {
+//                News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+//                continue;
+//            }
+//            WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
+//            boolean result = false;
+//            if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻   2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
+//                result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
+//            }
+//            if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
+//                rgvThread.setPakRgv(false);
+//                continue;
+//            }
+//            wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
+//            wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
+//            boolean sign = false;
+//            sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+//            if (sign){
+//                rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+//                try{
+//                    wrkMastSta.setWrkSts(1);
+//                    wrkMastStaMapper.updateById(wrkMastSta);
+//                    log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+//                }catch (Exception e){
+//                    log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+//                }
+//            } else {
+//                log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+//            }
+//
+//
+//        }
+//    }
     /**
      * 鎵ц灏忚溅鎼繍浠诲姟
      *

--
Gitblit v1.9.1