From 1d9a9498031967b948d6e7c14fc910c28363ac12 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 09 三月 2022 16:48:47 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |    8 ++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   42 +++++++++++++++++++++++++++++++++---------
 2 files changed, 41 insertions(+), 9 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 66d737b..5d68581 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -616,7 +616,7 @@
             }
 
 
-            this.carMoveIn(wrkMast);
+//            this.carMoveIn(wrkMast);
 
 
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
@@ -682,20 +682,44 @@
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈烘惉鍏ュ皬杞�
      */
-    public void carMoveIn(WrkMast wrkMast) {
-        for (SteSlave ste : slaveProperties.getSte()) {
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
-            SteProtocol steProtocol = steThread.getSteProtocol();
-            if (steProtocol == null) { continue; }
-            if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+    public void carMoveIn(WrkMast wrkMast, Integer steNo) {
+        // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+        SteProtocol steProtocol = steThread.getSteProtocol();
+        if (steProtocol == null) { return; }
+        if (steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
 
+            String locNo = Utils.append(steProtocol.getRow(), steProtocol.getBay(), steProtocol.getLev());
+            LocMast locMast = locMastService.selectById(locNo);
 
+            // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+            CrnCommand crnCommand = new CrnCommand();
+            crnCommand.setCrnNo(locMast.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+            crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+            crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+            crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+            crnCommand.setSourcePosX(steProtocol.getRow());     // 婧愬簱浣嶆帓
+            crnCommand.setSourcePosY(steProtocol.getBay());     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosZ(steProtocol.getLev());     // 婧愬簱浣嶅眰
+            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+            } else {
 
+                // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 4.杩佸叆灏忚溅
+                Date now = new Date();
+                wrkMast.setWrkSts(4L);
+                wrkMast.setCrnStrTime(now);
+                wrkMast.setModiTime(now);
+                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                }
             }
 
-
         }
+
     }
 
     /**
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index a708bfb..d830a5d 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -225,6 +225,14 @@
     }
 
     /**
+     * 閫氳繃鎺掑垪灞傛嫾鎺ュ嚭搴撲綅鍙�
+     */
+    public static String append(int row, int bay, int lev) {
+        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
+    }
+
+
+    /**
      * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣�
      */
     public static void toDeepIfEmptyByShallow(String shallowLoc) {

--
Gitblit v1.9.1