package com.ld.igds.weather.notify; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.ld.igds.constant.BizType; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.models.WeatherInfo; import com.ld.igds.weather.CoreWeatherService; import com.ld.igds.websocket.WebSocketPacket; import com.ld.igds.websocket.WebSocketServer; @Slf4j @Repository(NotifyWeatherService.BEAN_ID) public class NotifyWeatherServiceImpl implements NotifyWeatherService { @Autowired private WebSocketServer socketServer; @Autowired private CoreWeatherService weatherService; @SuppressWarnings("static-access") @Override public void notify(WeatherInfo weather) { if (null == weather) return; log.debug("气象站信息推送=={}", weather.toString()); WebSocketPacket packet = new WebSocketPacket(); packet.setCompanyId(weather.getCompanyId()); packet.setDeptId(weather.getDeptId()); packet.setBizType(BizType.SCREEN.getCode()); packet.setBizId(BizType.WEATHER.getCode()); packet.setOrderResp(OrderRespEnum.MSG_SUCCESS.getCode()); packet.setData(weather); socketServer.sendByPocket(packet); //更新气象缓存 weatherService.updateCacheAndSave(weather); //推送到出入库大屏和化验大屏 try { Thread.sleep(500); packet.setBizType(BizType.SCREEN_INOUT.getCode()); socketServer.sendByPocket(packet); Thread.sleep(500); packet.setBizType(BizType.SCREEN_CHECK.getCode()); socketServer.sendByPocket(packet); } catch (InterruptedException e) { log.error("气象信息推送出现异常:{}", e.getMessage()); } } @Override public void onCreate(String address, Integer port) { weatherService.onCreate(address, port); } @Override public void onDestroy(String address, Integer port) { weatherService.onDestroy(address, port); } }