| | |
| | | import javax.annotation.PreDestroy; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Created by vincent on 10/14/2024 |
| | |
| | | @Component |
| | | public class MapDataWsScheduler { |
| | | |
| | | public static final int WEBSOCKET_BROADCAST_INTERVAL = 600; |
| | | public static final int WEBSOCKET_BROADCAST_INTERVAL = 300; |
| | | |
| | | private ExecutorService singleThreadExecutor; |
| | | |
| | |
| | | List<Agv> agvList = agvService.list(new LambdaQueryWrapper<Agv>() |
| | | // .eq(Agv::getStatus, 1) |
| | | ); |
| | | |
| | | Map<String, List<String>> codeDataListMap = mapService.queryCodeListFromDynamicNode(null |
| | | , agvList.stream().map(Agv::getUuid).collect(Collectors.toSet())); |
| | | |
| | | for (Agv agv : agvList) { |
| | | AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); |
| | | AgvModel agvModel = agvModelService.getById(agv.getAgvModel()); |
| | | AgvModel agvModel = agvModelService.getByAgvId(agv.getId()); |
| | | if (null == agvDetail) { continue; } |
| | | Long recentCode = agvDetail.getRecentCode(); |
| | | if (null == recentCode) { continue; } |
| | |
| | | vo.setBattery(agvDetail.getSoc()); |
| | | vo.setError(agvDetail.realError()); |
| | | |
| | | vo.setDynamicRoute(mapService.queryCodeListFromDynamicNode(null, agv.getUuid())); |
| | | vo.setDynamicRoute(codeDataListMap.get(agv.getUuid())); |
| | | |
| | | agvVos.add(vo); |
| | | } |