From 05f8bdf7e09849c1db885b6c996ad18280d130b3 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 18 十二月 2023 16:18:25 +0800
Subject: [PATCH] #map latest test
---
src/main/java/com/zy/asrs/utils/Utils.java | 162 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 132 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 2ef4f98..a98297a 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -9,38 +9,26 @@
import com.zy.asrs.entity.BasShuttle;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.BasShuttleService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.common.model.NavigateNode;
-import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.NavigateMapData;
import com.zy.common.utils.NavigatePositionConvert;
-import com.zy.common.utils.NavigateUtils;
import com.zy.common.utils.ShuttleDispatchUtils;
import com.zy.core.DevpThread;
-import com.zy.core.Slave;
-import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.ShuttleRunDirection;
-import com.zy.core.enums.ShuttleTaskModeType;
import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.ShuttleAssignCommand;
-import com.zy.core.model.command.ShuttleCommand;
import com.zy.core.model.protocol.NyShuttleProtocol;
-import com.zy.core.model.protocol.ShuttleProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.NyShuttleThread;
-import com.zy.core.thread.ShuttleThread;
import java.text.DecimalFormat;
import java.util.*;
+import java.util.regex.Pattern;
/**
* Created by vincent on 2020/8/27
@@ -98,21 +86,6 @@
public static Integer getGroupRow(String locNo, Boolean pakin){
int row = getRow(locNo);
return getGroupRow(row, pakin);
- }
-
- public static List<String> getGroupLocNo(String locNo){
- int row = getRow(locNo);
- List<String> result = new ArrayList<>();
- if (FIRST_GROUP_ROW_LIST.contains(row)) {
- for (Integer groupRow : FIRST_GROUP_ROW_LIST) {
- result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
- }
- } else if (SECOND_GROUP_ROW_LIST.contains(row)) {
- for (Integer groupRow : SECOND_GROUP_ROW_LIST) {
- result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
- }
- }
- return result;
}
public static Integer getGroupRow(Integer row, Boolean pakin) {
@@ -370,6 +343,54 @@
throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
}
+ /**
+ * 鑾峰彇澶栦晶鏂瑰悜鐨勫簱浣嶇粍
+ * @param locNo 搴撲綅鍙�
+ */
+ public static List<String> getGroupOuterLoc(String locNo){
+ int row = getRow(locNo);
+ int bay = getBay(locNo);
+
+ //(1,3,4,10,11)娌℃湁澶栦晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+ if (FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+ return new ArrayList<>();
+ }
+ if (SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+ return new ArrayList<>();
+ }
+ if (THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+ List<String> result = new ArrayList<>();
+ for (Integer row0 : THIRD_GROUP_ROW_LIST) {
+ if (row0 < row) {
+ result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+ }
+ }
+ return result;
+ }
+ if (FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+ return new ArrayList<>();
+ }
+ if (FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+ return new ArrayList<>();
+ }
+ if (SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀渚ф柟鍚戝簱浣嶇粍
+ List<String> result = new ArrayList<>();
+ for (Integer row0 : SIXTH_GROUP_ROW_LIST) {
+ if (row0 < row) {
+ result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+ }
+ }
+ return result;
+ }
+ if (SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+ return new ArrayList<>();
+ }
+ if (EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+ return new ArrayList<>();
+ }
+ throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+ }
+
//鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
BasShuttleService basShuttleService = SpringUtils.getBean(BasShuttleService.class);
@@ -433,12 +454,22 @@
NavigateMapData mapData = new NavigateMapData(z);//鑾峰彇鍦板浘鏁版嵁
int[][] data = mapData.getData(-1, null, currentShuttleId == null ? null : Utils.getShuttlePoints(0, z));//杞藉叆鍏ㄩ儴杞﹁締
+ int moveBay = 23;//閬胯璧峰鍒�
+ int bay = Utils.getBay(shuttleProtocol.getCurrentLocNo());//灏忚溅褰撳墠鍒�
+ if (bay > 1 && bay <= 30) {
+ moveBay = 23;
+ } else if (bay > 30 && bay <= 45) {
+ moveBay = 39;
+ } else if (bay > 45) {
+ moveBay = 50;
+ }
+
int distY = -1;
int distX = -1;
int distZ = -1;
//鑾峰彇閬胯搴撲綅
String distLocNo = null;
- for (int y = 20; y <= 56; y++) {
+ for (int y = moveBay; y <= 56; y++) {
boolean searchFlag = true;
for (int x = 10; x <= 11; x++) {
if (data[x][y] < 0 || data[x][y] == 66) {
@@ -602,4 +633,75 @@
}
}
+ /**
+ * 鑾峰彇鍐呬晶鏂瑰悜鐨勫簱浣嶇粍
+ * @param locNo 搴撲綅鍙�
+ */
+ public static List<String> getGroupInnerLoc(String locNo){
+ int row = getRow(locNo);
+ int bay = getBay(locNo);
+
+ //(1,3,4,10,11)娌℃湁鍐呬晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊唴渚ф柟鍚戝簱浣嶇粍
+ if (FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+ return new ArrayList<>();
+ }
+ if (SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+ return new ArrayList<>();
+ }
+ if (THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+ List<String> result = new ArrayList<>();
+ for (Integer row0 : THIRD_GROUP_ROW_LIST) {
+ if (row0 > row) {
+ result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+ }
+ }
+ return result;
+ }
+ if (FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+ return new ArrayList<>();
+ }
+ if (FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+ return new ArrayList<>();
+ }
+ if (SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀唴渚ф柟鍚戝簱浣嶇粍
+ List<String> result = new ArrayList<>();
+ for (Integer row0 : SIXTH_GROUP_ROW_LIST) {
+ if (row0 > row) {
+ result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+ }
+ }
+ return result;
+ }
+ if (SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊唴渚ф柟鍚戝簱浣嶇粍
+ return new ArrayList<>();
+ }
+ if (EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊唴渚ф柟鍚戝簱浣嶇粍
+ return new ArrayList<>();
+ }
+ throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+ }
+
+ /**
+ * 閫氳繃鍏ュ簱绔欑偣鍙疯幏鍙栨潯鐮佸櫒ID
+ */
+ public static Integer getBarcodeIdByStaNo(int staNo) {
+ SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+ for (DevpSlave devpSlave : slaveProperties.getDevp()) {
+ for (DevpSlave.Sta sta : devpSlave.getInSta()) {
+ if (sta.getStaNo().equals(staNo)) {
+ return sta.getBarcode();
+ }
+ }
+ }
+ return null;
+ }
+ /**
+ * 鍒ゆ柇瀛楃涓叉槸鍚︿负JSON鏍煎紡
+ */
+ public static boolean isJson(String jsonString) {
+ // JSON鏍煎紡鐨勬鍒欒〃杈惧紡
+ String pattern = "^\\{.*\\}$";
+ // 浣跨敤Pattern绫昏繘琛屾鍒欏尮閰�
+ return Pattern.matches(pattern, jsonString);
+ }
}
--
Gitblit v1.9.1