From 4bf5695d8277ee797d2fec6526c2ce708a553721 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 05 一月 2026 10:40:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   66 +++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 24 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 d059e25..900401f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -43,6 +43,8 @@
 import com.zy.core.thread.LedThread;
 import com.zy.core.thread.RgvThread;
 import com.zy.core.thread.SiemensDevpThread;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -77,6 +79,8 @@
     private WaitPakinMapper waitPakinMapper;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private ConfigService configService;
     @Autowired
     private StaDescService staDescService;
     @Autowired
@@ -1180,7 +1184,7 @@
             //mark - 3 - ....
             this.locToLoc(crn, crnProtocol,mark);
             //棰勮皟搴�
-            this.crnRebackHp(crn, crnProtocol, crnThread);
+//            this.crnRebackHp(crn, crnProtocol, crnThread);
 
         }
 //        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -1198,9 +1202,7 @@
                     new EntityWrapper<BasCrnp>().eq("crn_no", crnProtocol.getCrnNo())
             );
             boolean result = true;
-            if(crnProtocol.getCrnNo() != 5 ){
-                return;
-            }
+
             for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
                 if(crnStn.getStaNo() == 4001){
@@ -1220,8 +1222,8 @@
             int x=1;
             switch (crnProtocol.getCrnNo()){
                 case 1: x =2; break;
-                case 2: x =6; break;
-                case 3: x =11; break;
+                case 2: x =7; break;
+                case 3: x =10; break;
                 case 4: x =14; break;
                 case 5: x =18; break;
             }
@@ -1776,7 +1778,7 @@
                     break;
 //                    continue;
                 }
-                if (staProtocol2.isLoading() && staProtocol2.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+                if (staProtocol2.isLoading() && staProtocol2.isAutoing() && staProtocol2.getWorkNo() == 9997) {
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
                     if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
 //                        continue;
@@ -1817,7 +1819,7 @@
                         break;
                     }
                 }
