From 14ae79f19df5920e53a43f90f01686dda426ebbc Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 18 七月 2025 13:34:28 +0800
Subject: [PATCH] #预调度移动

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   97 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 66 insertions(+), 31 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 4620d9a..8054823 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -952,7 +952,7 @@
             // 搴撲綅绉昏浆
             //mark - 3 - ....
             this.locToLoc(crn, crnProtocol, mark);
-            this.crnRebackHp(crnProtocol, crnThread);
+            this.crnRebackHp(crnProtocol, crnThread,null);
 
         }
 //        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -961,39 +961,27 @@
     /**
      * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
      */
-    public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
-//        for (CrnSlave crn : slaveProperties.getCrn()) {
-//            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-//            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-//            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-//            if (crnProtocol == null) {
-//                continue;
-//            }
-//            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-//            if (basCrnp == null) {
-//                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-//                continue;
-//            }
-        if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
-            if (crnProtocol.getBay() == 121) {
-                return;
-            }
+    public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread,String staNo) {
+        if(staNo == null){
+            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+                if (crnProtocol.getBay() == 121) {
+                    return;
+                }
 
-            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
-            if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
-                return;
-            }
+                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
+                if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
+                    return;
+                }
 
-            //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
-            if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
-                return;
-            }
+                //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
+                if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
+                    return;
+                }
 
-            //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
-            if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
-                return;
-            }
-            if(crnProtocol.getCrnNo() == 1){
+                //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
+                if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
+                    return;
+                }
                 News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                 CrnCommand crnCommand = new CrnCommand();
@@ -1012,7 +1000,54 @@
                 }
                 crnThread.setBackHpFlag(true);
             }
+        } else {
+            int y = 1; // 榛樿鍒�
+            int staNoInt = Integer.parseInt(staNo);
 
+            int z = staNoInt / 100; // 灞�
+
+            if ((staNoInt >= 121 && staNoInt <= 126) || (staNoInt >= 221 && staNoInt <= 230) || (staNoInt >= 411 && staNoInt <= 414)) {
+                y = 121;
+            }
+
+            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+                if (crnProtocol.getBay() == y) {
+                    return;
+                }
+
+                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+                if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
+                    return;
+                }
+
+                // 鍫嗗灈鏈烘湁鎵ц涓换鍔�
+                if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
+                    return;
+                }
+
+                // 杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟
+                if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
+                    return;
+                }
+
+                News.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
+                // 鍛戒护涓嬪彂
+                CrnCommand crnCommand = new CrnCommand();
+                crnCommand.setCrnNo(crnProtocol.getCrnNo());
+                crnCommand.setTaskNo((short) 9999);
+                crnCommand.setAckFinish((short) 0);
+                crnCommand.setTaskMode(CrnTaskModeType.X_MOVE);
+                crnCommand.setSourcePosX((short) 1); // 榛樿鎺掑缁堜负1
+                crnCommand.setSourcePosY((short) y); // 鍔ㄦ�佸垪
+                crnCommand.setSourcePosZ((short) z); // 鍔ㄦ�佸眰
+                crnCommand.setDestinationPosX((short) 0);
+                crnCommand.setDestinationPosY((short) 0);
+                crnCommand.setDestinationPosZ((short) 0);
+                if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+                    News.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
+                }
+                crnThread.setBackHpFlag(true);
+            }
         }
 //        }
     }

--
Gitblit v1.9.1