|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | shuttleVo.setCurLocNo(Utils.getLocNo(row, bay, lev)); | 
|---|
|  |  |  | List<String> preTravelPath = generatePreTravelPath(row, bay, lev, shouldIncreaseBay, 10); | 
|---|
|  |  |  | List<String> preTravelPath = generateFullTravelPath(10, 30, lev); | 
|---|
|  |  |  | shuttleVo.setPreTravelPath(preTravelPath); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|