src/main/java/com/whyc/controller/Fbs9100sDfuStateController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/paramter/AIOUpdatePar.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/Fbs9100sDfuStateMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/Fbs9100sDfuStateService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/webSocket/AIOUpdateSocket.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/Fbs9100sDfuStateMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/Fbs9100sDfuStateController.java
@@ -1,7 +1,9 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.UserInf; import com.whyc.service.Fbs9100sDfuStateService; import com.whyc.util.ActionUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -29,7 +31,8 @@ @ApiOperation("查询A059设备升级") @GetMapping("searchA059") public Response searchA059(@RequestParam int pageNum,@RequestParam int pageSize,@RequestParam(required = false) String stationName1,@RequestParam(required = false) String stationName2,@RequestParam(required = false) String stationName5){ return service.searchA059(pageNum,pageSize,stationName1,stationName2,stationName5); UserInf userInf = ActionUtil.getUser(); return service.searchA059(pageNum,pageSize,stationName1,stationName2,stationName5,userInf.getUId().intValue()); } @ApiOperation("添加") src/main/java/com/whyc/dto/paramter/AIOUpdatePar.java
New file @@ -0,0 +1,19 @@ package com.whyc.dto.paramter; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @Data @AllArgsConstructor @NoArgsConstructor @ToString public class AIOUpdatePar { private Integer pageNum; private Integer pageSize; private String stationName1; private String stationName2; private String stationName5; private Integer uId; } src/main/java/com/whyc/mapper/Fbs9100sDfuStateMapper.java
@@ -10,7 +10,7 @@ //查询正在升级的设备 List searchAll(); List searchA059(@Param("stationName1") String stationName1,@Param("stationName2") String stationName2,@Param("stationName5") String stationName5); List searchA059(@Param("stationName1") String stationName1,@Param("stationName2") String stationName2,@Param("stationName5") String stationName5,@Param("uId") int uId); //添加 int addPro(String stationName,int num); src/main/java/com/whyc/service/Fbs9100sDfuStateService.java
@@ -23,9 +23,9 @@ return new Response().set(1,pageInfo); } public Response searchA059(int pageNum,int pageSize,String stationName1,String stationName2,String stationName5){ public Response searchA059(int pageNum,int pageSize,String stationName1,String stationName2,String stationName5,int uId){ PageHelper.startPage(pageNum,pageSize); List list = mapper.searchA059(stationName1,stationName2,stationName5); List list = mapper.searchA059(stationName1,stationName2,stationName5,uId); PageInfo<Fbs9100sDfuState> pageInfo = new PageInfo<>(list); return new Response().set(1,pageInfo,"查询成功"); } src/main/java/com/whyc/webSocket/AIOUpdateSocket.java
New file @@ -0,0 +1,100 @@ package com.whyc.webSocket; import com.whyc.dto.Response; import com.whyc.dto.paramter.AIOUpdatePar; import com.whyc.dto.paramter.AlarmPar; import com.whyc.service.Fbs9100sDfuStateService; import com.whyc.util.ActionUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.websocket.*; import javax.websocket.server.ServerEndpoint; import java.util.HashMap; import java.util.Map; @Component @ServerEndpoint(value = "/aioUpdateSearch",encoders = WebSocketEncoder.class) public class AIOUpdateSocket { private volatile Thread thread; private static final int executeTime = 5000; private volatile boolean runFlag=true; private volatile Map<String,Thread> threadMap = new HashMap<>(); private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); private static Fbs9100sDfuStateService service; private Session session; @Autowired public void setService(Fbs9100sDfuStateService service){ AIOUpdateSocket.service = service; } @OnOpen public void onOpen(Session session){ this.session=session; } @OnMessage public synchronized void onMessage(Session session, String message){ AIOUpdatePar aioUpdatePar = ActionUtil.getGson().fromJson(message, AIOUpdatePar.class); thread = new Thread("Thread_aioUpdateSearch") { public void run() { while (runFlag&&!isInterrupted()) { Thread thread = currentThread(); threadFlagMap.put(thread.getId(),true); try { Map<String, Response> res=new HashMap<>(); //查询已确认信息 Response a059=service.searchA059(aioUpdatePar.getPageNum(),aioUpdatePar.getPageSize(),aioUpdatePar.getStationName1(),aioUpdatePar.getStationName2(),aioUpdatePar.getStationName5(),aioUpdatePar.getUId()); res.put("searchA059",a059); if (session.isOpen()) { //推送信息 synchronized (session) { session.getBasicRemote().sendObject(new Response().set(1, res)); } threadFlagMap.put(thread.getId(),false); } sleep(executeTime); //} catch (IOException | InterruptedException | EncodeException e) { } catch (Exception e) { interrupt(); } } } }; thread.start(); threadFlagMap.put(thread.getId(),true); //停止老的socket线程 Thread threadBefore = threadMap.get(session.getId()); if(threadBefore !=null && threadBefore.isAlive()){ while (threadFlagMap.get(threadBefore.getId())){ } threadBefore.interrupt(); } //将线程存储,便于调用定位 threadMap.put(session.getId(), this.thread); } @OnClose public void onClose(CloseReason closeReason){ System.err.println("closeReason = " + closeReason); runFlag = false; if (thread != null && thread.isAlive()) { thread.interrupt(); } threadMap.remove(session.getId()); } @OnError public void onError(Throwable error) { error.printStackTrace(); if (thread != null && thread.isAlive()) { thread.interrupt(); } threadMap.remove(session.getId()); } } src/main/resources/mapper/Fbs9100sDfuStateMapper.xml
@@ -17,15 +17,21 @@ from db_ram_db.tb_fbs9100s_dfu_state,db_battinf.tb_battinf where db_ram_db.tb_fbs9100s_dfu_state.dev_id=db_battinf.tb_battinf.fBSDeviceId and db_ram_db.tb_fbs9100s_dfu_state.dev_id like '8059%' <if test="stationName1 != null and stationName1!=''"> <if test="stationName1 != null and stationName1!='' and stationName1!='null'"> and db_battinf.tb_battinf.stationName1=#{stationName1} </if> <if test="stationName2 != null and stationName2!=''"> <if test="stationName2 != null and stationName2!='' and stationName2!='null'"> and db_battinf.tb_battinf.stationName2=#{stationName2} </if> <if test="stationName5 != null and stationName5!=''"> <if test="stationName5 != null and stationName5!='' and stationName5!='null'"> and db_battinf.tb_battinf.stationName5=#{stationName5} </if> and b.StationId in ( select distinct db_user.tb_user_battgroup_baojigroup_battgroup.StationId from db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr where db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id=db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id and db_user.tb_user_battgroup_baojigroup_usr.uId=#{uId} ) </select>