From 759ac29f4ede586002f7349abc8d9d0a8c0bf0ba Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 09 三月 2022 14:31:29 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    6 ++
 src/main/java/com/zy/asrs/utils/Utils.java                     |   81 +++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   52 +++++++++++++----
 src/main/java/com/zy/asrs/service/LocMastService.java          |   12 ++++
 4 files changed, 139 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index bc45966..322d1b7 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -45,5 +45,17 @@
      */
     Boolean checkEmptyCount(LocMast locMast);
 
+    /**
+     * 鍒ゆ柇褰撳墠搴撲綅鏄惁闇�瑕佸爢鍨涙満鎼Щ灏忚溅鍏�/鍑�
+     * @param locNo
+     */
+//    void judgeCarInOut(String locNo);
+
+    /**
+     * 鍒ゆ柇鏄惁鏄渶澶栧眰鐨勫簱浣�
+     * @param locNo
+     * @return
+     */
+    Boolean isOutMost(String locNo);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index ababf93..8e06fd9 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -5,6 +5,7 @@
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.utils.Utils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -52,4 +53,9 @@
         return this.baseMapper.selectEmptyLocCount(locMast.getLocType1(), locMast.getCrnNo()) > 1;
     }
 
+    @Override
+    public Boolean isOutMost(String locNo) {
+        return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo);
+    }
+
 }
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 0efa6ec..7eca156 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -562,6 +562,26 @@
                 continue;
             }
             // todo锛氬皬杞﹁縼鍏ュ嚭
+            // 鏈�澶栧眰搴撲綅
+            if (locMastService.isOutMost(wrkMast.getLocNo())) {
+                // 鍒ゆ柇灏忚溅鏄惁鍦ㄦ渶澶栧眰搴撲綅锛屽鏋滄槸鍒欐惉璧帮紝濡傛灉涓嶆槸锛屽垯鐩存帴鍫嗗灈鏈哄叆搴�
+                Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo());
+                if (steNo != null) {
+                    // 灏忚溅鎼蛋
+
+
+
+                } else {
+                    // 鍫嗗灈鏈哄叆搴�
+                }
+
+            // 闈炴渶澶栧眰搴撲綅
+            } else {
+                // 鍒ゆ柇灏忚溅鏄惁鍦ㄥ綋鍓嶇粍搴撲綅锛屽鏋滄槸鍒欏爢鍨涙満灏嗚揣鐗╂斁缃皬杞︿笂锛屽鏋滀笉鏄紝鍒欑洿鎺ュ爢鍨涙満鎼Щ灏忚溅鑷冲綋鍓嶇粍鐨勬渶澶栧眰搴撲綅
+
+            }
+
+
             this.carMoveIn(wrkMast);
 
 
@@ -616,18 +636,6 @@
                 log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
 
-//                long startTime = System.currentTimeMillis();
-//                while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
-//
-//                    if (true) {
-//                        break;
-//                    }
-//
-//                    try{
-//                        Thread.sleep(500);
-//                    }catch(Exception ignore){}
-//                }
-
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
                 Date now = new Date();
                 wrkMast.setWrkSts(3L);
@@ -641,6 +649,26 @@
     }
 
     /**
+     * 褰撳墠搴撲綅缁勬槸鍚﹀瓨鍦ㄧ┖闂插皬杞�
+     * @param locNo
+     * @return
+     */
+    public Integer hasCarOfIdle(String locNo) {
+        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)) {
+                if (steProtocol.getRow() == Utils.getRow(locNo) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) {
+                    return steProtocol.getSteNo().intValue();
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈烘惉鍏ュ皬杞�
      */
     public void carMoveIn(WrkMast wrkMast) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 36a0324..a708bfb 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -36,6 +36,67 @@
         }
     }
 
+
+    public static Integer getGroupRow(String locNo){
+        int row = getRow(locNo);
+        switch (row) {
+            case 1:
+            case 2:
+            case 3:
+                return 3;
+            case 4:
+            case 5:
+            case 6:
+            case 7:
+                return 4;
+            case 8:
+            case 9:
+            case 10:
+            case 11:
+                return 11;
+            case 12:
+            case 13:
+            case 14:
+                return 12;
+            case 15:
+            case 16:
+            case 17:
+            case 18:
+                return 18;
+            case 19:
+            case 20:
+            case 21:
+                return 19;
+            default:
+                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+        }
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+    // -------------------------------------------------------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
     /**
      * 鍒ゆ柇鏄惁涓烘繁搴撲綅
      */
@@ -144,6 +205,26 @@
     }
 
     /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 鍒�
+     */
+    public static int getBay(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            return Integer.parseInt(locNo.substring(2, 5));
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 灞�
+     */
+    public static int getLev(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            return Integer.parseInt(locNo.substring(5, 7));
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
      * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣�
      */
     public static void toDeepIfEmptyByShallow(String shallowLoc) {

--
Gitblit v1.9.1