From 7f9435bb4a074b4964f290c4d6905e0e233a19ec Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 21 十一月 2025 12:56:18 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java | 98 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 97 insertions(+), 1 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 2425a7f..b1281e2 100644
--- a/src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java
+++ b/src/main/java/com/zy/core/network/fake/ZyStationFakeConnect.java
@@ -77,6 +77,20 @@
}
private void handleCommand(StationCommand command) {
+ Integer stationId = command.getStationId();
+ Integer targetStationId = command.getTargetStaNo();
+
+ String startLev = String.valueOf(stationId).substring(0, 1);
+ String endLev = String.valueOf(targetStationId).substring(0, 1);
+
+ if (startLev.equals(endLev)) {
+ currentLevCommand(command);
+ }else {
+ diffLevCommand(command);
+ }
+ }
+
+ private void currentLevCommand(StationCommand command) {
NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
if (navigateUtils == null) {
return;
@@ -86,10 +100,12 @@
Integer stationId = command.getStationId();
Integer targetStationId = command.getTargetStaNo();
+ String startLev = String.valueOf(stationId).substring(0, 1);
+
List<NavigateNode> navigateNodes = null;
try {
- navigateNodes = navigateUtils.calcByStationId(stationId, targetStationId);
+ navigateNodes = navigateUtils.calcByStationId(Integer.parseInt(startLev), stationId, targetStationId);
} catch (Exception e) {
e.printStackTrace();
}
@@ -98,6 +114,86 @@
return;
}
+ stationMove(navigateNodes, taskNo, targetStationId);
+ }
+
+ private void diffLevCommand(StationCommand command) {
+ NavigateUtils navigateUtils = SpringUtils.getBean(NavigateUtils.class);
+ if (navigateUtils == null) {
+ return;
+ }
+
+ Integer taskNo = command.getTaskNo();
+ 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));
+ if(liftStationList.isEmpty()){
+ //鏈壘鍒版彁鍗囨満鑺傜偣
+ return;
+ }
+
+ List<NavigateNode> targetLiftStationList = navigateUtils.findLiftStationList(Integer.parseInt(endLev));
+ if(targetLiftStationList.isEmpty()){
+ //鏈壘鍒版彁鍗囨満鑺傜偣
+ return;
+ }
+ for (NavigateNode liftStation : liftStationList) {
+ JSONObject valuObject = JSON.parseObject(liftStation.getNodeValue());
+ if(valuObject == null){
+ continue;
+ }
+ Integer liftStationId = valuObject.getInteger("stationId");
+ Integer liftNo = valuObject.getInteger("liftNo");
+
+ Integer targetLiftStationId = null;
+ for (NavigateNode targetLiftStation : targetLiftStationList) {
+ JSONObject targetValuObject = JSON.parseObject(targetLiftStation.getNodeValue());
+ if(targetValuObject == null){
+ continue;
+ }
+ Integer targetLiftNo = targetValuObject.getInteger("liftNo");
+ if(liftNo.equals(targetLiftNo)){
+ targetLiftStationId = targetValuObject.getInteger("stationId");
+ break;
+ }
+ }
+
+ if(targetLiftStationId == null){
+ continue;
+ }
+
+ navigateNodes = navigateUtils.calcByStationId(Integer.parseInt(startLev), stationId, liftStationId);
+ if(navigateNodes == null){
+ continue;
+ }
+
+ //璁$畻鎻愬崌鏈哄埌鐩爣绔欑殑璺緞
+ targetNavigateNodes = navigateUtils.calcByStationId(Integer.parseInt(endLev), targetLiftStationId, targetStationId);
+ if(targetNavigateNodes == null) {
+ continue;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ if (navigateNodes == null || targetNavigateNodes == null) {
+ return;
+ }
+
+ stationMove(navigateNodes, taskNo, stationId);
+ stationMove(targetNavigateNodes, taskNo, targetStationId);
+ }
+
+ private void stationMove(List<NavigateNode> navigateNodes, Integer taskNo, Integer targetStationId) {
Integer lastStationId = null;
for (int i = 0; i < navigateNodes.size(); i++) {
NavigateNode navigateNode = navigateNodes.get(i);
--
Gitblit v1.9.1