From 411c7bcfb64581060c459d6a124b58cafadd983a Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 11 四月 2024 20:35:37 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MockScheduler.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 111 insertions(+), 1 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MockScheduler.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MockScheduler.java
index 72123df..aa771de 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MockScheduler.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MockScheduler.java
@@ -1,7 +1,14 @@
package com.zy.asrs.wcs.core.map.websocket;
+import com.alibaba.fastjson.JSON;
+import com.zy.asrs.wcs.core.map.entity.MapWsShuttleVo;
+import com.zy.asrs.wcs.core.map.entity.MapWsVo;
+import com.zy.asrs.wcs.core.utils.Utils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* Created by vincent on 4/3/2024
@@ -9,9 +16,112 @@
@Component
public class MockScheduler {
+ private int row = 1;
+ private int bay = 1;
+ private int lev = 1;
+ private boolean shouldIncreaseBay = true;
+
@Scheduled(cron = "0/1 * * * * ? ")
public void mock() {
- MapWebSocket.broadcast("test data");
+ MapWsVo wsVo = new MapWsVo();
+
+ // shuttle
+ MapWsShuttleVo shuttleVo = new MapWsShuttleVo();
+ shuttleVo.setShuttleNo("1");
+
+
+
+ if (shouldIncreaseBay) {
+ if (bay < 30) {
+ bay++;
+ } else {
+ // bay 杈惧埌 30 鍚庯紝row 鍏堝 1
+ if (row < 10) {
+ row++;
+ } else {
+ row = 1; // 濡傛灉 row 宸茬粡鏄渶澶э紝鍒欏洖鍒拌捣濮嬩綅缃�
+ }
+ shouldIncreaseBay = false;
+ }
+ } else {
+ if (bay > 1) {
+ bay--;
+ } else {
+ // bay 鍑忓埌 1 鍚庯紝鍒� row 鍏堝 1
+ if (row < 10) {
+ row++;
+ } else {
+ row = 1; // 濡傛灉 row 宸茬粡鏄渶澶э紝鍒欏洖鍒拌捣濮嬩綅缃�
+ }
+ shouldIncreaseBay = true;
+ }
+ }
+
+
+ shuttleVo.setCurLocNo(Utils.getLocNo(row, bay, lev));
+ List<String> preTravelPath = generateFullTravelPath(10, 30, lev);
+ shuttleVo.setTravelPath(preTravelPath);
+
+
+ wsVo.getShuttleVos().add(shuttleVo);
+
+ MapWebSocket.broadcast(JSON.toJSONString(wsVo));
+ }
+
+ private List<String> generateFullTravelPath(int maxRow, int maxBay, int currentLev) {
+ List<String> fullPath = new ArrayList<>();
+ boolean increasingBay = true; // 鍋囪浠� bay = 1 寮�濮嬮�掑
+
+ for (int currentRow = 1; currentRow <= maxRow; currentRow++) {
+ if (increasingBay) {
+ for (int currentBay = 1; currentBay <= maxBay; currentBay++) {
+ fullPath.add(Utils.getLocNo(currentRow, currentBay, currentLev));
+ }
+ } else {
+ for (int currentBay = maxBay; currentBay >= 1; currentBay--) {
+ fullPath.add(Utils.getLocNo(currentRow, currentBay, currentLev));
+ }
+ }
+ increasingBay = !increasingBay; // 鍒拌揪姣忚鐨勬湯灏炬椂鏀瑰彉bay鐨勯�掑/閫掑噺鏂瑰悜
+ }
+ return fullPath;
+ }
+
+ private List<String> generatePreTravelPath(int currentRow, int currentBay, int currentLev, boolean increasingBay, int pathLength) {
+ List<String> path = new ArrayList<>();
+ int tempRow = currentRow;
+ int tempBay = currentBay;
+ boolean tempIncreaseBay = increasingBay;
+
+ for (int i = 0; i < pathLength; i++) {
+ if (tempIncreaseBay) {
+ if (tempBay < 30) {
+ tempBay++;
+ } else {
+ if (tempRow < 10) {
+ tempRow++;
+ } else {
+ tempRow = 1; // 濡傛灉 row 宸茬粡鏄渶澶э紝鍒欏洖鍒拌捣濮嬩綅缃�
+ }
+ tempIncreaseBay = false;
+ }
+ } else {
+ if (tempBay > 1) {
+ tempBay--;
+ } else {
+ if (tempRow < 10) {
+ tempRow++;
+ } else {
+ tempRow = 1; // 濡傛灉 row 宸茬粡鏄渶澶э紝鍒欏洖鍒拌捣濮嬩綅缃�
+ }
+ tempIncreaseBay = true;
+ }
+ }
+ // 灏嗙敓鎴愮殑搴撲綅鍙峰姞鍏ヨ矾寰勫垪琛�
+ path.add(Utils.getLocNo(tempRow, tempBay, currentLev));
+ }
+
+ return path;
}
}
--
Gitblit v1.9.1