-                if (staProtocol3.isLoading() && staProtocol3.isAutoing()) {
+                if (staProtocol3.isLoading() && staProtocol3.isAutoing()&& staProtocol3.getWorkNo() == 9997) {
                     // 鍫嗗灈鏈烘帶鍒惰繃婊�
                     if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
 //                        continue;
@@ -4658,34 +4660,26 @@
             rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
             RgvTaskStatusType type;
             Integer targetPosition = 0;
+            String typeNo = null;
             if(wrkMastSta.getWrkSts() == 0){
                 type = RgvTaskStatusType.FETCH; //鍙栬揣
                 targetPosition = wrkMastSta.getStaStart();
+                typeNo = "2";
             }else{
                 type = RgvTaskStatusType.PUT; //鏀捐揣
                 targetPosition = wrkMastSta.getStaEnd();
+                typeNo = "3";
             }
             Date now = new Date();
-            if (targetPosition == 1038) {
-                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);
+            BasRgvOpt basRgvOpt = basRgvOptService.getBasRgvOpt(rgvId);
             // 闃叉閲嶅涓嬪彂鍛戒护
             if (basRgvOpt != null) {
-                // 鑾峰彇鏈�鏂拌褰曠殑 mode 瀵瑰簲鐨勪换鍔$被鍨�
-                RgvTaskStatusType latestTaskStatus = RgvTaskStatusType.valueOf(basRgvOpt.getMode());
-                // 鍒ゆ柇褰撳墠鍛戒护涓庢渶鏂拌褰曟槸鍚︾浉鍚�
-                if (latestTaskStatus == type && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) {
+                if (typeNo.equals(basRgvOpt.getMode()) && basRgvOpt.getPosSta().equals(wrkMastSta.getWorkSta())) {
                     // 濡傛灉鏈�鏂拌褰曠殑 mode 鍜� posSta 涓庡綋鍓嶅懡浠ょ浉鍚岋紝璁や负鏄噸澶嶅懡浠�
                     log.error("鍛戒护閲嶅涓嬪彂锛屽綋鍓嶅懡浠や笌鏈�鏂拌褰曠浉鍚岋紝浠诲姟涓嶄笅鍙戯紒");
                     return false;
                 }
             }
-
             rgvCommand.setTaskNo(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅宸ヤ綔鍙�
             rgvCommand.setTaskStatus(type); // 宸ヤ綅浠诲姟妯″紡:  鍙栬揣
             rgvCommand.setTargetPosition(targetPosition);   //宸ヤ綅鐩爣绔欑偣
@@ -5122,7 +5116,7 @@
                                         new EntityWrapper<BasArmMast>()
                                                 .eq("status", 2)
                                                 .eq("binding_tags", basArmMast.getBindingTags()));
-                                if (binding_tags<2){
+                                if (binding_tags==1){
                                     BasArmMast basArmMastOne = basArmMastService.selectOne(
                                             new EntityWrapper<BasArmMast>()
                                                     .eq("status", 2)
@@ -5133,6 +5127,25 @@
                                         continue;
                                     }
 
+                                } else if (binding_tags == 0){
+                                    boolean signBinding_tags_barcode = false;
+                                    List<BasArmMast> binding_tags_barcodeList = basArmMastService.selectList(
+                                            new EntityWrapper<BasArmMast>()
+                                                    .eq("barcode", barcode));
+                                    for (BasArmMast basArmMastBarcode : binding_tags_barcodeList){
+                                        Integer selectCountAndBindingTags = basArmMastService.selectCountAndBindingTags(basArmMastBarcode.getArmNo(), basArmMastBarcode.getOrderNo(), basArmMastBarcode.getMatnr(),basArmMastBarcode.getBindingTags());
+                                        Integer selectCountAndBindingTagsLog = basArmMastService.selectCountAndBindingTagsLog(basArmMastBarcode.getArmNo(),basArmMastBarcode.getOrderNo(), basArmMastBarcode.getMatnr(),basArmMastBarcode.getBindingTags());
+
+                                        Double anfmeSignOne = basArmMastService.selectBasArmMastSignValue(basArmMastBarcode.getOrderNo(), basArmMastBarcode.getMatnr(),basArmMastBarcode.getBindingTags());
+                                        if ((selectCountAndBindingTags + selectCountAndBindingTagsLog) != anfmeSignOne.intValue()) {
+//                                            signBinding_tags_barcode = true; /////
+                                            break;
+                                        }
+                                    }
+                                    if (signBinding_tags_barcode){
+                                        armTaskAssignmentCallApiLogSave(staProtocol, "鏁版嵁寮傚父锛侊紒锛�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屼笂涓�涓垎鎷g粍鏈叏閮ㄥ畬鎴愶紒锛侊紒", false);
+                                        continue;
+                                    }
                                 }
                             }
 //                            OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getMatnr());
@@ -5706,6 +5719,9 @@
      * agv浠诲姟鐢熸垚  Empty
      * */
     public synchronized void agvTaskCreateR() {
+
+        Config configAGVAUTOIN = configService.selectConfigByCode("AGVAUTOIN");
+
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍑哄簱鍙�
@@ -5745,20 +5761,22 @@
                                     .le("row1", 26)
                                     .orderBy("io_time",true)
                             );
-                        }else if(inStaAgv.getStaNo() < 4000){
+                        }else if(inStaAgv.getStaNo() < 4000 && Boolean.parseBoolean(configAGVAUTOIN.getValue())){
                             locMastList = locMastService.selectList(new EntityWrapper<LocMast>()
                                     .eq("loc_sts", "R")
                                     .ge("row1", 28)
                                     .le("row1", 31)
                                     .orderBy("io_time",true));
                             floorNo = 2;
-                        }else{
+                        }else if(inStaAgv.getStaNo() < 5000){
                             locMastList = locMastService.selectList(new EntityWrapper<LocMast>()
                                     .eq("loc_sts", "R")
                                     .ge("row1", 32)
                                     .le("row1", 38)
                                     .orderBy("io_time",true));
                             floorNo = 3;
+                        }else{
+                            continue;
                         }
 
                         for (LocMast locMast : locMastList){

--
Gitblit v1.9.1