| | |
| | | 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.animalheat.service.AnimalHeatService; |
| | | import org.springblade.jfpt.catalog.service.catalogService; |
| | | import org.springblade.jfpt.equipment.service.IEquipmentService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | @Autowired |
| | | private IEquipmentService equipmentService; |
| | | |
| | | @Autowired |
| | | private AnimalHeatService animalHeatService; |
| | | |
| | | @Autowired |
| | | private IAlarmService alarmService; |
| | |
| | | String body = new String(req, "UTF-8"); |
| | | String content = body; |
| | | System.out.println("接收客户端数据:" + body); |
| | | String ChannelName = content.substring(10, 22);//设备编码 |
| | | String sub = content.substring(23, 27); |
| | | ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap(); |
| | | if (channelHashMap==null){ |
| | | if (!sub.equals("VIMO")){ |
| | | // 保存当前连接 |
| | | ChannelMap.addChannel(ChannelName,channelHandlerContext.channel()); |
| | | //获取字符串的长度 |
| | | int length = content.length(); |
| | | //当字符串长度大于200时,采集体温数据,小于则采集报警数据 |
| | | if (length>200){ |
| | | //只有数据长度大于300时,采集体温数据 200-300 之间为心跳数据,当前不采集 |
| | | if (length>250){ |
| | | //插入数据 |
| | | serverHandler.animalHeatService.save(body); |
| | | } |
| | | } |
| | | else { |
| | | Channel channel = ChannelMap.getChannelByName(ChannelName); |
| | | if (channel!=channelHandlerContext.channel()|| channel==null){ |
| | | if (!sub.equals("VIMO")){ |
| | | }else { |
| | | String ChannelName = content.substring(10, 22);//设备编码 |
| | | String sub = content.substring(23, 27); |
| | | ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap(); |
| | | if (channelHashMap == null) { |
| | | if (!sub.equals("VIMO")) { |
| | | // 保存当前连接 |
| | | ChannelMap.addChannel(ChannelName,channelHandlerContext.channel()); |
| | | 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<String> outData = new ArrayList<>(); |
| | | switch (content.substring(0, 2)) |
| | | { |
| | | case "LA": |
| | | { |
| | | String devId = content.substring(10, 22); |
| | | String fqbm = content.substring(24, 26); |
| | | List<Map<String, Object>> list = serverHandler.equipmentService.selectInfos(devId); |
| | | Alarm alarm= new Alarm(); |
| | | alarm.setAlarmType("一键报警"); |
| | | 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"));//设备编号 |
| | | 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.setJtype("0"); |
| | | if (fqbm.equals("00")){ |
| | | alarm.setWaringType("旁路"); |
| | | } |
| | | else if(fqbm.equals("01")){ |
| | | alarm.setWaringType("火警"); |
| | | } |
| | | else if(fqbm.equals("02")){ |
| | | alarm.setWaringType("挟持"); |
| | | } |
| | | else if(fqbm.equals("03")){ |
| | | alarm.setWaringType("紧急"); |
| | | } |
| | | else if(fqbm.equals("04")){ |
| | | alarm.setWaringType("救护"); |
| | | } |
| | | else if(fqbm.equals("05")){ |
| | | alarm.setWaringType("内部"); |
| | | } |
| | | else if(fqbm.equals("06")){ |
| | | alarm.setWaringType("出入"); |
| | | } |
| | | else if(fqbm.equals("07")){ |
| | | alarm.setWaringType("周边"); |
| | | } |
| | | else { |
| | | alarm.setWaringType("防拆"); |
| | | } |
| | | serverHandler.alarmService.s(alarm); |
| | | outData.add("LEOK#@"); |
| | | List<String> outData = new ArrayList<>(); |
| | | switch (content.substring(0, 2)) { |
| | | case "LA": { |
| | | String devId = content.substring(10, 22); |
| | | String fqbm = content.substring(24, 26); |
| | | List<Map<String, Object>> list = serverHandler.equipmentService.selectInfos(devId); |
| | | 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"));//设备编号 |
| | | 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.setJtype("0"); |
| | | if (fqbm.equals("00")) { |
| | | alarm.setWaringType("旁路"); |
| | | } else if (fqbm.equals("01")) { |
| | | alarm.setWaringType("火警"); |
| | | } else if (fqbm.equals("02")) { |
| | | alarm.setWaringType("挟持"); |
| | | } else if (fqbm.equals("03")) { |
| | | alarm.setWaringType("紧急"); |
| | | } else if (fqbm.equals("04")) { |
| | | alarm.setWaringType("救护"); |
| | | } else if (fqbm.equals("05")) { |
| | | alarm.setWaringType("内部"); |
| | | } else if (fqbm.equals("06")) { |
| | | alarm.setWaringType("出入"); |
| | | } else if (fqbm.equals("07")) { |
| | | alarm.setWaringType("周边"); |
| | | } else { |
| | | alarm.setWaringType("防拆"); |
| | | } |
| | | serverHandler.alarmService.s(alarm); |
| | | outData.add("LEOK#@"); |
| | | |
| | | break; |
| | | } |
| | | case "LD": |
| | | { |
| | | break; |
| | | } |
| | | case "LD": { |
| | | // if (Pattern.matches(content, reg_LD)) |
| | | String deviceNumber = content.substring(10, 22); |
| | | String deviceNumber = content.substring(10, 22); |
| | | String keyword = content.substring(23, 27); |
| | | System.out.println(keyword); |
| | | switch(keyword) |
| | | { |
| | | case "IMEI": |
| | | { |
| | | 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": |
| | | { |
| | | case "SRTC": { |
| | | Date d = new Date(); |
| | | SimpleDateFormat sbf = new SimpleDateFormat("yyyyMMddHHmmss"); |
| | | outData.add("LEOK#@"); |
| | | outData.add("LC8C0700" + sbf.format(d) + "#@"); |
| | | break; |
| | | } |
| | | case "STAS": |
| | | { |
| | | case "STAS": { |
| | | outData.add("LEOK#@"); |
| | | outData.add("LC8100001E"+ "#@"); |
| | | outData.add("LC8100001E" + "#@"); |
| | | break; |
| | | } |
| | | case "TEST": |
| | | { |
| | | 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); |
| | | serverHandler.equipmentService.updateChannel(format, deviceNumber); |
| | | outData.add("LEOK#@"); |
| | | outData.add("LEON#@"); |
| | | break; |
| | | } |
| | | case "COMM": |
| | | { |
| | | case "COMM": { |
| | | outData.add("LEOK#@"); |
| | | break; |
| | | } |
| | | default: |
| | | { |
| | | default: { |
| | | outData.add("LEOK#@"); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | break; |
| | | } |
| | | case "LB": |
| | | { |
| | | break; |
| | | } |
| | | case "LB": { |
| | | outData.add("LEOK#@"); |
| | | break; |
| | | 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)); |
| | | 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)); |
| | | } |
| | | } |
| | | |
| | | |