src/main/java/com/whyc/controller/BattalarmDataController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattalarmDataService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/webSocket/BattAlarmFootSocket.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/BattalarmDataController.java
@@ -111,7 +111,7 @@ @ApiOperation(value = "获取底部电池告警",notes = "项目下方的滚动,查询最新电池告警(电池告警和设备告警筛选出最新的五条)") public Response getRealAlarm(){ UserInf userInf = ActionUtil.getUser(); return service.getRealAlarm(userInf.getUId().intValue()); return service.getRealAlarm(userInf.getUId().intValue(), null); } src/main/java/com/whyc/service/BattalarmDataService.java
@@ -337,19 +337,19 @@ //项目下方的滚动,查询30天的电池告警和设备告警和电源告警 @Transactional public Response getRealAlarm(int uId){ public Response getRealAlarm(int uId, String lang) { Calendar instance = Calendar.getInstance(); instance.add(Calendar.MONTH,-1); instance.add(Calendar.MONTH, -1); Date yesterday = instance.getTime(); int[] alarmParams = {AlarmDaoFactory.Alarm_CapAlarm,AlarmDaoFactory.Alarm_CapChange,AlarmDaoFactory.Alarm_res_Conn,AlarmDaoFactory.ALM_TYPE_DisChargeMonVol_ID}; List<BattalarmData> lista=mapper.getRealAlarm(yesterday,uId,alarmParams); for (BattalarmData battAlarm:lista) { int[] alarmParams = {AlarmDaoFactory.Alarm_CapAlarm, AlarmDaoFactory.Alarm_CapChange, AlarmDaoFactory.Alarm_res_Conn, AlarmDaoFactory.ALM_TYPE_DisChargeMonVol_ID}; List<BattalarmData> lista = mapper.getRealAlarm(yesterday, uId, alarmParams); for (BattalarmData battAlarm : lista) { battAlarm.setAlarmName(AlarmDaoFactory.getAlarmName(battAlarm.getAlmSignalId())); } List<DevalarmData> listd=devalarmDataMapper.getRealAlarm(yesterday,uId); if(listd!=null&&listd.size()>0){ List<DevalarmData> listd = devalarmDataMapper.getRealAlarm(yesterday, uId); if (listd != null && listd.size() > 0) { for (DevalarmData ddata : listd) { BattalarmData data=new BattalarmData(); BattalarmData data = new BattalarmData(); data.setBattGroupId(ddata.getDevId()); data.setAlarmType("1");//1表示设备告警 data.setAlmId(ddata.getAlmType()); @@ -360,7 +360,7 @@ data.setNum(ddata.getNum()); data.setAlmStartTime(ddata.getAlmStartTime()); //data.setAlm_signal_id(ddata.getAlm_type()); data.setAlarmName(AlarmDaoFactory.getdevName(ddata.getAlmType())); data.setAlarmName(MessageUtils.getMessageSocket(AlarmDaoFactory.getdevName(ddata.getAlmType()), lang)); lista.add(data); } } src/main/java/com/whyc/webSocket/BattAlarmFootSocket.java
@@ -1,10 +1,11 @@ package com.whyc.webSocket; import com.whyc.dto.Response; import com.whyc.config.WebSocketConfig; import com.whyc.service.BattalarmDataService; 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.io.IOException; @@ -12,35 +13,40 @@ import java.util.Map; @Component @ServerEndpoint(value = "/battAlarmFoot",encoders = WebSocketEncoder.class) @ServerEndpoint(value = "/battAlarmFoot", encoders = WebSocketEncoder.class, configurator = WebSocketConfig.class) public class BattAlarmFootSocket { private volatile Thread thread; private static final int executeTime = 5000; private volatile boolean runFlag=true; private volatile boolean runFlag = true; private volatile Map<String,Thread> threadMap = new HashMap<>(); private volatile Map<String, Thread> threadMap = new HashMap<>(); private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); private volatile Map<Long, Boolean> threadFlagMap = new HashMap<>(); private static BattalarmDataService service; private Session session; private HttpSession httpSession; @Autowired public void setService(BattalarmDataService service){ public void setService(BattalarmDataService service) { BattAlarmFootSocket.service = service; } @OnOpen public void onOpen(Session session){ this.session=session; public void onOpen(Session session, EndpointConfig config) { this.session = session; this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); } @OnMessage public synchronized void onMessage(Session session, String uId){ String lang = (String) this.httpSession.getAttribute("lang"); thread = new Thread("Thread_battAlarmFoot") { @Override public void run() { while (runFlag && !isInterrupted()) { Thread thread = currentThread(); @@ -49,7 +55,7 @@ if (session.isOpen()) { //推送信息 synchronized (session) { session.getBasicRemote().sendObject(service.getRealAlarm(Integer.parseInt(uId))); session.getBasicRemote().sendObject(service.getRealAlarm(Integer.parseInt(uId), lang)); } threadFlagMap.put(thread.getId(),false); }