From fdcda0a22afbb0cdb1bd43474330e9b529ab8b68 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 22 十二月 2025 16:48:41 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   66 +++++++++++++++++++--------------
 1 files changed, 38 insertions(+), 28 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 8669c14..7061c8b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -114,6 +114,8 @@
     @Autowired
     private BasDevpOptService basDevpOptService;
     @Autowired
+    private BasRgvOptService basRgvOptService;
+    @Autowired
     private MatService matService;
 
     @Value("${wms.url}")
@@ -3722,9 +3724,14 @@
 
             }
 
-            if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
-                    rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
-                    && rgvThread.isPaking() && basRgv.getPakAll().equals("1")){
+            RgvThread rgvThread1 = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+            RgvProtocol rgvProtocol1 = rgvThread.getRgvProtocol();
+            if (rgvProtocol1 == null) {
+                continue;
+            }
+            if(rgvProtocol1.getStatusType1() == RgvStatusType.IDLE &&
+                    rgvProtocol1.getModeType() == RgvModeType.AUTO && rgvThread1.isPakMk()
+                    && rgvThread1.isPaking() && basRgv.getPakAll().equals("1")){
                 if(basRgv.getPakOut().equals("1") && basRgv.getPakIn().equals("1")){
                     rgvPreSchedulingIn(rgv, rgvProtocol);//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
                     if (rgvProtocol.getLastIo().equals("I")) {
@@ -3989,7 +3996,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);
                 }
@@ -4601,6 +4608,21 @@
                 System.out.println("灏忚溅涓嬪彂鍛戒护鏃堕棿锛�" +
                         new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(now));
             }
+            EntityWrapper<BasRgvOpt> entityWrapper = new EntityWrapper<>();
+            entityWrapper.eq("rgv_no", rgvId)
+                    .orderBy("send_time");
+            BasRgvOpt basRgvOpt = basRgvOptService.selectOne(entityWrapper);
+            // 闃叉閲嶅涓嬪彂鍛戒护
+            if (basRgvOpt != null) {
+                // 鑾峰彇鏈�鏂拌褰曠殑 mode 瀵瑰簲鐨勪换鍔$被鍨�
+                RgvTaskStatusType latestTaskStatus = RgvTaskStatusType.valueOf(basRgvOpt.getMode());
+                // 鍒ゆ柇褰撳墠鍛戒护涓庢渶鏂拌褰曟槸鍚︾浉鍚�
+                if (latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) {
+                    // 濡傛灉鏈�鏂拌褰曠殑 mode 鍜� posSta 涓庡綋鍓嶅懡浠ょ浉鍚岋紝璁や负鏄噸澶嶅懡浠�
+                    log.error("鍛戒护閲嶅涓嬪彂锛屽綋鍓嶅懡浠や笌鏈�鏂拌褰曠浉鍚岋紝浠诲姟涓嶄笅鍙戯紒");
+                    return false;
+                }
+            }
 
             rgvCommand.setTaskNo(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅宸ヤ綔鍙�
             rgvCommand.setTaskStatus(type); // 宸ヤ綅浠诲姟妯″紡:  鍙栬揣
@@ -4796,11 +4818,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;
@@ -4822,26 +4842,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){
@@ -5129,11 +5137,11 @@
                     String barcode = locMastEnd.getBarcode();
                     if(!Cools.isEmpty(barcode)) {
                         if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "0".equals(barcode)) {
-                            armTaskAssignmentCallApiLogSave(locMastEnd, "鎵樼洏鏉$爜涓虹┖", basArm.getStaNoSou()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+                            log.error( "鍙栬揣鏉$爜涓虹┖", basArm.getStaNoSou());
                             continue;
                         }
                     } else {
-                        armTaskAssignmentCallApiLogSave(locMastEnd, "鎵樼洏鏉$爜涓虹┖", basArm.getStaNoSou()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
+                        log.error( "鍙栬揣鏉$爜涓虹┖", basArm.getStaNoSou());
                         continue;
                     }
 
@@ -5397,6 +5405,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()
@@ -5455,6 +5464,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