diff --git a/src/main/java/com/bonus/aqd/base/dao/DevDataMapper.java b/src/main/java/com/bonus/aqd/base/dao/DevDataMapper.java
index c08799d..a39c1e2 100644
--- a/src/main/java/com/bonus/aqd/base/dao/DevDataMapper.java
+++ b/src/main/java/com/bonus/aqd/base/dao/DevDataMapper.java
@@ -15,7 +15,7 @@ public interface DevDataMapper {
* 更新双沟状态
* @param devVO
*/
- void updateData(DevVO devVO);
+ int updateData(DevVO devVO);
/**
* 更新在线状态
@@ -37,4 +37,10 @@ public interface DevDataMapper {
void insertWarnInfo(WarnInfoVo warnInfoVo);
void updateStatus(DevVO vo);
+
+ /**
+ * 查询告警设备 的通道
+ * @return
+ */
+ String getWarnChann(String devCode);
}
diff --git a/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannel.java b/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannel.java
index 7e246ce..754d7a6 100644
--- a/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannel.java
+++ b/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannel.java
@@ -1,6 +1,7 @@
package com.bonus.aqd.tcpservice;
import io.netty.channel.Channel;
+import io.netty.channel.ChannelHandlerContext;
import lombok.Data;
/**
@@ -23,6 +24,7 @@ public class BootNettyChannel {
*/
private transient volatile Channel channel;
+ private transient volatile ChannelHandlerContext context;
}
diff --git a/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannelInboundHandlerAdapter.java b/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannelInboundHandlerAdapter.java
index 29d311a..39aa2ba 100644
--- a/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannelInboundHandlerAdapter.java
+++ b/src/main/java/com/bonus/aqd/tcpservice/BootNettyChannelInboundHandlerAdapter.java
@@ -82,6 +82,7 @@ public class BootNettyChannelInboundHandlerAdapter extends ChannelInboundHandler
//创建通道
BootNettyChannel bnc = new BootNettyChannel();
bnc.setChannel(ctx.channel());
+ bnc.setContext(ctx);
//设置通道编码
bnc.setCode("server:" + channelId);
bnc.setReport_last_data(data);
@@ -91,14 +92,16 @@ public class BootNettyChannelInboundHandlerAdapter extends ChannelInboundHandler
//更新data值什么意思呢?
b.setReport_last_data(data);
}
+// ctx.channel().writeAndFlush("你好");
+// ctx.channel().flush();
//回写给客户端
- ctx.writeAndFlush(Unpooled.buffer().writeBytes(("server:" + channelId).getBytes()));
+ ctx.writeAndFlush(Unpooled.buffer().writeBytes(("55aa78865ccd000103000000000d").getBytes()));
// netty的编码已经指定,因此可以不需要再次确认编码
// ctx.writeAndFlush(Unpooled.buffer().writeBytes(channelId.getBytes(CharsetUtil.UTF_8)));
- //直接这样写入也可以
- //ctx.write("我是服务端,我收到你的消息了!");
- //ctx.flush();
+// //直接这样写入也可以
+// ctx.write("我是服务端,我收到你的消息了!");
+// ctx.flush();
} catch (Exception e) {
System.out.println("channelRead--" + e.toString());
diff --git a/src/main/java/com/bonus/aqd/tcpservice/BootNettyServer.java b/src/main/java/com/bonus/aqd/tcpservice/BootNettyServer.java
index 769a3ba..794df0a 100644
--- a/src/main/java/com/bonus/aqd/tcpservice/BootNettyServer.java
+++ b/src/main/java/com/bonus/aqd/tcpservice/BootNettyServer.java
@@ -1,19 +1,29 @@
package com.bonus.aqd.tcpservice;
import io.netty.bootstrap.ServerBootstrap;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.ConcurrentHashMap;
/**
* 蚂蚁舞
* @author 黑子
*/
+@Component
public class BootNettyServer {
+
+
+
+
public void bind(int port) throws Exception {
/**
@@ -90,6 +100,12 @@ public class BootNettyServer {
bossGroup.shutdownGracefully().sync();
workerGroup.shutdownGracefully().sync();
}
-
+ }
+ public void sendMessage(String clientId, Object message) {
+ BootNettyChannel bnc = BootNettyChannelCache.get("server:" + clientId);
+ if (bnc.getChannel() != null && bnc.getChannel().isActive()) {
+ System.err.println("发送了消息:" +message);
+ bnc.getContext().writeAndFlush( Unpooled.buffer().writeBytes((message.toString()).getBytes()));
+ }
}
}
diff --git a/src/main/java/com/bonus/aqd/tcpservice/SaveDataService.java b/src/main/java/com/bonus/aqd/tcpservice/SaveDataService.java
index d134828..c92e297 100644
--- a/src/main/java/com/bonus/aqd/tcpservice/SaveDataService.java
+++ b/src/main/java/com/bonus/aqd/tcpservice/SaveDataService.java
@@ -41,7 +41,8 @@ public class SaveDataService {
@Autowired
private AqdMapper aqdMapper;
-
+ @Autowired
+ private BootNettyServer nettyTcpServer;
/**
* 更新数据
* @param msg
@@ -95,6 +96,9 @@ public class SaveDataService {
warnInfoVo.setDevModule("单钩");
VO.setWarnInfo("2");
}
+ // 查询告警 通道
+ String warnChann=mapper.getWarnChann(imei);
+ sendMessageToClient(warnChann,"55aa78865ccd000103000000000d");
mapper.insertWarnInfo(warnInfoVo);
}
//蓝牙终端
@@ -117,9 +121,8 @@ public class SaveDataService {
}
mapper.insertWarnInfo(warnInfoVo);
}
- mapper.updateData(VO);
-
-
+ int num= mapper.updateData(VO);
+ System.err.println("操作成数据=="+num);
System.err.println(msg);
}catch (Exception e){
log.error(e.toString(),e);
@@ -187,6 +190,18 @@ public class SaveDataService {
log.error(e.toString());
}
}
+
+
+ /**
+ * 给指定通道发消息
+ * @param clientId
+ * @param message
+ */
+ public void sendMessageToClient(String clientId, Object message) {
+
+ nettyTcpServer.sendMessage(clientId, message);
+ }
+
@Async
public void insertData(String msg){
try {
diff --git a/src/main/java/com/bonus/aqd/websocket/service/AqdService.java b/src/main/java/com/bonus/aqd/websocket/service/AqdService.java
index ec79f30..fe94513 100644
--- a/src/main/java/com/bonus/aqd/websocket/service/AqdService.java
+++ b/src/main/java/com/bonus/aqd/websocket/service/AqdService.java
@@ -22,7 +22,7 @@ public class AqdService {
public static String ws_url="ws://36.33.26.201:21995";
- public static String api_url="http://36.33.26.201:21995/config/getDevConfig";
+ public static String api_url="http://36.33.26.201:21995/config/getDevConfig?device_id=";
@Autowired
private AqdMapper mapper;
@@ -53,6 +53,8 @@ public class AqdService {
data.put("model_switch",model_switch);
JSONObject configData=data.getJSONObject("config");
configData.put("ws_url",ws_url);
+ api_url= api_url+ddvId+"&ca_ver="+vo.getCa_ver();
+ System.err.println(api_url);
configData.put("api_url",api_url);
json.getJSONObject("data").put("config",configData);
return json.toJSONString();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index ef28df2..f05cf24 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,6 +1,6 @@
# 配置端口
server:
- port: 21995
+ port: 21994
# servlet:
# context-path: /aqd_screen
max-http-header-size: 10240
@@ -39,5 +39,5 @@ zhly:
enable: false
netty:
- port: 6666
+ port: 21995
diff --git a/src/main/resources/mappers/base/DevDataMapper.xml b/src/main/resources/mappers/base/DevDataMapper.xml
index b50551f..efd7695 100644
--- a/src/main/resources/mappers/base/DevDataMapper.xml
+++ b/src/main/resources/mappers/base/DevDataMapper.xml
@@ -25,13 +25,8 @@
update tb_device
- set dev_status=#{devStatus},
-
- chann_id= #{channId},
-
- state_time=now(),
- dev_time=now()
- where dev_code=#{devCode}
+ set warn_chann= #{channId}
+ where warn_code=#{devCode}
update tb_device
@@ -43,4 +38,10 @@
set dev_status=0
where dev_code=#{devCode}
+
+
\ No newline at end of file