diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java index a6ff200..92ccd0b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage( @Param("page") Page page,@Param("ew" ) QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java index a6ff200..92ccd0b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage( @Param("page") Page page,@Param("ew" ) QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml index 999cc93..bd4b1f0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml @@ -4,27 +4,31 @@ - - - - - - - + + + + + + + - id , + id + , create_time as createTime , update_time as updateTime , detector_ip as detectorIp , detector_port as detectorPort , robot_id as robotId , - detector_name as detectorName + detector_name as detectorName - a.id , + a + . + id + , a .create_time as createTime , @@ -42,7 +46,7 @@ as robotId , a .detector_name - as detectorName + as detectorName - - and robot_id = #{request.robotId} - - - and detector_name like concat('%',#{request.detectorName},'%') - + + and robot_id = #{request.robotId} + + + and detector_name like concat('%',#{request.detectorName},'%') + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java index a6ff200..92ccd0b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage( @Param("page") Page page,@Param("ew" ) QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml index 999cc93..bd4b1f0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml @@ -4,27 +4,31 @@ - - - - - - - + + + + + + + - id , + id + , create_time as createTime , update_time as updateTime , detector_ip as detectorIp , detector_port as detectorPort , robot_id as robotId , - detector_name as detectorName + detector_name as detectorName - a.id , + a + . + id + , a .create_time as createTime , @@ -42,7 +46,7 @@ as robotId , a .detector_name - as detectorName + as detectorName - - and robot_id = #{request.robotId} - - - and detector_name like concat('%',#{request.detectorName},'%') - + + and robot_id = #{request.robotId} + + + and detector_name like concat('%',#{request.detectorName},'%') + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java index a26e60f..1e0c317 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage(Page page,QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java index a6ff200..92ccd0b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage( @Param("page") Page page,@Param("ew" ) QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml index 999cc93..bd4b1f0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml @@ -4,27 +4,31 @@ - - - - - - - + + + + + + + - id , + id + , create_time as createTime , update_time as updateTime , detector_ip as detectorIp , detector_port as detectorPort , robot_id as robotId , - detector_name as detectorName + detector_name as detectorName - a.id , + a + . + id + , a .create_time as createTime , @@ -42,7 +46,7 @@ as robotId , a .detector_name - as detectorName + as detectorName - - and robot_id = #{request.robotId} - - - and detector_name like concat('%',#{request.detectorName},'%') - + + and robot_id = #{request.robotId} + + + and detector_name like concat('%',#{request.detectorName},'%') + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java index a26e60f..1e0c317 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage(Page page,QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java index 9d384c1..3642674 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java @@ -28,4 +28,9 @@ return this.baseMapper.selectDetectorInfoPage(page,query); } + @Override + public List getOnlineList() { + + return this.baseMapper.getOnlineList(); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java index a6ff200..92ccd0b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage( @Param("page") Page page,@Param("ew" ) QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml index 999cc93..bd4b1f0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml @@ -4,27 +4,31 @@ - - - - - - - + + + + + + + - id , + id + , create_time as createTime , update_time as updateTime , detector_ip as detectorIp , detector_port as detectorPort , robot_id as robotId , - detector_name as detectorName + detector_name as detectorName - a.id , + a + . + id + , a .create_time as createTime , @@ -42,7 +46,7 @@ as robotId , a .detector_name - as detectorName + as detectorName - - and robot_id = #{request.robotId} - - - and detector_name like concat('%',#{request.detectorName},'%') - + + and robot_id = #{request.robotId} + + + and detector_name like concat('%',#{request.detectorName},'%') + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java index a26e60f..1e0c317 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage(Page page,QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java index 9d384c1..3642674 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java @@ -28,4 +28,9 @@ return this.baseMapper.selectDetectorInfoPage(page,query); } + @Override + public List getOnlineList() { + + return this.baseMapper.getOnlineList(); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index e8c59b8..34bcce6 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -16,6 +16,7 @@ import javax.annotation.PreDestroy; import javax.annotation.Resource; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.TimeUnit; @@ -50,7 +51,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); + p.addLast(new NettyClientHandler(userId, channelCache, neutronOptService, NettyClient.this)); } }); @@ -114,14 +115,25 @@ // 客户端启动,并连上服务器端 @PostConstruct public void init() { - System.out.println("中子源探测器开始连接了------>"); - List detectorInfoList = iDetectorInfoService.list(); - if (null != detectorInfoList && detectorInfoList.size() > 0) { - detectorInfoList.forEach(detectorInfo -> { - ForkJoinPool.commonPool().submit(() -> startClient(detectorInfo.getDetectorIp(), - detectorInfo.getDetectorPort(), detectorInfo.getRobotId())); - }); + List detectorInfoList = new ArrayList<>(); + //10秒轮询机器人是否上线 + while (true) { + try { + detectorInfoList = iDetectorInfoService.getOnlineList(); + if (null != detectorInfoList && detectorInfoList.size() > 0) { + break; + } + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } } + System.out.println("中子源探测器开始连接了------>"); + + detectorInfoList.forEach(detectorInfo -> { + ForkJoinPool.commonPool().submit(() -> startClient(detectorInfo.getDetectorIp(), + detectorInfo.getDetectorPort(), detectorInfo.getRobotId())); + }); // ForkJoinPool.commonPool().submit(() -> startClient("192.168.1.50", 52002)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java index a6ff200..92ccd0b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/DetectorInfoMapper.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage( @Param("page") Page page,@Param("ew" ) QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml index 999cc93..bd4b1f0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dao/mapping/DetectorInfoMapper.xml @@ -4,27 +4,31 @@ - - - - - - - + + + + + + + - id , + id + , create_time as createTime , update_time as updateTime , detector_ip as detectorIp , detector_port as detectorPort , robot_id as robotId , - detector_name as detectorName + detector_name as detectorName - a.id , + a + . + id + , a .create_time as createTime , @@ -42,7 +46,7 @@ as robotId , a .detector_name - as detectorName + as detectorName - - and robot_id = #{request.robotId} - - - and detector_name like concat('%',#{request.detectorName},'%') - + + and robot_id = #{request.robotId} + + + and detector_name like concat('%',#{request.detectorName},'%') + + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java index a26e60f..1e0c317 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IDetectorInfoService.java @@ -20,4 +20,6 @@ * 探测器信息管理 分页检索 */ List selectDetectorInfoPage(Page page,QueryWrapper query); + + List getOnlineList(); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java index 9d384c1..3642674 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/DetectorInfoServiceImpl.java @@ -28,4 +28,9 @@ return this.baseMapper.selectDetectorInfoPage(page,query); } + @Override + public List getOnlineList() { + + return this.baseMapper.getOnlineList(); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index e8c59b8..34bcce6 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -16,6 +16,7 @@ import javax.annotation.PreDestroy; import javax.annotation.Resource; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.TimeUnit; @@ -50,7 +51,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); + p.addLast(new NettyClientHandler(userId, channelCache, neutronOptService, NettyClient.this)); } }); @@ -114,14 +115,25 @@ // 客户端启动,并连上服务器端 @PostConstruct public void init() { - System.out.println("中子源探测器开始连接了------>"); - List detectorInfoList = iDetectorInfoService.list(); - if (null != detectorInfoList && detectorInfoList.size() > 0) { - detectorInfoList.forEach(detectorInfo -> { - ForkJoinPool.commonPool().submit(() -> startClient(detectorInfo.getDetectorIp(), - detectorInfo.getDetectorPort(), detectorInfo.getRobotId())); - }); + List detectorInfoList = new ArrayList<>(); + //10秒轮询机器人是否上线 + while (true) { + try { + detectorInfoList = iDetectorInfoService.getOnlineList(); + if (null != detectorInfoList && detectorInfoList.size() > 0) { + break; + } + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } } + System.out.println("中子源探测器开始连接了------>"); + + detectorInfoList.forEach(detectorInfo -> { + ForkJoinPool.commonPool().submit(() -> startClient(detectorInfo.getDetectorIp(), + detectorInfo.getDetectorPort(), detectorInfo.getRobotId())); + }); // ForkJoinPool.commonPool().submit(() -> startClient("192.168.1.50", 52002)); } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 455c4bf..7b5edb4 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,9 +4,10 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true +# url: jdbc:mysql://localhost:3306/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true + url: jdbc:mysql://111.198.10.15:11336/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root - password: 123456 + password: Casic203 druid: max-active: 50 min-idle: 20