From d62c5c0eb2e28b7bf27d23de84a609b5a2e415e4 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期四, 17 十月 2024 18:48:00 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/map/websocket/MockScheduler.java | 78 +++++++++++++++++++++++++++++++++++++- 1 files changed, 75 insertions(+), 3 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..92cad27 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,17 +1,89 @@ 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 */ -@Component +//@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; } } -- Gitblit v1.9.1