From e150f2c426fe2bdfd86be1fe0c27215efaacdc83 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期二, 16 十二月 2025 09:09:05 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  171 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 91 insertions(+), 80 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 1f90cdf..8669c14 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2418,7 +2418,7 @@
                         } else {
                             total = locDetl.getAnfme();
                         }
-                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getBoxType3(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),wrkDetl.getAnfme(),total));
                     });
                 }
                 if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
@@ -2434,13 +2434,13 @@
                             total = locDetl.getAnfme();
                         }
                         if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getBoxType3(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),wrkDetl.getAnfme(),total));
                         }
                         if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getBoxType3(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),wrkDetl.getAnfme(),total));
                         }
                         if (wrkMast.getIoType() == 107) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getBoxType3(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),wrkDetl.getAnfme(),total));
                         }
                     });
                 }
@@ -2964,13 +2964,13 @@
             StaProtocol staProtocol = null;
             if(emptyCount >= 2 && site == 1108){
                 continue;
-            }else if(emptyCount > 1 && site == 2031){
+            }else if(emptyCount > 0 && site == 2031){
                 continue;
             }
             //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
             switch (site){
                 case 1108:staProtocol = devpThread.getStation().get(site - 2);break;
-                case 2031:staProtocol = devpThread2.getStation().get(site);break;
+                case 2031:staProtocol = devpThread2.getStation().get(site + 1);break;
             }
             if (staProtocol == null) {
                 return;
@@ -3009,8 +3009,12 @@
     }
 
     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<WrkMast> wrkMast = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_sta_no",1038));
+        if(wrkMast.size() >3){
+            return;
+        }
         list.add(1038);
         for (Integer site:list){
             StaProtocol staProtocol = devpThread.getStation().get(site);
@@ -3729,13 +3733,11 @@
                             if (rgvProtocol.getTaskNo1()==0){
                                 rgvPreSchedulingIn(rgv, rgvProtocol);//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
                             }
-                            rgvProtocol.setLastIo("O");
                         } else if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) {
                             //mark - 2 - ....
                             if (rgvProtocol.getTaskNo2()==0){
                                 this.rgvPreSchedulingOut(rgv, rgvProtocol); //  鍑哄簱
                             }
-                            rgvProtocol.setLastIo("I");
                         }
                     }
                     // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
@@ -3744,12 +3746,10 @@
                             if (rgvProtocol.getTaskNo2()==0){
                                 this.rgvPreSchedulingOut(rgv, rgvProtocol); //  鍑哄簱
                             }
-                            rgvProtocol.setLastIo("I");
                         } else if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
                             if (rgvProtocol.getTaskNo1()==0){
                                 rgvPreSchedulingIn(rgv, rgvProtocol);//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
                             }
-                            rgvProtocol.setLastIo("O");
                         }
                     }
                 }
@@ -4455,34 +4455,34 @@
             }
             //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
