From e7543347b5065d0047ec7706dbdb7281c3ae4463 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期三, 24 十二月 2025 15:29:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   90 ++++++++++++++++++++++++--------------------
 1 files changed, 49 insertions(+), 41 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 89fc99e..8d1d625 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1173,11 +1173,14 @@
                     new EntityWrapper<BasCrnp>().eq("crn_no", crnProtocol.getCrnNo())
             );
             boolean result = true;
-            if(crnProtocol.getCrnNo() != 5){
+            if(crnProtocol.getCrnNo() != 3 ){
                 return;
             }
             for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+                if(crnStn.getStaNo() == 4001){
+                    continue;
+                }
                 StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo2());
                 if (staProtocol == null) {
                     News.infoNoLog(" - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц)锛歴taProtocol="+staProtocol);
@@ -1205,10 +1208,6 @@
                     return;
                 }
             }
-            if(crnProtocol.getCrnNo() != 5){
-                return;
-            }
-
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
             if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
                 return;
@@ -1671,9 +1670,9 @@
                 }
                 if (wrkMast.getIoType() == 107){
                     int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", wrkMast.getIoType()).eq("wrk_sts", 14));
-                    if (count >= inventoryNumber) {
-                        continue;
-                    }
+//                    if (count >= inventoryNumber) {
+//                        continue;
+//                    }
                 }
                 // 宸ヤ綔妗g姸鎬佸垽鏂�
                 if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
@@ -2435,7 +2434,7 @@
                         } else {
                             total = locDetl.getAnfme();
                         }
-                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1 ||wrkMast.getIoType() == 57 || wrkMast.getIoType() == 53) {
                             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())) {
@@ -3723,15 +3722,32 @@
                 rgvThread.setPakMk(false);  //灏忚溅鍙屽伐浣嶉攣瀹�
 
             }
+        }
+    }
 
-            RgvThread rgvThread1 = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-            RgvProtocol rgvProtocol1 = rgvThread.getRgvProtocol();
-            if (rgvProtocol1 == null) {
+    public synchronized void rgvIoExecuteScheduling() {
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (rgvProtocol == null) {
                 continue;
             }
-            if(rgvProtocol1.getStatusType1() == RgvStatusType.IDLE &&
-                    rgvProtocol1.getModeType() == RgvModeType.AUTO && rgvThread1.isPakMk()
-                    && rgvThread1.isPaking() && basRgv.getPakAll().equals("1")){
+            BasRgv basRgv = basRgvService.selectById(rgv.getId());
+            if (basRgv == null) {
+                log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
+                continue;
+            }
+            if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+                rgvThread.setPaking(true);
+            }
+
+            if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
+                basRgv.setPakAll("1");
+                basRgvService.updateById(basRgv);
+            }
+            if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
+                    rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
+                    && rgvThread.isPaking() && basRgv.getPakAll().equals("1")){
                 if(basRgv.getPakOut().equals("1") && basRgv.getPakIn().equals("1")){
                     rgvPreSchedulingIn(rgv, rgvProtocol);//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
                     if (rgvProtocol.getLastIo().equals("I")) {
@@ -3996,7 +4012,7 @@
 
             sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
             if (sign){
-                if(wrkMastSta.getMk() == 1){//鑻ュ凡鎵ц
+                if(wrkMastSta.getMk() != null && wrkMastSta.getMk() == 1){//鑻ュ凡鎵ц
                     basRgv.setPakAll("1");
                     basRgvService.updateById(basRgv);
                 }
@@ -4050,6 +4066,8 @@
             //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
             StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo2());
+            StaProtocol staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo());
+
             RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
             BasRgv basRgv = basRgvService.selectById(slave.getId());
             if (basRgv == null) {
@@ -4059,7 +4077,9 @@
             if(staProtocol.getWorkNo() == 0){
                 continue;
             }
-            StaProtocol staProtocol2 = null;
+            if(staProtocol2.getWorkNo() != 0 ){
+                continue;
+            }
             WrkMastSta wrkMastSta3 = null;
 
 //            if(rgvStn.getStaNo2()!= null ){
@@ -4610,14 +4630,14 @@
             }
             EntityWrapper<BasRgvOpt> entityWrapper = new EntityWrapper<>();
             entityWrapper.eq("rgv_no", rgvId)
-                    .orderBy("send_time");  // 鎸� send_time 闄嶅簭鎺掑垪
+                    .orderBy("send_time");
             BasRgvOpt basRgvOpt = basRgvOptService.selectOne(entityWrapper);
             // 闃叉閲嶅涓嬪彂鍛戒护
             if (basRgvOpt != null) {
                 // 鑾峰彇鏈�鏂拌褰曠殑 mode 瀵瑰簲鐨勪换鍔$被鍨�
                 RgvTaskStatusType latestTaskStatus = RgvTaskStatusType.valueOf(basRgvOpt.getMode());
                 // 鍒ゆ柇褰撳墠鍛戒护涓庢渶鏂拌褰曟槸鍚︾浉鍚�
-                if (latestTaskStatus != null && latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) {
+                if (latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) {
                     // 濡傛灉鏈�鏂拌褰曠殑 mode 鍜� posSta 涓庡綋鍓嶅懡浠ょ浉鍚岋紝璁や负鏄噸澶嶅懡浠�
                     log.error("鍛戒护閲嶅涓嬪彂锛屽綋鍓嶅懡浠や笌鏈�鏂拌褰曠浉鍚岋紝浠诲姟涓嶄笅鍙戯紒");
                     return false;
@@ -4818,11 +4838,9 @@
                         continue;
                     }
                     List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("arm_no",armSta.getArmNo()));
-                    boolean sign = true;
+                    BasArmMast basArmMastFinal = null;
+                    Integer num = 0;
                     for (BasArm basArm : basArmList){
-//                        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;
@@ -4844,26 +4862,14 @@
                         basArmMast.setArmNo(basArm.getArmNo());
                         basArmMast.setStaNo(basArm.getStaNoSou());
                         basArmMast.setSortingLine(basArm.getSortingLineSou());
-                        basArmMastService.insert(basArmMast);
-                        sign = false;
+                        if(basArmMastList2.size() > num){
+                            basArmMastFinal = basArmMast;
+                        }
+                    }
+                    if(basArmMastFinal != null){
+                        basArmMastService.insert(basArmMastFinal);
                         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){
@@ -5419,6 +5425,7 @@
                             SearchLocParam param = new SearchLocParam();
                             param.setBarcode(staProtocol.getWorkNo().toString());
                             param.setIoType(1);
+                            param.setOutArea(wrkMast.getCtnKind());
                             param.setSourceStaNo(outStaAgv.getStaNo());
                             param.setLocType1(locTypeDto.getLocType1());
                             String response = new HttpHandler.Builder()
@@ -5477,6 +5484,7 @@
                         SearchLocParam param = new SearchLocParam();
                         param.setBarcode(wrkMast.getBarcode());
                         param.setIoType(1);
+                        param.setOutArea(wrkMast.getCtnKind());
                         param.setSourceStaNo(outStaAgv.getStaNo());
                         param.setLocType1(locTypeDto.getLocType1());
                         String response = new HttpHandler.Builder()

--
Gitblit v1.9.1