From 6972afbf3b2cab802671a80aa2e858a329b5f55f Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Sun, 25 Apr 2021 21:21:20 +0800
Subject: [PATCH] websocket测试
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java | 132 ++++++++++++++++++++++++++++---------------
1 files changed, 85 insertions(+), 47 deletions(-)
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
index 51640c9..5f89e58 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
@@ -12,8 +12,11 @@
import org.springblade.jfpt.animalheat.service.AnimalHeatService;
import org.springblade.jfpt.catalog.service.catalogService;
import org.springblade.jfpt.equipment.service.IEquipmentService;
+import org.springblade.jfpt.message.entity.Message;
+import org.springblade.jfpt.message.service.IMessageService;
import org.springblade.jfpt.operation.service.IOperationService;
import org.springblade.jfpt.operation.vo.OperationVO;
+import org.springblade.jfpt.webscoket.service.IPushMsgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -41,6 +44,8 @@
@Autowired
private org.springblade.jfpt.Netty.service.nettyService nettyService;
+ @Autowired
+ private IMessageService messageService;
@Autowired
private IEquipmentService equipmentService;
@@ -50,6 +55,9 @@
@Autowired
private IAlarmService alarmService;
+
+ @Autowired
+ private IPushMsgService pushMsgService;
@Autowired
private IOperationService operationService;
@@ -106,6 +114,8 @@
@Override
public void channelRead(ChannelHandlerContext channelHandlerContext, Object info) throws Exception {
long startTime1 = System.currentTimeMillis();
+ Date day = new Date();
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("接收到了:" + info);
ByteBuf buf = (ByteBuf) info;
byte[] req = new byte[buf.readableBytes()];
@@ -126,6 +136,12 @@
}
} else {
String ChannelName = content.substring(10, 22);//设备编码
+ //报文内容保存
+ Message message = new Message();
+ message.setEnumber(ChannelName);
+ message.setContent(body);
+ message.setTime(df.format(day));
+ serverHandler.messageService.save(message);
String sub = content.substring(23, 27);
ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
if (channelHashMap == null) {
@@ -157,8 +173,6 @@
Alarm alarm = new Alarm();
alarm.setAlarmType("一键报警");
alarm.setGalarmPeople("报警主机");
- Date day = new Date();
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
alarm.setAlarmTime(df.format(day));
alarm.setPlace((String) list.get(0).get("streeName"));//事发地址
alarm.setDeviceNumber((String) list.get(0).get("deviceNumber"));//设备编号
@@ -1714,58 +1728,82 @@
break;
}
- //警情分发测试代码
- //查询所有闲置的接警员
- List<Map<String, Object>> policeList = serverHandler.alarmService.queryPolice();
- List<Map<String, Object>> online_police = new ArrayList<>();
- for (int i = 0; i < policeList.size(); i++) {
- if (policeList.get(i).get("work_status").equals(0)){
+
+ if(alarm.getWaringType().equals("紧急求救")){
+ //警情分发测试代码
+ //查询所有闲置的接警员
+ List<Map<String, Object>> policeList = serverHandler.alarmService.queryPolice();
+ List<Map<String, Object>> online_police = new ArrayList<>();
+ List<Map<String, Object>> zx_police = new ArrayList<>();
+ for (int i = 0; i < policeList.size(); i++) {
//System.out.println(policeList.get(i).get("real_name"));
- online_police.add(policeList.get(i));
+ if(policeList.get(i).get("online_status").equals(1)){
+ zx_police.add(policeList.get(i));
+ if (policeList.get(i).get("work_status").equals(0)){
+ online_police.add(policeList.get(i));
+ }
+ }
+ }
+
+
+ //如果无在线闲置人员
+ if (online_police.size() == 0){
+
+ //判断是否有在线人员
+ if (zx_police.size() == 0){
+ //无在线人员,选取所有接警员
+ online_police = policeList;
+ }else{
+ //有在线人员
+ online_police = zx_police;
+ }
+
+ }
+
+ List policeIdArr = new ArrayList();
+
+ //将闲置状态的人员id存入数组
+ for (int i = 0; i < online_police.size(); i++) {
+ policeIdArr.add(online_police.get(i).get("id"));
+ }
+
+ //通过id计算接警员最后一次接警时间,倒序返回闲置最久的人员,派发任务
+ List<Map<String, Object>> police = serverHandler.alarmService.queryPoliceTime(policeIdArr);
+
+ if (police.size() != 0){
+ alarm.setAlarmId( police.get(0).get("alarmId").toString());
+ alarm.setAlarmPeople( police.get(0).get("alarmPeople").toString());
+ Date date = new Date();
+ SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ alarm.setJjTime(dateFormat.format(date));
+
+ serverHandler.alarmService.updatePoliceStatus( police.get(0).get("alarmId").toString(),"1");
+ }else {
+ alarm.setAlarmId( online_police.get(0).get("id").toString());
+ alarm.setAlarmPeople(online_police.get(0).get("name").toString());
+ Date date = new Date();
+ SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ alarm.setJjTime(dateFormat.format(date));
+
+ serverHandler.alarmService.updatePoliceStatus(online_police.get(0).get("id").toString(),"1");
}
}
- if (online_police.size() == 0){
- online_police = policeList;
- }
-
- List policeIdArr = new ArrayList();
-
- //将闲置状态的人员id存入数组
- for (int i = 0; i < online_police.size(); i++) {
- policeIdArr.add(online_police.get(i).get("id"));
- }
-
- //通过id计算接警员最后一次接警时间,倒序返回闲置最久的人员,派发任务
- List<Map<String, Object>> police = serverHandler.alarmService.queryPoliceTime(policeIdArr);
-
- if (police.size() != 0){
- alarm.setAlarmId( police.get(0).get("alarmId").toString());
- alarm.setAlarmPeople( police.get(0).get("alarmPeople").toString());
- Date date = new Date();
- SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- alarm.setJjTime(dateFormat.format(date));
-
- serverHandler.alarmService.updatePoliceStatus( police.get(0).get("alarmId").toString(),"1");
- }else {
- alarm.setAlarmId( online_police.get(0).get("id").toString());
- alarm.setAlarmPeople(online_police.get(0).get("name").toString());
- Date date = new Date();
- SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- alarm.setJjTime(dateFormat.format(date));
-
- serverHandler.alarmService.updatePoliceStatus(online_police.get(0).get("id").toString(),"1");
- }
serverHandler.alarmService.s(alarm);
- OperationVO operation = new OperationVO();
- operation.setSnumber(alarm.getAlarmId());
- operation.setSname(alarm.getAlarmPeople());
- operation.setJid(alarm.getId().toString());
- operation.setZc("接警");
- operation.setZctime(alarm.getJjTime());
- serverHandler.operationService.save(operation);
+ if(alarm.getWaringType().equals("紧急求救")){
+ OperationVO operation = new OperationVO();
+ operation.setSnumber(alarm.getAlarmId());
+ operation.setSname(alarm.getAlarmPeople());
+ operation.setJid(alarm.getId().toString());
+ operation.setZc("接警");
+ operation.setZctime(alarm.getJjTime());
+ serverHandler.operationService.save(operation);
+
+ //通过websocket给前端接警员发送信息
+ serverHandler.pushMsgService.pushMsg(alarm.getAlarmId(), alarm.getId().toString());
+ }
outData.add("LEOK#@");
long endTime1 = System.currentTimeMillis(); //获取结束时间
--
Gitblit v1.9.3