-            StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2()); //鍊掓暟绗簩涓�
+            StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2()==1043?1044:1103); //鍊掓暟绗簩涓�
             StaProtocol staProtocol2 = null;  //杩炵画鍙栬揣浠诲姟绔欑偣
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
-            WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜
-            Integer staNo = null;  //涓庤皟搴�
-            switch (rgvStn.getStaNo2()){
-                case 1043: staNo = 1044;break;
-                case 1104: staNo = 1103;break;
-            }
-            if(staNo != null ){
-                staProtocol2 = devpThread.getStation().get(staNo);
-                if (staProtocol2 == null) {
-                    News.infoNoLog(" - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
-                    continue;
-                } else {
-                    staProtocol2 = staProtocol2.clone();
-                }
-                BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
-                if (staDetl2 == null) {
-                    News.error(" - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
-                    continue;
-                }
-                if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){
-                    //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇
-                    wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
-                }
-
-            }
+//            WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜
+//            Integer staNo = null;  //涓庤皟搴�
+//            switch (rgvStn.getStaNo2()){
+//                case 1043: staNo = 1044;break;
+//                case 1104: staNo = 1103;break;
+//            }
+//            if(staNo != null ){
+//                staProtocol2 = devpThread.getStation().get(staNo);
+//                if (staProtocol2 == null) {
+//                    News.infoNoLog(" - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+//                    continue;
+//                } else {
+//                    staProtocol2 = staProtocol2.clone();
+//                }
+//                BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
+//                if (staDetl2 == null) {
+//                    News.error(" - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+//                    continue;
+//                }
+//                if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){
+//                    //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇
+//                    wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo());
+//                }
+//
+//            }
             if(rgvProtocol.getTaskNo2() > 9999 && staProtocol.getWorkNo() < 10000){
                 continue;
             }
@@ -4543,21 +4543,21 @@
             sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
             if (sign){
 
-                if(wrkMastSta3 != null ){
-                    List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
-                    if(wrkMastStaPaking.size() < 1 && !wrkMastSta3.getWrkNo().equals(wrkMastSta.getWrkNo())){//宸叉湁鏍囪涓嶅啀鏍囪
-                        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.getWrkNo().equals(wrkMastSta.getWrkNo())){//宸叉湁鏍囪涓嶅啀鏍囪
+//                        wrkMastSta3.setMk(1);
+//                        basRgv.setPakAll("0");
+//                        basRgvService.updateById(basRgv);
+//
+//                        try{
+//                            wrkMastStaMapper.updateById(wrkMastSta3);
+//                            log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
+//                        }catch (Exception e){
+//                            log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触");
+//                        }
+//                    }
+//                }
                 basRgv.setPakOut("0");//鍑哄簱涓嶅厑璁�
                 basRgvService.updateById(basRgv);
                 rgvThread.setPaking(false);//浠诲姟涓嬪彂閿佸畾
@@ -4749,20 +4749,26 @@
 
                     // 鑾峰彇绔欑偣淇℃伅
                     SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-                    StaProtocol staProtocol = devpThread.getStation().get(armSta.getStaNo());
-                    if (staProtocol == null) {
-                        continue;
-                    } else {
-                        staProtocol = staProtocol.clone();
+                    StaProtocol staProtocol = null;
+                    String barcode = null;
+                    // 鍙互杞璇诲彇锛岀‘淇濇潯鐮佺ǔ瀹氫笉鍙�
+                    for(int retry=0; retry<3; retry++){
+                        staProtocol = devpThread.getStation().get(armSta.getStaNo());
+                        barcode = staProtocol.getBarcode();
+                        if (staProtocol == null) {
+                            continue;
+                        } else {
+                            staProtocol = staProtocol.clone();
+                        }
+                        Thread.sleep(150); // 灏忓欢鏃剁瓑寰匬LC鍒锋柊
                     }
-                    String barcode = staProtocol.getBarcode();
                     if(!Cools.isEmpty(barcode)) {
                         if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "0".equals(barcode) || barcode.length()<5) {
-                            armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+                            armTaskAssignmentCallApiLogSave(staProtocol, "鎷嗗灈鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
                             continue;
                         }
                     } else {
-                        armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+                        armTaskAssignmentCallApiLogSave(staProtocol, "鎷嗗灈鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
                         continue;
                     }
                     String[] barcodeList = barcode.split(";");
@@ -4792,9 +4798,9 @@
                     List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("arm_no",armSta.getArmNo()));
                     boolean sign = true;
                     for (BasArm basArm : basArmList){
-                        if (basArm.getStaNo()==2){//NG
-                            continue;
-                        }
+//                        if (basArm.getStaNo()==2){//NG
+//                            continue;
+//                        }
                         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
                         if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
                             continue;
@@ -4820,22 +4826,22 @@
                         sign = false;
                         break;
                     }
-                    if (sign){
-                        for (BasArm basArm : basArmList){
-                            if (basArm.getStaNo()==2){//NG
-                                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
-                                if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
-                                    continue;
-                                }
-                                BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam);
-                                basArmMast.setArmNo(basArm.getArmNo());
-                                basArmMast.setStaNo(basArm.getStaNoSou());
-                                basArmMast.setSortingLine(basArm.getSortingLineSou());
-                                basArmMastService.insert(basArmMast);
-                                break;
-                            }
-                        }
-                    }
+//                    if (sign){
+//                        for (BasArm basArm : basArmList){
+//                            if (basArm.getStaNo()==2){//NG
+//                                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
+//                                if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
+//                                    continue;
+//                                }
+//                                BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam);
+//                                basArmMast.setArmNo(basArm.getArmNo());
+//                                basArmMast.setStaNo(basArm.getStaNoSou());
+//                                basArmMast.setSortingLine(basArm.getSortingLineSou());
+//                                basArmMastService.insert(basArmMast);
+//                                break;
+//                            }
+//                        }
+//                    }
                 }
             }
         } catch (Exception e){
@@ -5183,7 +5189,7 @@
                                         .eq("sta_no", basArm.getStaNoSou())
                                         .eq("status", 0)
                         );
-                        if (basArmMastList.isEmpty()){
+                         if (basArmMastList.isEmpty()){
                             continue;
                         }
                         if (basArmMastList.size()>1){
@@ -5478,6 +5484,11 @@
                             basAgvMastService.insert(basAgvMast);
                             AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
                             agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getBarcode());
+                            if(basAgvMast.getFloorNo() == 3){
+                                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",dto.getLocNo()));
+                                locMast.setBarcode(wrkMast.getBarcode());
+                                locMastService.updateById(locMast);
+                            }
                             agvBindCtnrAndBinParam.setCtnrTyp("1");
                             ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV瀹瑰櫒缁戝畾", AgvConstant.AGV_URL, AgvConstant.AGV_CTNRANDBING, agvBindCtnrAndBinParam);
                             wrkMast.setTakeNone("2");

--
Gitblit v1.9.1