From 53292dc3901548020ae6cdb10de3a0c690ef354a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 19 三月 2025 10:01:12 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/utils/Utils.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index d8dd70e..8d2466b 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,9 +1,15 @@
package com.zy.asrs.utils;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.service.LocMastService;
+import com.zy.common.model.NavigateNode;
+import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.utils.NavigatePositionConvert;
+import com.zy.common.utils.NavigateUtils;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.ShuttleSlave;
@@ -77,6 +83,29 @@
public static List<String> getGroupLoc(String locNo) {
return null;
+ }
+
+ //鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
+ public static int[] getShuttlePoint(Integer shuttleNo) {
+ //鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
+ ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo);
+ if (shuttleThread == null) {
+ return null;
+ }
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ return null;
+ }
+
+ String currentLocNo = shuttleProtocol.getCurrentLocNo();
+ if (currentLocNo == null) {
+ return null;
+ }
+
+ if (shuttleProtocol.getCurrentLocNo() == null) {
+ return null;
+ }
+ return NavigatePositionConvert.positionToXY(shuttleProtocol.getCurrentLocNo());
}
//鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
@@ -182,4 +211,33 @@
return null;
}
+
+ //鑾峰彇灏忚溅寰呮満浣�
+ public static String getShuttleStandbyLocNo(String locNo) {
+ LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+ NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_type", "standby")
+ .eq("lev1", Utils.getLev(locNo)));
+ if (locMasts.isEmpty()) {
+ return null;
+ }
+
+ Integer recentDistance = Integer.MAX_VALUE;
+ String recentLocNo = null;
+ for (LocMast locMast : locMasts) {
+ //寰呮満浣嶅埌鐩爣鐐硅窛绂�
+ List<NavigateNode> currentShuttlePath = navigateUtils.calc(locNo, locMast.getLocNo(), NavigationMapType.NORMAL.id, Utils.getShuttlePoints(0, Utils.getLev(locNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
+ if (currentShuttlePath == null) {
+ continue;
+ }
+ Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
+ if (currentAllDistance < recentDistance) {
+ recentDistance = currentAllDistance;
+ recentLocNo = locMast.getLocNo();
+ }
+ }
+
+ return recentLocNo;
+ }
}
--
Gitblit v1.9.1