From 96cfc17f191fee0a05070ec8e7bb6fb099f0231c Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期三, 24 十二月 2025 14:28:42 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java | 43 +++++++++++++++++++++++++++++--------------
1 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java b/src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java
index 23d3ac9..235b579 100644
--- a/src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java
+++ b/src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java
@@ -3,7 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasStation;
import com.zy.asrs.entity.DeviceConfig;
+import com.zy.asrs.service.BasStationService;
import com.zy.common.model.NavigateNode;
import com.zy.common.utils.NavigateUtils;
import com.zy.common.utils.RedisUtil;
@@ -191,12 +193,9 @@
Integer stationId = command.getStationId();
Integer targetStationId = command.getTargetStaNo();
- String startLev = String.valueOf(stationId).substring(0, 1);
-
List<NavigateNode> navigateNodes = null;
-
try {
- navigateNodes = navigateUtils.calcByStationId(Integer.parseInt(startLev), stationId, targetStationId);
+ navigateNodes = navigateUtils.calcByStationId(stationId, targetStationId);
} catch (Exception e) {
e.printStackTrace();
}
@@ -209,6 +208,10 @@
}
private void diffLevCommand(StationCommand command, boolean generateBarcode) {
+ BasStationService basStationService = SpringUtils.getBean(BasStationService.class);
+ if (basStationService == null) {
+ return;
+ }
NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
if (navigateUtils == null) {
return;
@@ -218,20 +221,27 @@
Integer stationId = command.getStationId();
Integer targetStationId = command.getTargetStaNo();
- String startLev = String.valueOf(stationId).substring(0, 1);
- String endLev = String.valueOf(targetStationId).substring(0, 1);
-
List<NavigateNode> navigateNodes = null;
List<NavigateNode> targetNavigateNodes = null;
try {
- List<NavigateNode> liftStationList = navigateUtils.findLiftStationList(Integer.parseInt(startLev));
+ BasStation startStation = basStationService.selectById(stationId);
+ if (startStation == null) {
+ return;
+ }
+
+ BasStation targetStation = basStationService.selectById(targetStationId);
+ if (targetStation == null) {
+ return;
+ }
+
+ List<NavigateNode> liftStationList = navigateUtils.findLiftStationList(startStation.getStationLev());
if(liftStationList.isEmpty()){
//鏈壘鍒版彁鍗囨満鑺傜偣
return;
}
- List<NavigateNode> targetLiftStationList = navigateUtils.findLiftStationList(Integer.parseInt(endLev));
+ List<NavigateNode> targetLiftStationList = navigateUtils.findLiftStationList(targetStation.getStationLev());
if(targetLiftStationList.isEmpty()){
//鏈壘鍒版彁鍗囨満鑺傜偣
return;
@@ -261,13 +271,13 @@
continue;
}
- navigateNodes = navigateUtils.calcByStationId(Integer.parseInt(startLev), stationId, liftStationId);
+ navigateNodes = navigateUtils.calcByStationId(stationId, liftStationId);
if(navigateNodes == null){
continue;
}
//璁$畻鎻愬崌鏈哄埌鐩爣绔欑殑璺緞
- targetNavigateNodes = navigateUtils.calcByStationId(Integer.parseInt(endLev), targetLiftStationId, targetStationId);
+ targetNavigateNodes = navigateUtils.calcByStationId(targetLiftStationId, targetStationId);
if(targetNavigateNodes == null) {
continue;
}
@@ -306,8 +316,9 @@
Integer nextStationId = null;
Integer nextStationDeviceNo = null;
+ NavigateNode nextNode = null;
try {
- NavigateNode nextNode = navigateNodes.get(i + 1);
+ nextNode = navigateNodes.get(i + 1);
JSONObject nextValueObject = JSON.parseObject(nextNode.getNodeValue());
nextStationId = nextValueObject.getInteger("stationId");
nextStationDeviceNo = nextValueObject.getInteger("deviceNo");
@@ -352,6 +363,10 @@
continue;
}
lastStationId = currentStationId;
+
+ if (nextNode.getIsInflectionPoint()) {
+ sleep(4000);
+ }
}
i++;
@@ -617,7 +632,7 @@
return executeResult;
}
- public synchronized boolean lockExecute(Integer taskNo, Supplier<Boolean> function) {
+ public boolean lockExecute(Integer taskNo, Supplier<Boolean> function) {
if (!setLockStation(taskNo)) {
return false;
}
@@ -627,7 +642,7 @@
return result;
}
- private synchronized boolean checkTaskNoInArea(Integer taskNo) {
+ private boolean checkTaskNoInArea(Integer taskNo) {
Object fakeTaskNoAreaObj = redisUtil.get(RedisKeyType.FAKE_TASK_NO_AREA.key);
if (fakeTaskNoAreaObj == null) {
return false;
--
Gitblit v1.9.1