From c7d05af4e7ebf92b67308df21bde17282c0c50f1 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 06 May 2021 21:44:06 +0800
Subject: [PATCH] 1.警情导出bug修复 2.警情统计接口修改 3.一键报警设备接收报文时修改设备状态
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java | 206 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 165 insertions(+), 41 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 bcafbc6..18ca512 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
@@ -9,9 +9,16 @@
import org.springblade.jfpt.Netty.service.nettyService;
import org.springblade.jfpt.alarm.entity.Alarm;
import org.springblade.jfpt.alarm.service.IAlarmService;
+import org.springblade.jfpt.alarm.vo.AlarmVO;
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.springblade.system.user.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -41,6 +48,9 @@
private org.springblade.jfpt.Netty.service.nettyService nettyService;
@Autowired
+ private IMessageService messageService;
+
+ @Autowired
private IEquipmentService equipmentService;
@Autowired
@@ -48,6 +58,12 @@
@Autowired
private IAlarmService alarmService;
+
+ @Autowired
+ private IPushMsgService pushMsgService;
+
+ @Autowired
+ private IOperationService operationService;
private static ServerHandler serverHandler;
@@ -101,6 +117,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()];
@@ -108,6 +126,8 @@
String body = new String(req, "UTF-8");
String content = body;
System.out.println("接收客户端数据:" + body);
+ String state="系统故障"; //设备故障状态
+ String reason=null; //故障原因
//获取字符串的长度
int length = content.length();
//当字符串长度大于200时,采集体温数据,小于则采集报警数据
@@ -139,6 +159,7 @@
List<String> outData = new ArrayList<>();
switch (content.substring(0, 2)) {
case "LA": {
+ System.out.println("按下按钮+++++++++++++++++++++++++++++++++");
String devId = content.substring(10, 22);
//String fqbm = content.substring(24, 26);
String d = content.substring(26, 27);
@@ -149,8 +170,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"));//设备编号
@@ -161,6 +180,8 @@
alarm.setWd((String) list.get(0).get("wd"));//纬度
alarm.setCid(String.valueOf(a));//警情代码
alarm.setJtype("0");
+ //修改设备状态
+ serverHandler.equipmentService.updateExstate("一键报警",null,(String) list.get(0).get("deviceNumber"));
switch (num) {
case "00":
if (fqbm.equals("0")) {
@@ -362,36 +383,56 @@
} else if (fqbm.equals("1")) {
alarm.setWaringType("系统故障");
alarm.setContent("交流电故障");
+ reason="交流电故障";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("2")) {
alarm.setWaringType("系统故障");
alarm.setContent("备电偏低");
+ reason="备电偏低";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("3")) {
alarm.setWaringType("系统故障");
alarm.setContent("RAM校验错误");
+ reason="RAM校验错误";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("4")) {
alarm.setWaringType("系统故障");
alarm.setContent("ROM校验错误");
+ reason="ROM校验错误";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("5")) {
alarm.setWaringType("系统故障");
alarm.setContent("远程编程");
+ reason="远程编程";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("6")) {
alarm.setWaringType("系统故障");
alarm.setContent("主机设置更改");
+ reason="主机设置更改";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("7")) {
alarm.setWaringType("系统故障");
alarm.setContent("自检失败");
+ reason="自检失败";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("8")) {
alarm.setWaringType("系统故障");
alarm.setContent("系统关闭");
+ reason="系统关闭";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("9")) {
alarm.setWaringType("系统故障");
alarm.setContent("备电故障");
+ reason="备电故障";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
}
break;
case "31":
if (fqbm.equals("0")) {
alarm.setWaringType("系统故障");
alarm.setContent("接地故障");
+ reason="接地故障";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
}
break;
case "32":
@@ -419,51 +460,79 @@
if (fqbm.equals("0")) {
alarm.setWaringType("系统故障");
alarm.setContent("系统周边");
+ reason="系统周边";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("1")) {
alarm.setWaringType("系统故障");
alarm.setContent("回路断开");
+ reason="回路断开";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("2")) {
alarm.setWaringType("系统故障");
alarm.setContent("回路短路");
+ reason="回路短路";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("3")) {
alarm.setWaringType("系统故障");
alarm.setContent("扩展模块故障");
+// reason="扩展模块故障";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("4")) {
alarm.setWaringType("系统故障");
alarm.setContent("中继器故障");
+// reason="中继器故障";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("5")) {
alarm.setWaringType("系统故障");
alarm.setContent("打印机缺纸");
+// reason="打印机缺纸";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("6")) {
alarm.setWaringType("系统故障");
alarm.setContent("打印机故障");
+// reason="打印机故障";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("7")) {
alarm.setWaringType("系统故障");
alarm.setContent("扩展模块无直流");
+// reason="扩展模块无直流";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("8")) {
alarm.setWaringType("系统故障");
alarm.setContent("扩展模块低电压");
+ reason="扩展模块低电压";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("9")) {
alarm.setWaringType("系统故障");
alarm.setContent("扩展模块复位");
+// reason="扩展模块复位";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
}
break;
case "34":
if (fqbm.equals("1")) {
alarm.setWaringType("系统故障");
alarm.setContent("扩展模块防拆触发");
+// reason="扩展模块防拆触发";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
}
break;
case "35":
if (fqbm.equals("0")) {
alarm.setWaringType("系统故障");
alarm.setContent("通讯故障");
+ reason="通讯故障";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("1")) {
alarm.setWaringType("系统故障");
alarm.setContent("电话线故障");
+ reason="电话线故障";
+ serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("2")) {
alarm.setWaringType("系统故障");
alarm.setContent("电话接口2故障");
+// reason="电话接口2故障";
+// serverHandler.equipmentService.updateExstate(state,reason,devId);
} else if (fqbm.equals("3")) {
alarm.setWaringType("通讯故障");
alarm.setContent("远距离无线通讯");
@@ -1303,10 +1372,14 @@
if (fqbm.equals("0")) {
alarm.setWaringType("系统故障-恢复");
alarm.setContent("电话线故障-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
else if (fqbm.equals("1")) {
alarm.setWaringType("系统故障");
alarm.setContent("交流电故障-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
else if (fqbm.equals("2")) {
alarm.setWaringType("系统故障");
@@ -1315,6 +1388,7 @@
else if (fqbm.equals("3")) {
alarm.setWaringType("系统故障");
alarm.setContent("警号/继电器故障-通讯故障(转发)");
+
}
else if (fqbm.equals("4")) {
alarm.setWaringType("系统故障");
@@ -1331,6 +1405,8 @@
else if (fqbm.equals("7")) {
alarm.setWaringType("系统故障-恢复");
alarm.setContent("交流电故障恢复-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
else if (fqbm.equals("8")) {
alarm.setWaringType("系统故障-恢复");
@@ -1343,14 +1419,20 @@
else if (fqbm.equals("A")) {
alarm.setWaringType("系统故障-恢复");
alarm.setContent("电话线故障-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
else if (fqbm.equals("B")) {
alarm.setWaringType("系统故障-恢复");
alarm.setContent("回路短路故障恢复-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
else if (fqbm.equals("C")) {
alarm.setWaringType("系统故障-恢复");
alarm.setContent("无线监控恢复-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
else if (fqbm.equals("E")) {
alarm.setWaringType("系统故障");
@@ -1359,6 +1441,8 @@
else if (fqbm.equals("F")) {
alarm.setWaringType("系统故障-恢复");
alarm.setContent("无线监控故障恢复-通讯故障(转发)");
+ reason="";
+ serverHandler.equipmentService.updateExstate("",reason,devId);
}
break;
case "9B":
@@ -1643,51 +1727,91 @@
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)){
+ //报文内容保存
+ Message message = new Message();
+ message.setEnumber(ChannelName);
+ message.setContent(body);
+ message.setTime(df.format(day));
+ serverHandler.messageService.save(message);
+
+ if(alarm.getWaringType().equals("紧急求救")){
+ //警情分发测试代码
+ //查询所有闲置的接警员
+ List<User> policeList = serverHandler.alarmService.queryPolice();
+ List<User> online_police = new ArrayList<>();
+ List<User> 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).getOnline_status().equals("1")){
+ zx_police.add(policeList.get(i));
+ if (policeList.get(i).getWork_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).getId());
+ }
+
+ //通过id计算接警员最后一次接警时间,倒序返回闲置最久的人员,派发任务
+ List<AlarmVO> police = serverHandler.alarmService.queryPoliceTime(policeIdArr);
+
+ if (police.size() != 0){
+ alarm.setAlarmId( police.get(0).getAlarmId().toString());
+ alarm.setAlarmPeople( police.get(0).getAlarmPeople().toString());
+ alarm.setPhoneNumber( police.get(0).getPhoneNumber().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).getAlarmId().toString(),"1");
+ }else {
+ alarm.setAlarmId( online_police.get(0).getId().toString());
+ alarm.setAlarmPeople(online_police.get(0).getName().toString());
+ alarm.setPhoneNumber(online_police.get(0).getPhone().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).getId().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((String) police.get(0).get("alarmId"));
- alarm.setAlarmPeople((String) police.get(0).get("alarmPeople"));
-// Date date = new Date();
-// SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-// alarm.setJjTime(dateFormat.format(date));
-
- serverHandler.alarmService.updatePoliceStatus((String) police.get(0).get("alarmId"),"1");
- }else {
- alarm.setAlarmId((String) police.get(0).get("alarmId"));
- alarm.setAlarmPeople((String) online_police.get(0).get("name"));
-// Date date = new Date();
-// SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-// alarm.setJjTime(dateFormat.format(date));
-
- serverHandler.alarmService.updatePoliceStatus((String) police.get(0).get("alarmId"),"1");
- }
-
serverHandler.alarmService.s(alarm);
+
+ 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