南昌市物联网技防平台-后台
Administrator
2021-03-05 83f08194fb16c5feea1b05d682120fe76d599775
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
@@ -9,6 +9,7 @@
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;
@@ -41,6 +42,9 @@
   @Autowired
   private IEquipmentService equipmentService;
   @Autowired
   private AnimalHeatService animalHeatService;
   @Autowired
   private IAlarmService alarmService;
@@ -102,6 +106,16 @@
      String body = new String(req, "UTF-8");
      String content = body;
      System.out.println("接收客户端数据:" + body);
      //获取字符串的长度
      int length = content.length();
      //当字符串长度大于200时,采集体温数据,小于则采集报警数据
      if (length>200){
         //只有数据长度大于300时,采集体温数据  200-300 之间为心跳数据,当前不采集
         if (length>250){
            //插入数据
            serverHandler.animalHeatService.save(body);
         }
      }else {
      String ChannelName = content.substring(10, 22);//设备编码
      String sub = content.substring(23, 27);
      ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
@@ -110,8 +124,7 @@
            // 保存当前连接
            ChannelMap.addChannel(ChannelName,channelHandlerContext.channel());
         }
      }
      else {
         } else {
         Channel channel = ChannelMap.getChannelByName(ChannelName);
         if (channel!=channelHandlerContext.channel()|| channel==null){
            if (!sub.equals("VIMO")){
@@ -122,10 +135,8 @@
      }
      List<String> outData = new ArrayList<>();
      switch (content.substring(0, 2))
      {
         case "LA":
         {
         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);
@@ -145,29 +156,21 @@
            alarm.setJtype("0");
            if (fqbm.equals("00")){
                 alarm.setWaringType("旁路");
            }
            else if(fqbm.equals("01")){
               } else if (fqbm.equals("01")) {
               alarm.setWaringType("火警");
            }
            else if(fqbm.equals("02")){
               } else if (fqbm.equals("02")) {
               alarm.setWaringType("挟持");
            }
            else if(fqbm.equals("03")){
               } else if (fqbm.equals("03")) {
               alarm.setWaringType("紧急");
            }
            else if(fqbm.equals("04")){
               } else if (fqbm.equals("04")) {
               alarm.setWaringType("救护");
            }
            else if(fqbm.equals("05")){
               } else if (fqbm.equals("05")) {
               alarm.setWaringType("内部");
            }
            else if(fqbm.equals("06")){
               } else if (fqbm.equals("06")) {
               alarm.setWaringType("出入");
            }
            else if(fqbm.equals("07")){
               } else if (fqbm.equals("07")) {
               alarm.setWaringType("周边");
            }
            else {
               } else {
               alarm.setWaringType("防拆");
            }
            serverHandler.alarmService.s(alarm);
@@ -175,38 +178,32 @@
            break;
         }
         case "LD":
         {
            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":
                  {
               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"+ "#@");
                     break;
                  }
                  case "TEST":
                  {
                  case "TEST": {
                     Date d = new Date();
                     SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     String format = sbf.format(d);
@@ -215,13 +212,11 @@
                     outData.add("LEON#@");
                     break;
                  }
                  case "COMM":
                  {
                  case "COMM": {
                     outData.add("LEOK#@");
                     break;
                  }
                  default:
                  {
                  default: {
                     outData.add("LEOK#@");
                     break;
                  }
@@ -229,20 +224,18 @@
            break;
         }
         case "LB":
         {
            case "LB": {
               outData.add("LEOK#@");
            break;
         }
      }
      if(outData.size() == 0)
      {
         if (outData.size() == 0) {
         outData.add("LERR#@");
      }
      for (int i = 0; i < outData.size(); i++)
      {
         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));