From f182484292a3187c95ff9df547ade45c59d072de Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 21 十月 2024 16:00:30 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java | 193 ++++++++++++++++++++++++++++++++++++++++++++++++ zy-acs-flow/src/map/tool.js | 21 +++- 2 files changed, 206 insertions(+), 8 deletions(-) diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js index ade4711..5f7f0a3 100644 --- a/zy-acs-flow/src/map/tool.js +++ b/zy-acs-flow/src/map/tool.js @@ -500,7 +500,7 @@ const pointRoute = new PointRoute(POINT_ROUTE_DIRECTION[route.direction]); pointRoute.setPoint(startPoint, endPoint); pointRoute.clear(); - pointRoute.lineStyle(Math.max(7, 1.5 * (1 / mapContainer.scale.x)), themeMode === 'light' ? '#ced6e0' : '#535c68'); + pointRoute.lineStyle(Math.max(7, 2 * (1 / mapContainer.scale.x)), themeMode === 'light' ? '#ced6e0' : '#535c68'); pointRoute.moveTo(startPoint.position.x, startPoint.position.y); pointRoute.lineTo(endPoint.position.x, endPoint.position.y); pointRoute.alpha = 1; @@ -620,9 +620,8 @@ export const generateDynamicGraphic = (curZone, data, setCurSprite) => { // console.log("ws", curZone, data); - + console.log(JSON.stringify(data)); for (const agvVo of data.agvVos) { - // console.log(agvVo); showAgvSprite(curZone, agvVo, setCurSprite); drawerAgvPath(curZone, agvVo); } @@ -637,7 +636,8 @@ let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo); if (!agvSprite) { agvSprite = generateSprite(DEVICE_TYPE.AGV, - generateAgvSpriteTexture(getAgvStatusMode(backpack.filter(item => item.loaded === true).length, battery)) + // generateAgvSpriteTexture(getAgvStatusMode(backpack.filter(item => item.loaded === true).length, battery)); + generateAgvSpriteTexture(getAgvStatusMode(1, battery)) ); initSprite(agvSprite, DEVICE_TYPE.AGV); agvSprite.data.no = agvNo; @@ -647,6 +647,13 @@ beInsight(agvSprite, setCurSprite); // agv no on sprite } + + new TWEEDLE.Tween(agvSprite?.position).easing(TWEEDLE.Easing.Linear.None).to({ + x: codeSprite.position.x, + y: codeSprite.position.y + }, 1000).onUpdate(() => { + updateEffect(agvSprite); + }).start(); } const drawerAgvPath = (curZone, agvVo) => { @@ -654,9 +661,9 @@ return; } const { agvNo, code: curCode, dynamicRoute } = agvVo; - if (dynamicRoute?.length <= 1) { - return; - } + // if (dynamicRoute?.length <= 1) { + // return; + // } const agvPathName = 'agvPath-' + agvNo; let agvPath = mapContainer.getChildByName(agvPathName); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java index ab38279..09035a8 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java @@ -17,8 +17,11 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Created by vincent on 10/14/2024 @@ -35,11 +38,22 @@ @Autowired private MapDataDispatcher mapDataDispatcher; + int i = 0; + @Scheduled(cron = "0/1 * * * * ? ") public void broadcast() { + i++; + int key; + if (i > 10) { + i=0; + } + key = i /2; + MapWebSocket.broadcast(mockData.get(key)); + + MapWsVo mapWsVo = new MapWsVo(); mapWsVo.setAgvVos(syncAgv()); - MapWebSocket.broadcast(GsonUtils.toJson(mapWsVo)); +// MapWebSocket.broadcast(GsonUtils.toJson(mapWsVo)); } private List<MapWsAgvVo> syncAgv() { @@ -70,4 +84,181 @@ return agvVos; } + + + + + + private static final Map<Integer, String> mockData = new ConcurrentHashMap<>(); + + @PostConstruct + public void init() { + mockData.put(1, + "{\n" + + " \"agvVos\": [\n" + + " {\n" + + " \"agvNo\": \"1\",\n" + + " \"code\": \"00000002\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + " \"00000002\",\n" + + " \"00000003\",\n" + + " \"00000004\"\n" + + " ]\n" + + " },\n" + + " {\n" + + " \"agvNo\": \"2\",\n" + + " \"code\": \"00000063\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + " \"00000063\",\n" + + " \"00000062\",\n" + + " \"00000061\",\n" + + " \"00000060\",\n" + + " \"00000059\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}" + ); + mockData.put(2, +"{\n" + + " \"agvVos\": [\n" + + " {\n" + + " \"agvNo\": \"1\",\n" + + " \"code\": \"00000003\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + " \"00000003\",\n" + + " \"00000004\"\n" + + " ]\n" + + " },\n" + + " {\n" + + " \"agvNo\": \"2\",\n" + + " \"code\": \"00000062\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + " \n" + + " \"00000062\",\n" + + " \"00000061\",\n" + + " \"00000060\",\n" + + " \"00000059\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}" + + ); + + mockData.put(3, + "{\n" + + " \"agvVos\": [\n" + + " {\n" + + " \"agvNo\": \"1\",\n" + + " \"code\": \"00000004\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + " \n" + + " \"00000004\"\n" + + " ]\n" + + " },\n" + + " {\n" + + " \"agvNo\": \"2\",\n" + + " \"code\": \"00000061\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + "\n" + + " \"00000061\",\n" + + " \"00000060\",\n" + + " \"00000059\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}" + ); + + mockData.put(4, + "{\n" + + " \"agvVos\": [\n" + + " {\n" + + " \"agvNo\": \"1\",\n" + + " \"code\": \"00000004\",\n" + + " \"direction\": 120,\n" + + " \"dynamicRoute\": [\n" + + " \"00000004\"\n" + + " ]\n" + + " },\n" + + " {\n" + + " \"agvNo\": \"2\",\n" + + " \"code\": \"00000060\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + "\n" + + " \"00000060\",\n" + + " \"00000059\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}" + ); + + mockData.put(5, + "{\n" + + " \"agvVos\": [\n" + + " {\n" + + " \"agvNo\": \"1\",\n" + + " \"code\": \"00000004\",\n" + + " \"direction\": 180,\n" + + " \"dynamicRoute\": [\n" + + " \"00000004\"\n" + + " ]\n" + + " },\n" + + " {\n" + + " \"agvNo\": \"2\",\n" + + " \"code\": \"00000059\",\n" + + " \"direction\": 90,\n" + + " \"dynamicRoute\": [\n" + + "\n" + + " \"00000059\"\n" + + " ]\n" + + " }\n" + + " ]\n" + + "}" + + ); + } + } + + +/** + + { + "agvVos": [ + { + "agvNo": "1", + "code": "00000002", + "direction": 90, + "dynamicRoute": [ + "00000002", + "00000003", + "00000004" + ] + }, + { + "agvNo": "2", + "code": "00000063", + "direction": 90, + "dynamicRoute": [ + "00000063", + "00000062", + "00000061", + "00000060", + "00000059" + ] + } + ] + } + ] + } + */ \ No newline at end of file -- Gitblit v1.9.1