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