| New file | 
|  |  |  | 
|---|
|  |  |  | package com.zy.asrs.wcs.core.map.websocket; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.zy.asrs.wcs.core.map.entity.MapWsShuttleVo; | 
|---|
|  |  |  | import com.zy.asrs.wcs.core.map.entity.MapWsVo; | 
|---|
|  |  |  | import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; | 
|---|
|  |  |  | import com.zy.asrs.wcs.core.service.BasShuttleService; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.cache.SlaveConnection; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.entity.Device; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.model.enums.SlaveType; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.service.DeviceService; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.service.DeviceTypeService; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.service.ShuttleService; | 
|---|
|  |  |  | import com.zy.asrs.wcs.rcs.thread.ShuttleThread; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.scheduling.annotation.Scheduled; | 
|---|
|  |  |  | import org.springframework.stereotype.Component; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * Created by vincent on 4/11/2024 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Component | 
|---|
|  |  |  | public class MapRealTimeDataScheduler { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DeviceTypeService deviceTypeService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DeviceService deviceService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BasShuttleService basShuttleService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Scheduled(cron = "0/1 * * * * ? ") | 
|---|
|  |  |  | public void sync() { | 
|---|
|  |  |  | MapWsVo wsVo = new MapWsVo(); | 
|---|
|  |  |  | // shuttle | 
|---|
|  |  |  | wsVo.setShuttleVos(syncShuttle()); | 
|---|
|  |  |  | MapWebSocket.broadcast(JSON.toJSONString(wsVo)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private List<MapWsShuttleVo> syncShuttle() { | 
|---|
|  |  |  | List<MapWsShuttleVo> shuttleVos = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Device> deviceList = deviceService.list(new LambdaQueryWrapper<Device>().eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())); | 
|---|
|  |  |  | for (Device device : deviceList) { | 
|---|
|  |  |  | basShuttleService. | 
|---|
|  |  |  | ShuttleThread thread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue()); | 
|---|
|  |  |  | if (null == thread) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ShuttleProtocol protocol = thread.getStatus(); | 
|---|
|  |  |  | if (null == protocol) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MapWsShuttleVo shuttleVo = new MapWsShuttleVo(); | 
|---|
|  |  |  | shuttleVo.setShuttleNo(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | shuttleVos.add(shuttleVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return shuttleVos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|