From 7404d352ee7efa5ae82d6bd68a3a876a913159f8 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期三, 07 一月 2026 00:26:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   65 +++++++++++++++-----------------
 1 files changed, 30 insertions(+), 35 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 155d1b3..10784d2 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
@@ -4656,34 +4660,25 @@
             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);   //宸ヤ綅鐩爣绔欑偣
@@ -4824,6 +4819,10 @@
      * arm浠诲姟瀹屾垚鑷姩缁勬墭
      * */
     public synchronized void  armMissionAccomplished1() {
+        Config configAGVAUTOIN = configService.selectConfigByCode("AGVAUTOIN");
+        if(!Boolean.parseBoolean(configAGVAUTOIN.getValue())){
+            return;
+        }
         try{
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 // 閬嶅巻鎷f枡鍏ュ簱鍙�
@@ -4922,6 +4921,10 @@
      * arm浠诲姟瀹屾垚鑷姩缁勬墭
      * */
     public synchronized void  armMissionAccomplished2() {
+        Config configAGVAUTOIN = configService.selectConfigByCode("AGVAUTOIN");
+        if(!Boolean.parseBoolean(configAGVAUTOIN.getValue())){
+            return;
+        }
         try{
             List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().gt("arm_no",4));
             for (BasArm basArm : basArmList) {
@@ -5202,6 +5205,10 @@
      * arm浠诲姟涓嬪彂
      * */
     public synchronized void armTaskAssignment2() {
+        Config configAGVAUTOIN = configService.selectConfigByCode("AGVAUTOIN");
+        if(!Boolean.parseBoolean(configAGVAUTOIN.getValue())){
+            return;
+        }
         try{
             List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().gt("arm_no",4));
             for (BasArm basArm : basArmList) {
@@ -5536,7 +5543,7 @@
                     // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
 
                     BasAgvMast basAgvMast = new BasAgvMast();
-
+                    BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
 
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -5723,6 +5730,9 @@
      * agv浠诲姟鐢熸垚  Empty
      * */
     public synchronized void agvTaskCreateR() {
+
+        Config configAGVAUTOIN = configService.selectConfigByCode("AGVAUTOIN");
+
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍑哄簱鍙�
@@ -5762,20 +5772,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){
@@ -5943,23 +5955,6 @@
                     if ((!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())) || basAgvMast.getSourceStaNo().equals(2033)){
                         AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
                         if(basAgvMast.getFloorNo()==1) {
-//                            WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
-//                            AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
-//                            agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString());
-//                            agvBindCtnrAndBinParam.setCtnrTyp("1");
-//                            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataAgv("AGV瀹瑰櫒缁戝畾瑙g粦", AgvConstant.AGV_URL, AgvConstant.AGV_CTNRANDBING, agvBindCtnrAndBinParam);
-//                            if (resultBind.getCode()==200){
-//                                //浠诲姟涓嬪彂
-//                                ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
-//                                if (result.getCode()==200){
-//                                    basAgvMast.setStatus(1);
-//                                    basAgvMastService.updateById(basAgvMast);
-//                                } else {
-//                                    agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV浠诲姟涓嬪彂澶辫触", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
-//                                }
-//                            } else {
-//                                agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV瀹瑰櫒缁戝畾瑙g粦", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
-//                            }
                             //浠诲姟涓嬪彂
                             ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                             if (result.getCode()==200){
@@ -5977,7 +5972,7 @@
                                     agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode());
                                     agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getSourceStaNo().toString());
                                     agvBindCtnrAndBinTwoParam.setIndBind("1");;
-                                    ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾瑙g粦",
+                                    ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾",
                                             AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
                                     if (resultBind.getCode()!=200){
                                         basAgvMast.setStatus(4);

--
Gitblit v1.9.1