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

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   99 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 65 insertions(+), 34 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 d770187..7eb0fb0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -138,6 +138,9 @@
                 } else {
                     staProtocol = staProtocol.clone();
                 }
+                if(!staProtocol.isLoading()){
+                    continue;
+                }
 
                 if (barcodeThread == null) {
                     continue;
@@ -180,7 +183,7 @@
                 }
                 // 閫�鍥�
                 if (back) {
-//                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+                    News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
                     MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
 
                     if (!staProtocol.isLoading()){
@@ -194,10 +197,11 @@
                         MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                     }
                     staProtocol.setWorkNo(wrkNo);
-                    News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+                    News.info("寮傚父鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
                     wrkNo++;
                     staProtocol.setStaNo(inSta.getBackSta().shortValue());
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    staProtocol.setBarcode(barcode);
                     staProtocol.setPakMk(false);
                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     System.out.println(staProtocol);
@@ -209,7 +213,8 @@
                         && staProtocol.isLoading()
                         && staProtocol.isInEnable()
                         && !staProtocol.isEmptyMk()
-                        && staProtocol.isPakMk()) {
+                        && staProtocol.isPakMk()
+                ) {
                     if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
 //                        News.error(JSON.toJSONString(staProtocol));
                         News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
@@ -219,9 +224,10 @@
                             MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                         }
                         staProtocol.setWorkNo(wrkNo);
-                        News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
+                        News.info("鏉$爜鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
                         wrkNo++;
                         staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                        staProtocol.setBarcode(barcode);
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
@@ -248,9 +254,10 @@
                         if (wrkNo1 != 0){
                             News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
                             StaProtocol staProtocolNew = new StaProtocol();
-                            staProtocolNew.setWorkNo(wrkNo1);
+                            staProtocolNew.setWorkNo(wrkMast.getWrkNo());
                             staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
                             staProtocolNew.setSiteId(staProtocol.getSiteId());
+                            staProtocolNew.setBarcode(barcode);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew));
                             if (ledThread != null) {
                                 News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
@@ -261,6 +268,8 @@
                         barcodeThread.setBarcode("");
                         staProtocol.setWorkNo(wrkMast.getWrkNo());
                         staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
+                        staProtocol.setBarcode(barcode);
+
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
@@ -349,7 +358,7 @@
                             staProtocol.setStaNo(inSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
+                            News.info("浠诲姟涓嬪彂鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
 //                            if (ledThread != null) {
                                 String errorMsg = jsonObject.getString("msg");
                                 if (!Cools.isEmpty(errorMsg)) {
@@ -3063,6 +3072,7 @@
             }
             if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
                 rgvThread.setPaking(true);
+                continue;
             }
             //灏忚溅鏃犱换鍔℃椂璺宠繃
             if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
@@ -3106,26 +3116,31 @@
                     }
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                     basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-                    Integer workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1(); //鍏ュ簱鏀捐揣浼樺厛宸ヤ綅2鎵ц
+                    Integer workNo = 0;
+                    if(rgvProtocol.getTaskNo2() > 9999|| rgvProtocol.getTaskNo1() > 9999){
+                        workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1() : rgvProtocol.getTaskNo2();
+                    }else{
+                        workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1();
+                    }
                     WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);
                     WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo);
                     if( null == wrkMastSta ) {
                         News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
                         continue;
                     }
-
-
                     boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
                     if (sign){
                         try{
                             rgvThread.setPaking(false);
-                            wrkMast.setSheetNo("2");
+                            if(wrkMast != null){
+                                wrkMast.setSheetNo("2");
+                                wrkMastMapper.updateById(wrkMast);
+                            }
                             wrkMastSta.setWrkSts(2);
                             wrkMastStaMapper.updateById(wrkMastSta);
-                            wrkMastMapper.updateById(wrkMast);
                             log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
                         }catch (Exception e){
-                            log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+                            log.error("鏇存柊灏忚溅浠诲姟澶辫触"+ e);
                         }
                     } else {
                         log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
@@ -3175,6 +3190,7 @@
                     }
 
                     WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+                    WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo);
 
                     if( null == wrkMastSta ) {
                         News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍑哄簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
@@ -3184,6 +3200,10 @@
                     if (sign){
                         try{
                             rgvThread.setPaking(false);
+                            if(wrkMast != null){
+                                wrkMast.setSheetNo("2");
+                                wrkMastMapper.updateById(wrkMast);
+                            }
                             wrkMastSta.setWrkSts(2);
                             wrkMastStaMapper.updateById(wrkMastSta);
                             log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
@@ -3412,8 +3432,12 @@
                     News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
                     continue;
                 }
+
                 wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
             }
+//            if(rgvProtocol.getTaskNo2() > 9999){
+//                continue;
+//            }
 
             if (staProtocol == null) {
                 News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
@@ -3469,24 +3493,25 @@
             boolean sign = false;
             sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
             if (sign){
-                if(wrkMastSta3 != null){
-                    wrkMastSta3.setMk(1);
-                    basRgv.setPakAll("0");
-                    basRgvService.updateById(basRgv);
 
-                    try{
-                        wrkMastStaMapper.updateById(wrkMastSta3);
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
-                    }catch (Exception e){
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+                if(wrkMastSta3 != null ){
+                    List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
+                    if(wrkMastStaPaking.size() < 1){//宸叉湁鏍囪涓嶅啀鏍囪
+                        wrkMastSta3.setMk(1);
+                        basRgv.setPakAll("0");
+                        basRgvService.updateById(basRgv);
+
+                        try{
+                            wrkMastStaMapper.updateById(wrkMastSta3);
+                            log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+                        }catch (Exception e){
+                            log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+                        }
                     }
-
                 }
-                basRgv.setPakOut("0");
+                basRgv.setPakOut("0");//鍑哄簱涓嶅厑璁�
                 basRgvService.updateById(basRgv);
-                rgvThread.setPaking(false);
-//                rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
-//                basRgvService.updateById(basRgv);
+                rgvThread.setPaking(false);//浠诲姟涓嬪彂閿佸畾
 
                 try{
                     wrkMastSta.setWrkSts(1);
@@ -3568,6 +3593,7 @@
                 case 2: route = RouteUtils.getRouteTwo();break;
             }
             basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+            basRgvMapService.updateById(basRgvMap);
             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
             if( null == wrkMastSta ) {
                 News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
@@ -3596,15 +3622,20 @@
 
 //                    rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
                 }
-                if(wrkMastSta3 != null){
-                    wrkMastSta3.setMk(1);
-                    try{
-                        wrkMastStaMapper.updateById(wrkMastSta3);
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
-                    }catch (Exception e){
-                        log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
-                    }
 
+                if(wrkMastSta3 != null ){
+                    List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
+                    if(wrkMastStaPaking.size() < 1){
+                        wrkMastSta3.setMk(1);
+                        basRgv.setPakAll("0");
+                        basRgvService.updateById(basRgv);
+                        try{
+                            wrkMastStaMapper.updateById(wrkMastSta3);
+                            log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+                        }catch (Exception e){
+                            log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+                        }
+                    }
                 }
                 basRgv.setPakIn("0");
                 basRgvService.updateById(basRgv);

--
Gitblit v1.9.1