package org.springblade.jfpt.nettyServer; import com.alibaba.fastjson.JSONObject; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.util.CharsetUtil; 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.parcel.util.HttpClientUtils; 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; import javax.annotation.PostConstruct; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @Component public class ServerHandler extends ChannelInboundHandlerAdapter { private String reg_LA = "LA[d]{8}[d|A-F]{12}[d|A-F]{8}[d|A-Z]{2}[d|A-F]{4}[x2A][d|A-F]{6}[#@]"; private String reg_LB = "LB[\\d|A-F]{12}[\\x2A].*[#@]"; private String reg_LB2 = "LB[\\d|A-F]{6}[\\x2A].*[#@]"; private String reg_LD = "LD[d]{8}[d|A-F]{12}:[A-Z]{4}[\\x2A].*[#@]"; private ConcurrentHashMap sessionChannelMap = new ConcurrentHashMap(); @Autowired private org.springblade.jfpt.catalog.service.catalogService catalogService; @Autowired private org.springblade.jfpt.Netty.service.nettyService nettyService; @Autowired private IMessageService messageService; @Autowired private IEquipmentService equipmentService; @Autowired private AnimalHeatService animalHeatService; @Autowired private IAlarmService alarmService; @Autowired private IPushMsgService pushMsgService; @Autowired private IOperationService operationService; private static ServerHandler serverHandler; @PostConstruct public void init() { serverHandler = this; } /** * 客户端与服务端创建连接的时候调用 */ @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { System.out.println("CTX:" + ctx.channel()); System.out.println("客户端与服务端连接开始..."); // ChannelId id = ctx.channel().id(); // String s = id.toString(); //NettyConfig.group.add(ctx.channel()); } /** * 客户端与服务端断开连接时调用 */ @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { System.out.println("客户端与服务端连接关闭..."); NettyConfig.group.remove(ctx.channel()); } /** * 服务端接收客户端发送过来的数据结束之后调用 */ @Override public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { ctx.flush(); System.out.println("信息接收完毕..."); } /** * 工程出现异常的时候调用 */ @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { cause.printStackTrace(); ctx.close(); } /** * 服务端处理客户端websocket请求的核心方法,这里接收了客户端发来的信息 */ @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()]; buf.readBytes(req); String body = new String(req, "UTF-8"); String content = body; System.out.println("接收客户端数据:" + body); String state = "系统故障"; //设备故障状态 String reason = null; //故障原因 String CSType = content.substring(2, 4); //获取字符串的长度 int length = content.length(); //当字符串长度大于200时,采集体温数据,小于则采集报警数据 if (length > 200) { //只有数据长度大于300时,采集体温数据 200-300 之间为心跳数据,当前不采集 if (length > 250) { //插入数据 serverHandler.animalHeatService.save(body); } } else if (CSType.equals("HK")) { List outData = new ArrayList<>(); switch (content.substring(0, 2)) { case "BJ": //报警信息 String devId = content.substring(12, 24); List> list = serverHandler.equipmentService.selectInfos(devId); Alarm alarm = new Alarm(); alarm.setWaringType("紧急求救"); alarm.setAlarmType("一键报警"); alarm.setGalarmPeople("报警主机"); alarm.setAlarmTime(df.format(day)); alarm.setPlace((String) list.get(0).get("streeName"));//事发地址 alarm.setDeviceNumber((String) list.get(0).get("deviceNumber"));//设备编号 alarm.setDistrict((String) list.get(0).get("district"));//县区 alarm.setProvince((String) list.get(0).get("province"));//市 alarm.setCity((String) list.get(0).get("city")); alarm.setJd((String) list.get(0).get("jd"));//经度 alarm.setWd((String) list.get(0).get("wd"));//纬度 alarm.setCid(String.valueOf(1));//警情代码 alarm.setJtype("0"); setAlarmData(alarm,list); outData.add("BJOK"); //报文内容保存 String ChannelName = "";//设备编码 Message message = new Message(); message.setEnumber(ChannelName); message.setContent(body); message.setTime(df.format(day)); serverHandler.messageService.save(message); break; case "XT": //心跳信息 String devIds = content.substring(12, 24); Date d = new Date(); SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sbf.format(d); serverHandler.equipmentService.updateChannel(format, devIds); outData.add("XTOK"); break; case "JS": //校时信息 Date sj = new Date(); SimpleDateFormat js = new SimpleDateFormat("yyyyMMddHHmmss"); outData.add("JSOK" + js.format(sj) ); break; case "ZT": //状态信息 outData.add("ZTOK"); break; } for (int i = 0; i < outData.size(); i++) { channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer(outData.get(i), CharsetUtil.UTF_8)); } } else { String ChannelName = content.substring(10, 22);//设备编码 String sub = content.substring(23, 27); ConcurrentHashMap channelHashMap = ChannelMap.getChannelHashMap(); if (channelHashMap == null) { if (!sub.equals("VIMO")) { // 保存当前连接 ChannelMap.addChannel(ChannelName, channelHandlerContext.channel()); } } else { Channel channel = ChannelMap.getChannelByName(ChannelName); if (channel != channelHandlerContext.channel() || channel == null) { if (!sub.equals("VIMO")) { // 保存当前连接 ChannelMap.addChannel(ChannelName, channelHandlerContext.channel()); } } } List 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); int a = Integer.parseInt(d); String num = content.substring(27, 29); String fqbm = content.substring(29, 30); List> list = serverHandler.equipmentService.selectInfos(devId); Alarm alarm = new Alarm(); alarm.setAlarmType("一键报警"); alarm.setGalarmPeople("报警主机"); alarm.setAlarmTime(df.format(day)); alarm.setPlace((String) list.get(0).get("streeName"));//事发地址 alarm.setDeviceNumber((String) list.get(0).get("deviceNumber"));//设备编号 alarm.setDistrict((String) list.get(0).get("district"));//县区 alarm.setProvince((String) list.get(0).get("province"));//市 alarm.setCity((String) list.get(0).get("city")); alarm.setJd((String) list.get(0).get("jd"));//经度 alarm.setWd((String) list.get(0).get("wd"));//纬度 alarm.setCid(String.valueOf(a));//警情代码 alarm.setJtype("0"); switch (num) { case "00": if (fqbm.equals("0")) { alarm.setWaringType("未知"); alarm.setContent("未知"); } else { alarm.setWaringType("中心调度"); alarm.setContent("指挥调度"); } break; case "10": if (fqbm.equals("0")) { alarm.setWaringType("医疗求助"); alarm.setContent("紧急医疗"); } else if (fqbm.equals("1")) { alarm.setWaringType("医疗求助"); alarm.setContent("求救按钮"); } else { alarm.setWaringType("医疗求助"); alarm.setContent("超时无报告"); } break; case "11": if (fqbm.equals("0")) { alarm.setWaringType("火警"); alarm.setContent("紧急火警"); } else if (fqbm.equals("1")) { alarm.setWaringType("火警"); alarm.setContent("烟雾感应"); } else if (fqbm.equals("2")) { alarm.setWaringType("火警"); alarm.setContent("明火燃烧"); } else if (fqbm.equals("3")) { alarm.setWaringType("火警"); alarm.setContent("管道漏水"); } else if (fqbm.equals("4")) { alarm.setWaringType("火警"); alarm.setContent("温度过高"); } else if (fqbm.equals("5")) { alarm.setWaringType("火警"); alarm.setContent("压力阀"); } else if (fqbm.equals("6")) { alarm.setWaringType("火警"); alarm.setContent("气体管道"); } else if (fqbm.equals("7")) { alarm.setWaringType("火警"); alarm.setContent("高温火焰"); } else { alarm.setWaringType("火警"); alarm.setContent("相邻报警"); } break; case "12": if (fqbm.equals("0")) { alarm.setWaringType("紧急求救"); alarm.setContent("紧急按键"); } else if (fqbm.equals("1")) { alarm.setWaringType("紧急求救"); alarm.setContent("挟持报警"); } else if (fqbm.equals("2")) { alarm.setWaringType("紧急求救"); alarm.setContent("无声报警"); } else if (fqbm.equals("3")) { alarm.setWaringType("盗警"); alarm.setContent("有声报警"); } else { alarm.setWaringType("视频输入报警"); alarm.setContent("联网报警摄像机输入端口报警"); } break; case "13": if (fqbm.equals("0")) { alarm.setWaringType("盗警"); alarm.setContent("防盗警报"); } else if (fqbm.equals("1")) { alarm.setWaringType("盗警"); alarm.setContent("周界翻越"); } else if (fqbm.equals("2")) { alarm.setWaringType("盗警"); alarm.setContent("室内盗窃"); } else if (fqbm.equals("3")) { alarm.setWaringType("盗警"); alarm.setContent("24小时防盗"); } else if (fqbm.equals("4")) { alarm.setWaringType("盗警"); alarm.setContent("出/入防区"); } else if (fqbm.equals("5")) { alarm.setWaringType("盗警"); alarm.setContent("日/夜值守"); } else if (fqbm.equals("6")) { alarm.setWaringType("盗警"); alarm.setContent("室外报警"); } else if (fqbm.equals("7")) { alarm.setWaringType("盗警"); alarm.setContent("防拆触发"); } else { alarm.setWaringType("盗警"); alarm.setContent("相邻报警"); } break; case "14": if (fqbm.equals("0")) { alarm.setWaringType("普通报警"); alarm.setContent("一般报警"); } else if (fqbm.equals("1")) { alarm.setWaringType("普通报警"); alarm.setContent("回路断开"); } else if (fqbm.equals("2")) { alarm.setWaringType("普通报警"); alarm.setContent("回路短路"); } else if (fqbm.equals("3")) { alarm.setWaringType("普通报警"); alarm.setContent("模块故障"); } else if (fqbm.equals("4")) { alarm.setWaringType("普通报警"); alarm.setContent("探头防拆"); } else if (fqbm.equals("5")) { alarm.setWaringType("普通报警"); alarm.setContent("模块防拆"); } else if (fqbm.equals("6")) { alarm.setWaringType("普通报警"); alarm.setContent("无声报警"); } break; case "15": if (fqbm.equals("0")) { alarm.setWaringType("24小时监察报警"); alarm.setContent("24小时辅助"); } else if (fqbm.equals("1")) { alarm.setWaringType("25小时监察报警"); alarm.setContent("瓦斯侦测"); } else if (fqbm.equals("2")) { alarm.setWaringType("26小时监察报警"); alarm.setContent("制冷失效"); } else if (fqbm.equals("3")) { alarm.setWaringType("27小时监察报警"); alarm.setContent("温度下降"); } else if (fqbm.equals("4")) { alarm.setWaringType("28小时监察报警"); alarm.setContent("水管泄漏"); } else if (fqbm.equals("5")) { alarm.setWaringType("29小时监察报警"); alarm.setContent("高压阀失效"); } else if (fqbm.equals("6")) { alarm.setWaringType("30小时监察报警"); alarm.setContent("工作故障"); } else if (fqbm.equals("7")) { alarm.setWaringType("31小时监察报警"); alarm.setContent("低浓度瓦斯"); } else if (fqbm.equals("8")) { alarm.setWaringType("32小时监察报警"); alarm.setContent("高温警报"); } else if (fqbm.equals("9")) { alarm.setWaringType("33小时监察报警"); alarm.setContent("低温警报"); } break; case "16": if (fqbm.equals("1")) { alarm.setWaringType("34小时监察报警"); alarm.setContent("低压警报"); } break; case "17": if (fqbm.equals("1")) { alarm.setWaringType("交通"); alarm.setContent("交通事故"); } break; case "20": if (fqbm.equals("0")) { alarm.setWaringType("防火监察"); alarm.setContent("回路故障"); } else if (fqbm.equals("1")) { alarm.setWaringType("防火监察"); alarm.setContent("水压过低"); } else if (fqbm.equals("2")) { alarm.setWaringType("防火监察"); alarm.setContent("CO2偏低"); } else if (fqbm.equals("3")) { alarm.setWaringType("防火监察"); alarm.setContent("Gate valve sensor"); } else if (fqbm.equals("4")) { alarm.setWaringType("防火监察"); alarm.setContent("水位过低"); } else if (fqbm.equals("5")) { alarm.setWaringType("防火监察"); alarm.setContent("水泵开启"); } else if (fqbm.equals("6")) { alarm.setWaringType("防火监察"); alarm.setContent("水泵故障"); } break; case "30": if (fqbm.equals("0")) { alarm.setWaringType("系统故障"); alarm.setContent("系统故障"); } 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": if (fqbm.equals("0")) { alarm.setWaringType("警号/继电器输出故障"); alarm.setContent("警号/继电器故障"); } else if (fqbm.equals("1")) { alarm.setWaringType("警号/继电器输出故障"); alarm.setContent("警号1故障"); } else if (fqbm.equals("2")) { alarm.setWaringType("警号/继电器输出故障"); alarm.setContent("警号2故障"); } else if (fqbm.equals("3")) { alarm.setWaringType("警号/继电器输出故障"); alarm.setContent("报警继电器故障"); } else if (fqbm.equals("4")) { alarm.setWaringType("警号/继电器输出故障"); alarm.setContent("故障继电器故障"); } else if (fqbm.equals("5")) { alarm.setWaringType("警号/继电器输出故障"); alarm.setContent("回动继电器禁止"); } break; case "33": 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("远距离无线通讯"); } else if (fqbm.equals("4")) { alarm.setWaringType("通讯故障"); alarm.setContent("通讯失败"); } else if (fqbm.equals("5")) { alarm.setWaringType("通讯故障"); alarm.setContent("无线设备监察失败"); } else if (fqbm.equals("6")) { alarm.setWaringType("通讯故障"); alarm.setContent("中心巡检失败"); } else if (fqbm.equals("7")) { alarm.setWaringType("通讯故障"); alarm.setContent("无线发射场强弱"); } break; case "37": if (fqbm.equals("0")) { alarm.setWaringType("防区故障"); alarm.setContent("回路故障"); } else if (fqbm.equals("1")) { alarm.setWaringType("保护回路故障"); alarm.setContent("回路断开"); } else if (fqbm.equals("2")) { alarm.setWaringType("保护回路故障"); alarm.setContent("回路短路"); } else if (fqbm.equals("3")) { alarm.setWaringType("保护回路故障"); alarm.setContent("火警回路"); } else if (fqbm.equals("4")) { alarm.setWaringType("保护回路故障"); alarm.setContent("逃生门报警"); } break; case "38": if (fqbm.equals("0")) { alarm.setWaringType("感应器故障"); alarm.setContent("感应器故障"); } else if (fqbm.equals("1")) { alarm.setWaringType("感应器故障"); alarm.setContent("无线探头"); } else if (fqbm.equals("2")) { alarm.setWaringType("感应器故障"); alarm.setContent("可靠性测试失败"); } else if (fqbm.equals("3")) { alarm.setWaringType("感应器故障"); alarm.setContent("防拆开关触发"); } else if (fqbm.equals("4")) { alarm.setWaringType("感应器故障"); alarm.setContent("无线发射电压低"); } else if (fqbm.equals("5")) { alarm.setWaringType("感应器故障"); alarm.setContent("烟感敏感度过高"); } else if (fqbm.equals("6")) { alarm.setWaringType("感应器故障"); alarm.setContent("烟感敏感度过低"); } else if (fqbm.equals("7")) { alarm.setWaringType("感应器故障"); alarm.setContent("入侵防区灵敏度过高"); } else if (fqbm.equals("8")) { alarm.setWaringType("感应器故障"); alarm.setContent("入侵防区灵敏度过低"); } else if (fqbm.equals("9")) { alarm.setWaringType("感应器故障"); alarm.setContent("探头自检失败"); } break; case "40": if (fqbm.equals("0")) { alarm.setWaringType("布撤防"); alarm.setContent("开/关机"); } else if (fqbm.equals("1")) { alarm.setWaringType("布撤防"); alarm.setContent("布/撤防"); } else if (fqbm.equals("2")) { alarm.setWaringType("布撤防"); alarm.setContent("分区布/撤防"); } else if (fqbm.equals("3")) { alarm.setWaringType("布撤防"); alarm.setContent("自动布/撤防"); } else if (fqbm.equals("4")) { alarm.setWaringType("布撤防"); alarm.setContent("延时后布/撤防"); } else if (fqbm.equals("5")) { alarm.setWaringType("布撤防"); alarm.setContent("延时布/撤防"); } else if (fqbm.equals("6")) { alarm.setWaringType("布撤防"); alarm.setContent("取消"); } else if (fqbm.equals("7")) { alarm.setWaringType("布撤防"); alarm.setContent("远程布/撤防"); } else if (fqbm.equals("8")) { alarm.setWaringType("感应器故障"); alarm.setContent("立即布防"); } else if (fqbm.equals("9")) { alarm.setWaringType("感应器故障"); alarm.setContent("钥匙开关布/撤防"); } break; case "41": if (fqbm.equals("1")) { alarm.setWaringType("远端遥控"); alarm.setContent("应答回电"); } else if (fqbm.equals("2")) { alarm.setWaringType("远端遥控"); alarm.setContent("资料下载成功"); } else if (fqbm.equals("3")) { alarm.setWaringType("远端遥控"); alarm.setContent("连接失败"); } else if (fqbm.equals("4")) { alarm.setWaringType("远端遥控"); alarm.setContent("系统关机"); } else if (fqbm.equals("5")) { alarm.setWaringType("远端遥控"); alarm.setContent("关闭拨号"); } break; case "42": if (fqbm.equals("1")) { alarm.setWaringType("门禁控制报告"); alarm.setContent("门禁访问失败"); } else if (fqbm.equals("2")) { alarm.setWaringType("门禁控制报告"); alarm.setContent("门禁允许"); } break; case "44": if (fqbm.equals("1")) { alarm.setWaringType("特殊开关机"); alarm.setContent("留守布/撤防"); } break; case "45": if (fqbm.equals("0")) { alarm.setWaringType("特殊开关机"); alarm.setContent("旁路布/撤防"); } else if (fqbm.equals("1")) { alarm.setWaringType("特殊开关机"); alarm.setContent("Early O/C"); } else if (fqbm.equals("2")) { alarm.setWaringType("特殊开关机"); alarm.setContent("Late O/C"); } else if (fqbm.equals("3")) { alarm.setWaringType("特殊开关机"); alarm.setContent("布/撤防失败"); } else if (fqbm.equals("5")) { alarm.setWaringType("特殊开关机"); alarm.setContent("自动布防失败"); } else if (fqbm.equals("6")) { alarm.setWaringType("布撤防"); alarm.setContent("局部布/撤防"); } else if (fqbm.equals("7")) { alarm.setWaringType("特殊开关机"); alarm.setContent("退出错误"); } else if (fqbm.equals("8")) { alarm.setWaringType("特殊开关机"); alarm.setContent("User on Premises"); } else if (fqbm.equals("9")) { alarm.setWaringType("特殊开关机"); alarm.setContent("Recent Close"); } break; case "52": if (fqbm.equals("0")) { alarm.setWaringType("警号/继电器输出禁止"); alarm.setContent("警号/继电器禁止"); } else if (fqbm.equals("1")) { alarm.setWaringType("警号/继电器输出禁止"); alarm.setContent("警号1输出禁止"); } else if (fqbm.equals("2")) { alarm.setWaringType("警号/继电器输出禁止"); alarm.setContent("警号2输出禁止"); } else if (fqbm.equals("3")) { alarm.setWaringType("警号/继电器输出禁止"); alarm.setContent("报警继电器禁止"); } else if (fqbm.equals("4")) { alarm.setWaringType("警号/继电器输出禁止"); alarm.setContent("故障继电器禁止"); } else if (fqbm.equals("5")) { alarm.setWaringType("警号/继电器输出禁止"); alarm.setContent("回动继电器禁止"); } break; case "55": if (fqbm.equals("1")) { alarm.setWaringType("通讯禁止"); alarm.setContent("报号禁止"); } else if (fqbm.equals("2")) { alarm.setWaringType("通讯禁止"); alarm.setContent("无线发射禁止"); } break; case "57": if (fqbm.equals("0")) { alarm.setWaringType("防区旁路"); alarm.setContent("防区旁路"); } else if (fqbm.equals("1")) { alarm.setWaringType("防区旁路"); alarm.setContent("火警回路"); } else if (fqbm.equals("2")) { alarm.setWaringType("旁路操作"); alarm.setContent("24小时防区旁路"); } else if (fqbm.equals("3")) { alarm.setWaringType("旁路操作"); alarm.setContent("防盗防区"); } else if (fqbm.equals("4")) { alarm.setWaringType("旁路操作"); alarm.setContent("局部旁路"); } else if (fqbm.equals("5")) { alarm.setWaringType("旁路操作"); alarm.setContent("Swinger Bypass"); } break; case "60": if (fqbm.equals("0")) { alarm.setWaringType("主机重新上电"); alarm.setContent("时钟校准"); } else if (fqbm.equals("1")) { alarm.setWaringType("系统测试"); alarm.setContent("手动触发"); } else if (fqbm.equals("2")) { alarm.setWaringType("系统测试"); alarm.setContent("定期测试"); } else if (fqbm.equals("3")) { alarm.setWaringType("系统测试"); alarm.setContent("周期性无线测试"); } else if (fqbm.equals("4")) { alarm.setWaringType("系统测试"); alarm.setContent("火警回路"); } else if (fqbm.equals("5")) { alarm.setWaringType("系统测试"); alarm.setContent("报告跟随"); } else if (fqbm.equals("6")) { alarm.setWaringType("系统测试"); alarm.setContent("监听跟随"); } else if (fqbm.equals("7")) { alarm.setWaringType("系统测试"); alarm.setContent("步行测试"); } else if (fqbm.equals("8")) { alarm.setWaringType("系统测试"); alarm.setContent("OFF normal condition"); } else if (fqbm.equals("9")) { alarm.setWaringType("系统测试"); alarm.setContent("视频传输"); } break; case "61": if (fqbm.equals("1")) { alarm.setWaringType("系统测试"); alarm.setContent("单点火警测试"); } else if (fqbm.equals("2")) { alarm.setWaringType("系统测试"); alarm.setContent("单点未火警测试"); } break; case "62": if (fqbm.equals("1")) { alarm.setWaringType("系统测试"); alarm.setContent("事件缓存清除"); } else if (fqbm.equals("2")) { alarm.setWaringType("系统测试"); alarm.setContent("事件缓存50%已满"); } else if (fqbm.equals("3")) { alarm.setWaringType("系统测试"); alarm.setContent("事件缓存90%已满l"); } else if (fqbm.equals("4")) { alarm.setWaringType("系统测试"); alarm.setContent("事件缓存已满"); } else if (fqbm.equals("5")) { alarm.setWaringType("系统测试"); alarm.setContent("时间/日期调整"); } else if (fqbm.equals("6")) { alarm.setWaringType("系统测试"); alarm.setContent("时间/日期丢失"); } else if (fqbm.equals("7")) { alarm.setWaringType("系统测试"); alarm.setContent("进入编程模式"); } else if (fqbm.equals("8")) { alarm.setWaringType("系统测试"); alarm.setContent("退出编程模式"); } else if (fqbm.equals("9")) { alarm.setWaringType("系统测试"); alarm.setContent("24小时未读取事件缓存"); } break; case "63": if (fqbm.equals("0")) { alarm.setWaringType("系统测试"); alarm.setContent("管制时段改变"); } else if (fqbm.equals("1")) { alarm.setWaringType("系统测试"); alarm.setContent("非管制时段改变"); } else if (fqbm.equals("2")) { alarm.setWaringType("系统测试"); alarm.setContent("门禁管制时段改变"); } break; case "81": if (fqbm.equals("0")) { alarm.setWaringType("服务请求"); alarm.setContent("其它"); } else if (fqbm.equals("1")) { alarm.setWaringType("服务请求"); alarm.setContent("购物"); } else if (fqbm.equals("2")) { alarm.setWaringType("服务请求"); alarm.setContent("医疗"); } else if (fqbm.equals("3")) { alarm.setWaringType("服务请求"); alarm.setContent("家政"); } else if (fqbm.equals("4")) { alarm.setWaringType("服务请求"); alarm.setContent("金融"); } else if (fqbm.equals("5")) { alarm.setWaringType("服务请求"); alarm.setContent("法律"); } else if (fqbm.equals("6")) { alarm.setWaringType("服务请求"); alarm.setContent("保险"); } break; case "91": if (fqbm.equals("0")) { alarm.setWaringType("火警"); alarm.setContent("键盘/主机防区-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("火警"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("火警"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("火警"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("火警"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("火警"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("火警"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("火警"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("火警"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("火警"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("火警"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("火警"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("火警"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("火警"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("火警"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("窃盗"); alarm.setContent("门磁防区-通讯故障(转发)"); } break; case "92": if (fqbm.equals("0")) { alarm.setWaringType("紧急求救"); alarm.setContent("主机键盘-通讯故障(转发))"); } else if (fqbm.equals("1")) { alarm.setWaringType("紧急求救"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("紧急求救"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("紧急求救"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("紧急求救"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("紧急求救"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("紧急求救"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("紧急求救"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("紧急求救"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("紧急求救"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("紧急求救"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("紧急求救"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("紧急求救"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("紧急求救"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("紧急求救"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("紧急求救"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "93": if (fqbm.equals("0")) { alarm.setWaringType("拆动"); alarm.setContent("主机防拆-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("窃盗"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("窃盗"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("窃盗"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("窃盗"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("窃盗"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("窃盗"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("窃盗"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("窃盗"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("窃盗"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("窃盗"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("窃盗"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("窃盗"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("窃盗"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("窃盗"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("窃盗"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "94": if (fqbm.equals("0")) { alarm.setWaringType("医疗求助"); alarm.setContent("主机键盘-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("医疗求助"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("医疗求助"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("医疗求助"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("医疗求助"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("医疗求助"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("医疗求助"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("医疗求助"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("医疗求助"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("医疗求助"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("医疗求助"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("医疗求助"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("医疗求助"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("医疗求助"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("医疗求助"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("医疗求助"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "95": if (fqbm.equals("0")) { alarm.setWaringType("紧急求救"); alarm.setContent("主机键盘-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("紧急求救"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("紧急求救"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("紧急求救"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("紧急求救"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("紧急求救"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("紧急求救"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("紧急求救"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("紧急求救"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("紧急求救"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("紧急求救"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("紧急求救"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("紧急求救"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("紧急求救"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("紧急求救"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("紧急求救"); alarm.setContent("防区-通讯故障(转发)"); } break; case "96": if (fqbm.equals("0")) { alarm.setWaringType("防区故障"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("防区故障"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("防区故障"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("防区故障"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("防区故障"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("防区故障"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("防区故障"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("防区故障"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("防区故障"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("防区故障"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("防区故障"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("防区故障"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("防区故障"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("防区故障"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("防区故障"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("防区故障"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "97": if (fqbm.equals("0")) { alarm.setWaringType("防区恢复"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("防区恢复"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("防区恢复"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("防区恢复"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("防区恢复"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("防区恢复"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("防区恢复"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("防区恢复"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("防区恢复"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("防区恢复"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("防区恢复"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("防区恢复"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("防区恢复"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("防区恢复"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("防区恢复"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("防区恢复"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "98": if (fqbm.equals("0")) { alarm.setWaringType("主机编程被改动"); alarm.setContent("安装编程-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("系统事件"); alarm.setContent("系统事件-通讯故障(转发)"); } break; case "99": 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("系统故障"); alarm.setContent("备电偏低-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("系统故障"); alarm.setContent("警号/继电器故障-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("系统故障"); alarm.setContent("总线短路故障-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("系统故障"); alarm.setContent("电话线故障-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("系统故障-恢复"); alarm.setContent("备电故障恢复-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("系统故障-恢复"); alarm.setContent("交流电故障恢复-通讯故障(转发)"); reason = ""; serverHandler.equipmentService.updateExstate("", reason, devId); } else if (fqbm.equals("8")) { alarm.setWaringType("系统故障-恢复"); alarm.setContent("警号/继电器故障恢复-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("系统测试"); alarm.setContent("定期测试-通讯故障(转发)"); } 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("系统故障"); alarm.setContent("无线监控故障-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("系统故障-恢复"); alarm.setContent("无线监控故障恢复-通讯故障(转发)"); reason = ""; serverHandler.equipmentService.updateExstate("", reason, devId); } break; case "9B": if (fqbm.equals("0")) { alarm.setWaringType("布防"); alarm.setContent("快速布防-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("布防"); alarm.setContent("1用户-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("布防"); alarm.setContent("2用户-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("布防"); alarm.setContent("3用户-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("布防"); alarm.setContent("4用户-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("布防"); alarm.setContent("5用户-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("布防"); alarm.setContent("6用户-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("布防"); alarm.setContent("7用户-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("布防"); alarm.setContent("8用户-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("布防"); alarm.setContent("9用户-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("布防"); alarm.setContent("10用户-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("布防"); alarm.setContent("11用户-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("布防"); alarm.setContent("12用户-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("布防"); alarm.setContent("13用户-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("布防"); alarm.setContent("14用户-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("布防"); alarm.setContent("远程控制-通讯故障(转发)"); } break; case "9C": if (fqbm.equals("0")) { alarm.setWaringType("撤防"); alarm.setContent("16用户-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("撤防"); alarm.setContent("1用户-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("撤防"); alarm.setContent("2用户-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("撤防"); alarm.setContent("3用户-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("撤防"); alarm.setContent("4用户-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("撤防"); alarm.setContent("5用户-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("撤防"); alarm.setContent("6用户-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("撤防"); alarm.setContent("7用户-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("撤防"); alarm.setContent("8用户-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("撤防"); alarm.setContent("9用户-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("撤防"); alarm.setContent("10用户-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("撤防"); alarm.setContent("11用户-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("撤防"); alarm.setContent("12用户-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("撤防"); alarm.setContent("13用户-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("撤防"); alarm.setContent("14用户-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("撤防"); alarm.setContent("远程控制-通讯故障(转发)"); } break; case "9D": if (fqbm.equals("0")) { alarm.setWaringType("故障"); alarm.setContent("总线开路-通讯故障(转发)"); } break; case "9E": if (fqbm.equals("1")) { alarm.setWaringType("警报故障"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("警报故障"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("警报故障"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("警报故障"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("警报故障"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("警报故障"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("警报故障"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("警报故障"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("警报故障"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("警报故障"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("警报故障"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("警报故障"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("警报故障"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("警报故障"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("警报故障"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "9F": if (fqbm.equals("0")) { alarm.setWaringType("警报恢复"); alarm.setContent("系统-通讯故障(转发)"); } else if (fqbm.equals("1")) { alarm.setWaringType("警报恢复"); alarm.setContent("1防区-通讯故障(转发)"); } else if (fqbm.equals("2")) { alarm.setWaringType("警报恢复"); alarm.setContent("2防区-通讯故障(转发)"); } else if (fqbm.equals("3")) { alarm.setWaringType("警报恢复"); alarm.setContent("3防区-通讯故障(转发)"); } else if (fqbm.equals("4")) { alarm.setWaringType("警报恢复"); alarm.setContent("4防区-通讯故障(转发)"); } else if (fqbm.equals("5")) { alarm.setWaringType("警报恢复"); alarm.setContent("5防区-通讯故障(转发)"); } else if (fqbm.equals("6")) { alarm.setWaringType("警报恢复"); alarm.setContent("6防区-通讯故障(转发)"); } else if (fqbm.equals("7")) { alarm.setWaringType("警报恢复"); alarm.setContent("7防区-通讯故障(转发)"); } else if (fqbm.equals("8")) { alarm.setWaringType("警报恢复"); alarm.setContent("8防区-通讯故障(转发)"); } else if (fqbm.equals("9")) { alarm.setWaringType("警报恢复"); alarm.setContent("9防区-通讯故障(转发)"); } else if (fqbm.equals("A")) { alarm.setWaringType("警报恢复"); alarm.setContent("10防区-通讯故障(转发)"); } else if (fqbm.equals("B")) { alarm.setWaringType("警报恢复"); alarm.setContent("11防区-通讯故障(转发)"); } else if (fqbm.equals("C")) { alarm.setWaringType("警报恢复"); alarm.setContent("12防区-通讯故障(转发)"); } else if (fqbm.equals("D")) { alarm.setWaringType("警报恢复"); alarm.setContent("13防区-通讯故障(转发)"); } else if (fqbm.equals("E")) { alarm.setWaringType("警报恢复"); alarm.setContent("14防区-通讯故障(转发)"); } else if (fqbm.equals("F")) { alarm.setWaringType("警报恢复"); alarm.setContent("15防区-通讯故障(转发)"); } break; case "A0": if (fqbm.equals("1")) { alarm.setWaringType("视频故障"); alarm.setContent("视频遮挡"); } else if (fqbm.equals("2")) { alarm.setWaringType("视频故障"); alarm.setContent("视频丢失"); } else if (fqbm.equals("3")) { alarm.setWaringType("视频故障"); alarm.setContent("存储错误"); } break; } //报文内容保存 Message message = new Message(); message.setEnumber(ChannelName); message.setContent(body); message.setTime(df.format(day)); serverHandler.messageService.save(message); if (alarm.getWaringType().equals("紧急求救")) { //修改设备状态 serverHandler.equipmentService.updateExstate("一键报警", null, (String) list.get(0).get("deviceNumber")); //警情分发测试代码 //查询所有闲置的接警员 List policeList = serverHandler.alarmService.queryPolice(); List online_police = new ArrayList<>(); List zx_police = new ArrayList<>(); for (int i = 0; i < policeList.size(); i++) { //System.out.println(policeList.get(i).get("real_name")); if (null != policeList.get(i).getOnline_status()) { if (policeList.get(i).getOnline_status().equals("1")) { zx_police.add(policeList.get(i)); if (null != policeList.get(i).getWork_status()) { 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 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"); } } 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()); Map map = new HashMap<>(); map.put("deviceCode", (String) list.get(0).get("serialNumber")); map.put("chl", (String) list.get(0).get("channelNumber")); //请求视频播放地址 String params = HttpClientUtils.doGet("https://web.byisf.com:18000/GetPlayUrl", map); //如果返回值不为空 if (params != ""){ Map data = (Map) JSONObject.parse(params); if (!data.get("code").toString().equals("-1")){ Map datas = (Map) JSONObject.parse(data.get("data").toString()); String m3u8 = datas.get("m3u8").toString(); Map rmap = new HashMap<>(); rmap.put("url", m3u8); rmap.put("jid", alarm.getId().toString()); //请求视频录制 String rvideo = HttpClientUtils.doPost("https://web.byisf.com/api/blade-jfpts/rvideo/rVoids", rmap); //String rvideo = HttpClientUtils.doPost("http://localhost:82/blade-jfpts/rvideo/rVoids", rmap); } } } outData.add("LEOK#@"); long endTime1 = System.currentTimeMillis(); //获取结束时间 System.out.println("代码运行时间:" + (endTime1 - startTime1) + "ms"); //输出程序运行时间 break; } case "LD": { // if (Pattern.matches(content, reg_LD)) String deviceNumber = content.substring(10, 22); String keyword = content.substring(23, 27); System.out.println(keyword); switch (keyword) { case "IMEI": { Date d = new Date(); SimpleDateFormat sbf = new SimpleDateFormat("MMddHHmm"); outData.add("LC8C0470" + sbf.format(d) + "#@" + "LEOK#@"); outData.add("LEOK#@"); break; } case "SRTC": { Date d = new Date(); SimpleDateFormat sbf = new SimpleDateFormat("yyyyMMddHHmmss"); outData.add("LEOK#@"); outData.add("LC8C0700" + sbf.format(d) + "#@"); break; } case "STAS": { outData.add("LEOK#@"); outData.add("LC8100001E" + "#@"); break; } case "TEST": { Date d = new Date(); SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sbf.format(d); serverHandler.equipmentService.updateChannel(format, deviceNumber); outData.add("LEOK#@"); outData.add("LEON#@"); break; } case "COMM": { outData.add("LEOK#@"); break; } default: { outData.add("LEOK#@"); break; } } break; } case "LB": { outData.add("LEOK#@"); break; } } if (outData.size() == 0) { outData.add("LERR#@"); } for (int i = 0; i < outData.size(); i++) { channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer(outData.get(i), CharsetUtil.UTF_8)); } } // channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer("LEOK#@!", CharsetUtil.UTF_8)); //服务端使用这个就能向 每个连接上来的客户端群发消息 //NettyConfig.group.writeAndFlush(info); // Iterator iterator = NettyConfig.group.iterator(); // System.out.println("iterator:"+iterator); // while(iterator.hasNext()){ // //打印出所有客户端的远程地址 // System.out.println((iterator.next()).remoteAddress()); // // } } //警情信息录入并派发 public void setAlarmData(Alarm alarm,List> list){ if (alarm.getWaringType().equals("紧急求救")) { //修改设备状态 serverHandler.equipmentService.updateExstate("一键报警", null, (String) list.get(0).get("deviceNumber")); //警情分发测试代码 //查询所有闲置的接警员 List policeList = serverHandler.alarmService.queryPolice(); List online_police = new ArrayList<>(); List zx_police = new ArrayList<>(); for (int i = 0; i < policeList.size(); i++) { //System.out.println(policeList.get(i).get("real_name")); if (null != policeList.get(i).getOnline_status()) { if (policeList.get(i).getOnline_status().equals("1")) { zx_police.add(policeList.get(i)); if (null != policeList.get(i).getWork_status()) { 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 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"); } } 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()); } } }