| | |
| | | import com.qianwen.core.tool.utils.Func; |
| | | import com.qianwen.core.websocket.config.WebSocketMessageSender; |
| | | import com.qianwen.core.websocket.handler.JsonMessageHandler; |
| | | import com.qianwen.smartman.modules.coproduction.entity.OrderWorkstation; |
| | | import com.qianwen.smartman.modules.coproduction.service.IOrderWorkstationService; |
| | | //import com.qianwen.smartman.modules.coproduction.entity.OrderWorkstation; |
| | | //import com.qianwen.smartman.modules.coproduction.service.IOrderWorkstationService; |
| | | import com.qianwen.smartman.modules.mdc.service.RealTimeDataService; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.socket.WebSocketSession; |
| | | |
| | |
| | | */ |
| | | @Component |
| | | public class RealTimeDataJsonMessageHandler implements JsonMessageHandler<RealTimeDataRequestJsonWebSocketMessage> { |
| | | private final IOrderWorkstationService orderWorkstationService; |
| | | private Logger log = LoggerFactory.getLogger(this.getClass()); |
| | | //private final IOrderWorkstationService orderWorkstationService; |
| | | |
| | | @Autowired |
| | | private RealTimeDataService realTimeDataService; |
| | | /* |
| | | public RealTimeDataJsonMessageHandler(final IOrderWorkstationService orderWorkstationService) { |
| | | this.orderWorkstationService = orderWorkstationService; |
| | | } |
| | | }*/ |
| | | |
| | | public void handle(WebSocketSession session, RealTimeDataRequestJsonWebSocketMessage message) { |
| | | List<String> workstationIdList = message.getWorkstationIdList(); |
| | | List<OrderWorkstation> workstationInProcess = this.orderWorkstationService.getWorkstationInProcess(workstationIdList.stream().map(Long::valueOf).collect(Collectors.toSet())); |
| | | Map<Long, String> orderWorkstationMap = workstationInProcess.stream().collect(Collectors.toMap(OrderWorkstation::getWorkstationId, OrderWorkstation::getOrderCode)); |
| | | log.info("收到websocket消息,message.workstationidList={}",message.getWorkstationIdList()); |
| | | //从blade_order_xxx表获取正在加工的工位, |
| | | //List<OrderWorkstation> workstationInProcess = this.orderWorkstationService.getWorkstationInProcess(workstationIdList.stream().map(Long::valueOf).collect(Collectors.toSet())); |
| | | |
| | | //生成 工位id -> 工单号的map |
| | | //Map<Long, String> orderWorkstationMap = workstationInProcess.stream().collect(Collectors.toMap(OrderWorkstation::getWorkstationId, OrderWorkstation::getOrderCode)); |
| | | |
| | | if (Func.isNotEmpty(workstationIdList)) { |
| | | for (String workstationId : workstationIdList) { |
| | | RealTimeDaraResponseJsonWebSocketMessage jsonWebSocketMessage = new RealTimeDaraResponseJsonWebSocketMessage(); |
| | | Map<String, Object> map = WorkstationCache.getWorkstationRealTime(workstationId); |
| | | map.put("orderCode", Func.isEmpty(orderWorkstationMap.get(Long.valueOf(workstationId))) ? "-" : orderWorkstationMap.get(Long.valueOf(workstationId))); |
| | | Map<String, Object> map = WorkstationCache.getWorkstationRealTime(workstationId);//TODO:这就是返回给前端的数据,我需要在这里查询,里面缓存没有,实际上就是直接查询 |
| | | if("1656819188967653378".equals(workstationId)) { |
| | | log.info(workstationId+"收到:"+map); |
| | | } |
| | | long wid = Long.parseLong(workstationId); |
| | | realTimeDataService.addPreTimeInDeviceStatus(wid, map); |
| | | //map.put("orderCode", Func.isEmpty(orderWorkstationMap.get(Long.valueOf(workstationId))) ? "-" : orderWorkstationMap.get(Long.valueOf(workstationId))); |
| | | jsonWebSocketMessage.setData(map); |
| | | jsonWebSocketMessage.setId(workstationId); |
| | | WebSocketMessageSender.send(session, jsonWebSocketMessage); |