| | |
| | | package com.whyc.webSocket; |
| | | |
| | | import com.whyc.config.WebSocketConfig; |
| | | import com.whyc.service.StationInfService; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.pojo.StationInf; |
| | | import com.whyc.pojo.UserInf; |
| | | import com.whyc.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.servlet.http.HttpSession; |
| | | import javax.websocket.*; |
| | | import javax.websocket.server.ServerEndpoint; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | |
| | | private volatile Map<Long, Boolean> threadFlagMap = new HashMap<>(); |
| | | |
| | | private static StationInfService service; |
| | | private static BattdischargePlanService planService; |
| | | |
| | | private static BattalarmDataService bAlmService; |
| | | |
| | | private static DevalarmDataService dAlmService; |
| | | |
| | | private static PwrdevAlarmService pAlmService; |
| | | |
| | | private static StationInfService sinfService; |
| | | |
| | | private static Fbs9100StateService fbs9100StateService; |
| | | |
| | | private Session session; |
| | | |
| | | |
| | | @Autowired |
| | | public void setStationInfService(StationInfService service) { |
| | | HomeMonitorSocket.service = service; |
| | | public void setBattdischargePlanService(BattdischargePlanService planService) { |
| | | HomeMonitorSocket.planService = planService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setBattalarmDataService(BattalarmDataService bAlmService) { |
| | | HomeMonitorSocket.bAlmService = bAlmService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setDevalarmDataService(DevalarmDataService dAlmService) { |
| | | HomeMonitorSocket.dAlmService = dAlmService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setPwrdevAlarmService(PwrdevAlarmService pAlmService) { |
| | | HomeMonitorSocket.pAlmService = pAlmService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setStationInfService(StationInfService sinfService) { |
| | | HomeMonitorSocket.sinfService = sinfService; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setFbs9100StateService(Fbs9100StateService fbs9100StateService) { |
| | | HomeMonitorSocket.fbs9100StateService = fbs9100StateService; |
| | | } |
| | | |
| | | @OnOpen |
| | | public void onOpen(Session session, EndpointConfig config) { |
| | | this.session = session; |
| | | /*HttpSession httpSession = (HttpSession) config.getUserProperties().get("httpSession"); |
| | | HttpSession httpSession = (HttpSession) config.getUserProperties().get("httpSession"); |
| | | UserInf user = (UserInf) httpSession.getAttribute("user"); |
| | | final int userId = user.getUId().intValue();*/ |
| | | final int userId = 1001; |
| | | thread = new Thread("Thread_stationRt") { |
| | | final int userId = user.getUId().intValue(); |
| | | //final int userId = 1087; |
| | | thread = new Thread("Thread_homeMonitor") { |
| | | @Override |
| | | public void run() { |
| | | while (runFlag && !isInterrupted()) { |
| | |
| | | if (session.isOpen()) { |
| | | //推送信息 |
| | | synchronized (session) { |
| | | session.getBasicRemote().sendObject(service.getAll(userId)); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | /*//今日放电任务统计 |
| | | Response planRes = planService.getPlanStaticToday(userId); |
| | | map.put("planRes", planRes);*/ |
| | | //今日放电站点统计 |
| | | Response chargeRes = fbs9100StateService.getChargeStaticToday(userId); |
| | | map.put("chargeRes", chargeRes); |
| | | //今日实时告警(实时告警) |
| | | Response bAlmRes = bAlmService.getBalmToday(userId); |
| | | map.put("bAlmRes", bAlmRes); |
| | | Response bDebRes = dAlmService.getDalmToday(userId); |
| | | map.put("bDebRes", bDebRes); |
| | | Response bPwrRes = pAlmService.getPalmToday(userId); |
| | | map.put("bPwrRes", bPwrRes); |
| | | //追加今日计划放电的站点数 |
| | | int stationNumOfDischargePlanToday = planService.getPlanStationToday(userId); |
| | | map.put("stationNumOfDischargePlanToday",stationNumOfDischargePlanToday); |
| | | //站点地图 |
| | | List<StationInf> mapInMonitor = sinfService.getStationMapInMonitor(userId); |
| | | map.put("stationMap", mapInMonitor); |
| | | session.getBasicRemote().sendObject(new Response<>().set(1, map)); |
| | | } |
| | | threadFlagMap.put(thread.getId(), false); |
| | | } |