diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java index d58645a..ce30063 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -13,7 +13,7 @@ // 存储用户id和Channel.id().asLongText()对应关系 - private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); + private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); // 存储用户id和Channel.id().asLongText()对应关系 private static final ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); @@ -83,6 +83,16 @@ return null; } + /** + * 根据channel获取userId + * + * @param channel + */ + public synchronized String getUserId(Channel channel) { + String userId = channel.attr(CHANNEL_ATTR_KEY).get(); + return userId; + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java index d58645a..ce30063 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -13,7 +13,7 @@ // 存储用户id和Channel.id().asLongText()对应关系 - private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); + private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); // 存储用户id和Channel.id().asLongText()对应关系 private static final ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); @@ -83,6 +83,16 @@ return null; } + /** + * 根据channel获取userId + * + * @param channel + */ + public synchronized String getUserId(Channel channel) { + String userId = channel.attr(CHANNEL_ATTR_KEY).get(); + return userId; + } + } 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 5fdb5b1..72aa867 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 @@ -50,8 +50,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService)); -// p.addLast(nettyClientHandler); + p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); } }); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java index d58645a..ce30063 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -13,7 +13,7 @@ // 存储用户id和Channel.id().asLongText()对应关系 - private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); + private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); // 存储用户id和Channel.id().asLongText()对应关系 private static final ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); @@ -83,6 +83,16 @@ return null; } + /** + * 根据channel获取userId + * + * @param channel + */ + public synchronized String getUserId(Channel channel) { + String userId = channel.attr(CHANNEL_ATTR_KEY).get(); + return userId; + } + } 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 5fdb5b1..72aa867 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 @@ -50,8 +50,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService)); -// p.addLast(nettyClientHandler); + p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); } }); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index c786117..4e49c8e 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -18,23 +18,23 @@ private Long userId; private ChannelCache channelCache; private INeutronOptService neutronOptService; + private NettyClient nettyClient; - public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService) { + public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService,NettyClient nettyClient) { this.userId = userId; this.channelCache = channelCache; this.neutronOptService = neutronOptService; + this.nettyClient = nettyClient; } public NettyClientHandler() { } - - @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { - channelCache.addChannel(ctx.channel(),userId+""); + channelCache.addChannel(ctx.channel(), userId + ""); } // 服务器端读取到 客户端发送过来的数据,然后通过 Channel 回写数据 @@ -44,8 +44,8 @@ log.info(String.format("客户端读取到从服务器端:%s 发送过来的数据:%s", ctx.channel().remoteAddress(), msg.toString())); //解析数据 try { - neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString(),userId); - }catch (Exception e){ + neutronOptService.analysis(ctx.channel().remoteAddress().toString(), msg.toString(), userId); + } catch (Exception e) { e.printStackTrace(); } } @@ -61,7 +61,9 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { super.channelInactive(ctx); channelCache.removeChannel(ctx.channel()); -// nettyClient.startClient("192.168.1.50", 52002); + String ipPort= ctx.channel().remoteAddress().toString(); + String[] arr=ipPort.substring(1).split(":"); + nettyClient.startClient(arr[0], Integer.valueOf(arr[1]), Long.valueOf(channelCache.getUserId(ctx.channel()))); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java index d58645a..ce30063 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -13,7 +13,7 @@ // 存储用户id和Channel.id().asLongText()对应关系 - private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); + private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); // 存储用户id和Channel.id().asLongText()对应关系 private static final ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); @@ -83,6 +83,16 @@ return null; } + /** + * 根据channel获取userId + * + * @param channel + */ + public synchronized String getUserId(Channel channel) { + String userId = channel.attr(CHANNEL_ATTR_KEY).get(); + return userId; + } + } 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 5fdb5b1..72aa867 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 @@ -50,8 +50,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService)); -// p.addLast(nettyClientHandler); + p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); } }); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index c786117..4e49c8e 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -18,23 +18,23 @@ private Long userId; private ChannelCache channelCache; private INeutronOptService neutronOptService; + private NettyClient nettyClient; - public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService) { + public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService,NettyClient nettyClient) { this.userId = userId; this.channelCache = channelCache; this.neutronOptService = neutronOptService; + this.nettyClient = nettyClient; } public NettyClientHandler() { } - - @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { - channelCache.addChannel(ctx.channel(),userId+""); + channelCache.addChannel(ctx.channel(), userId + ""); } // 服务器端读取到 客户端发送过来的数据,然后通过 Channel 回写数据 @@ -44,8 +44,8 @@ log.info(String.format("客户端读取到从服务器端:%s 发送过来的数据:%s", ctx.channel().remoteAddress(), msg.toString())); //解析数据 try { - neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString(),userId); - }catch (Exception e){ + neutronOptService.analysis(ctx.channel().remoteAddress().toString(), msg.toString(), userId); + } catch (Exception e) { e.printStackTrace(); } } @@ -61,7 +61,9 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { super.channelInactive(ctx); channelCache.removeChannel(ctx.channel()); -// nettyClient.startClient("192.168.1.50", 52002); + String ipPort= ctx.channel().remoteAddress().toString(); + String[] arr=ipPort.substring(1).split(":"); + nettyClient.startClient(arr[0], Integer.valueOf(arr[1]), Long.valueOf(channelCache.getUserId(ctx.channel()))); } diff --git a/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java b/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java index f1a263b..6e30ba8 100644 --- a/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java +++ b/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java @@ -20,7 +20,7 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //根据每次巡检写入中子数超过基准报警记录 + //根据每次巡检写入中子数超过基准值的报警记录 iPsdService.insertPsdAlarms(); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java index d58645a..ce30063 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -13,7 +13,7 @@ // 存储用户id和Channel.id().asLongText()对应关系 - private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); + private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); // 存储用户id和Channel.id().asLongText()对应关系 private static final ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); @@ -83,6 +83,16 @@ return null; } + /** + * 根据channel获取userId + * + * @param channel + */ + public synchronized String getUserId(Channel channel) { + String userId = channel.attr(CHANNEL_ATTR_KEY).get(); + return userId; + } + } 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 5fdb5b1..72aa867 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 @@ -50,8 +50,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService)); -// p.addLast(nettyClientHandler); + p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); } }); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index c786117..4e49c8e 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -18,23 +18,23 @@ private Long userId; private ChannelCache channelCache; private INeutronOptService neutronOptService; + private NettyClient nettyClient; - public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService) { + public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService,NettyClient nettyClient) { this.userId = userId; this.channelCache = channelCache; this.neutronOptService = neutronOptService; + this.nettyClient = nettyClient; } public NettyClientHandler() { } - - @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { - channelCache.addChannel(ctx.channel(),userId+""); + channelCache.addChannel(ctx.channel(), userId + ""); } // 服务器端读取到 客户端发送过来的数据,然后通过 Channel 回写数据 @@ -44,8 +44,8 @@ log.info(String.format("客户端读取到从服务器端:%s 发送过来的数据:%s", ctx.channel().remoteAddress(), msg.toString())); //解析数据 try { - neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString(),userId); - }catch (Exception e){ + neutronOptService.analysis(ctx.channel().remoteAddress().toString(), msg.toString(), userId); + } catch (Exception e) { e.printStackTrace(); } } @@ -61,7 +61,9 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { super.channelInactive(ctx); channelCache.removeChannel(ctx.channel()); -// nettyClient.startClient("192.168.1.50", 52002); + String ipPort= ctx.channel().remoteAddress().toString(); + String[] arr=ipPort.substring(1).split(":"); + nettyClient.startClient(arr[0], Integer.valueOf(arr[1]), Long.valueOf(channelCache.getUserId(ctx.channel()))); } diff --git a/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java b/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java index f1a263b..6e30ba8 100644 --- a/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java +++ b/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java @@ -20,7 +20,7 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //根据每次巡检写入中子数超过基准报警记录 + //根据每次巡检写入中子数超过基准值的报警记录 iPsdService.insertPsdAlarms(); } } diff --git a/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java b/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java index f8865cb..67c11ac 100644 --- a/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java @@ -15,8 +15,8 @@ @Bean public Trigger alarmQuartzTrigger() { SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule() - //设置时间周期单位秒 每隔两秒实行一次 - .withIntervalInSeconds(30) + //设置时间周期单位秒 每隔2分钟实行一次 + .withIntervalInMinutes(2) .repeatForever(); return TriggerBuilder.newTrigger().forJob(alarmQuartzDetail()) .withIdentity("alarmQuartz") diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java index 9f7768a..ddaffde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/NeutronOptServiceImpl.java @@ -73,7 +73,7 @@ headerJson.put("msgKey", "detector_vol"); JSONObject jsonObject = new JSONObject(); jsonObject.put("deviceIp", deviceIpPort); - jsonObject.put("vol", vol.getVolData6()); + jsonObject.put("vol", String.format("%.3f", (Double.valueOf(vol.getVolData6())/10000))); jsonObject.put("time", vol.getCreateTime()); headerJson.put("data", jsonObject); webSocket.sendAllMessage(headerJson.toJSONString()); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 7531a59..397bdbf 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -51,15 +51,16 @@ String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); - List keyInts = new ArrayList<>(keys); - Collections.sort(keyInts); - for (Integer i : keyInts) { - msgs += CacheUtils.VOL_MAP.get(i); + if(null!=keys) { + List keyInts = new ArrayList<>(keys); + Collections.sort(keyInts); + for (Integer i : keyInts) { + msgs += CacheUtils.VOL_MAP.get(i); + } + if (ObjectUtil.isNotEmpty(msgs)) { + CacheUtils.VOL_MAP.clear(); + } } - if (ObjectUtil.isNotEmpty(msgs)) { - CacheUtils.VOL_MAP.clear(); - } - } return msgs; } @@ -180,7 +181,7 @@ } //解析电压数据 - public static List processVOL(String msg) { + public static List processVOL(String msg) { List volList = new ArrayList<>(); //2、处理 电压数据 if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java index d58645a..ce30063 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/ChannelCache.java @@ -13,7 +13,7 @@ // 存储用户id和Channel.id().asLongText()对应关系 - private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); + private static final ConcurrentHashMap channelMap = new ConcurrentHashMap(); // 存储用户id和Channel.id().asLongText()对应关系 private static final ConcurrentHashMap channelIdUid = new ConcurrentHashMap(); @@ -83,6 +83,16 @@ return null; } + /** + * 根据channel获取userId + * + * @param channel + */ + public synchronized String getUserId(Channel channel) { + String userId = channel.attr(CHANNEL_ATTR_KEY).get(); + return userId; + } + } 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 5fdb5b1..72aa867 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 @@ -50,8 +50,7 @@ public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new HjtDecoder()); - p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService)); -// p.addLast(nettyClientHandler); + p.addLast(new NettyClientHandler(userId,channelCache,neutronOptService,NettyClient.this)); } }); diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java index c786117..4e49c8e 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClientHandler.java @@ -18,23 +18,23 @@ private Long userId; private ChannelCache channelCache; private INeutronOptService neutronOptService; + private NettyClient nettyClient; - public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService) { + public NettyClientHandler(Long userId, ChannelCache channelCache, INeutronOptService neutronOptService,NettyClient nettyClient) { this.userId = userId; this.channelCache = channelCache; this.neutronOptService = neutronOptService; + this.nettyClient = nettyClient; } public NettyClientHandler() { } - - @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { - channelCache.addChannel(ctx.channel(),userId+""); + channelCache.addChannel(ctx.channel(), userId + ""); } // 服务器端读取到 客户端发送过来的数据,然后通过 Channel 回写数据 @@ -44,8 +44,8 @@ log.info(String.format("客户端读取到从服务器端:%s 发送过来的数据:%s", ctx.channel().remoteAddress(), msg.toString())); //解析数据 try { - neutronOptService.analysis(ctx.channel().remoteAddress().toString(),msg.toString(),userId); - }catch (Exception e){ + neutronOptService.analysis(ctx.channel().remoteAddress().toString(), msg.toString(), userId); + } catch (Exception e) { e.printStackTrace(); } } @@ -61,7 +61,9 @@ public void channelInactive(ChannelHandlerContext ctx) throws Exception { super.channelInactive(ctx); channelCache.removeChannel(ctx.channel()); -// nettyClient.startClient("192.168.1.50", 52002); + String ipPort= ctx.channel().remoteAddress().toString(); + String[] arr=ipPort.substring(1).split(":"); + nettyClient.startClient(arr[0], Integer.valueOf(arr[1]), Long.valueOf(channelCache.getUserId(ctx.channel()))); } diff --git a/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java b/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java index f1a263b..6e30ba8 100644 --- a/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java +++ b/casic-server/src/main/java/com/casic/missiles/quartz/AlarmQuartz.java @@ -20,7 +20,7 @@ @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - //根据每次巡检写入中子数超过基准报警记录 + //根据每次巡检写入中子数超过基准值的报警记录 iPsdService.insertPsdAlarms(); } } diff --git a/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java b/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java index f8865cb..67c11ac 100644 --- a/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java +++ b/casic-server/src/main/java/com/casic/missiles/quartz/QuartzConfig.java @@ -15,8 +15,8 @@ @Bean public Trigger alarmQuartzTrigger() { SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule() - //设置时间周期单位秒 每隔两秒实行一次 - .withIntervalInSeconds(30) + //设置时间周期单位秒 每隔2分钟实行一次 + .withIntervalInMinutes(2) .repeatForever(); return TriggerBuilder.newTrigger().forJob(alarmQuartzDetail()) .withIdentity("alarmQuartz") diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index bf403dd..8fbd6db 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -4,9 +4,9 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://111.198.10.15:11336/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/casic_robot_inspection?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true username: root - password: Casic203 + password: root jms: pub-sub-domain: true # session: