zengh
2021-01-12 4f595fb79090a31764e9114ae5862fbcc1b00bd5
src/main/java/org/springblade/modules/Netty/controller/nettyController.java
@@ -33,6 +33,9 @@
import org.springblade.modules.Netty.entitly.Netty;
import org.springblade.modules.Netty.vo.nettyVO;
import org.springblade.modules.catalog.service.catalogService;
import org.springblade.modules.deploy.service.IDeployService;
import org.springblade.modules.equipment.service.IEquipmentService;
import org.springblade.modules.equipment.vo.EquipmentVO;
import org.springblade.modules.nettyServer.ChannelMap;
import org.springblade.modules.nettyServer.ServerHandler;
import org.springframework.web.bind.annotation.*;
@@ -41,14 +44,16 @@
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern;
/**
 *  控制器
 * 控制器
 *
 * @author BladeX
 * @since 2020-07-06
@@ -59,8 +64,10 @@
@Api(value = "", tags = "接口")
public class nettyController extends BladeController {
   private final nettyService nettyService ;
   private final nettyService nettyService;
   private final org.springblade.modules.catalog.service.catalogService catalogService;
   private final org.springblade.modules.equipment.service.IEquipmentService equipmentService;
   /**
    * 详情
@@ -71,7 +78,7 @@
   public R<nettyVO> detail(Netty netty, HttpServletResponse response) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
      response.setHeader("Access-Control-Allow-Credentials","true");
      response.setHeader("Access-Control-Allow-Credentials", "true");
      Netty detail = nettyService.getOne(Condition.getQueryWrapper(netty));
      return R.data(nettyWrapper.build().entityVO(detail));
   }
@@ -134,26 +141,42 @@
    */
   @PostMapping("/selectNettyChannelb")
   @ApiOperationSupport(order = 8)
   public R selectNettyChannel(String pid,HttpServletResponse response) {
   public R selectNettyChannel(String pid, HttpServletResponse response) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
      response.setHeader("Access-Control-Allow-Credentials","true");
      response.setHeader("Access-Control-Allow-Credentials", "true");
      ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
      System.out.println(channelHashMap);
      String s = "";
      if (s==null){
         return R.success("暂无设备布防");
      }
      else {
         String[] split = s.split(",");
         for (int i = 0; i < split.length; i++) {
            List<String> outData = new ArrayList<>();
            outData.add("LC8109085B#@");
            Channel channel = channelHashMap.get(split[i]);
            channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
      //清空全局参数
      childMenu = new ArrayList();
      //根据查询条件得到所有设备
      List<EquipmentVO> pages = equipmentService.selectEquipmentPage(null, null, null, null);
      List<Map<String, Object>> treedatas = catalogService.selectCatalogEqNUmber(pid);
      //根据传入的id递归出该节点下所有的设备
      List<Map<String, Object>> childList = treeMenuList(treedatas, Integer.parseInt(pid));
      int zT = 0;
      //将得到的设备与查询所得设备进行匹配
      for (int i = 0; i < childList.size(); i++) {
         for (int j = 0; j < pages.size(); j++) {
            if (childList.get(i).get("eqid") != null) {
               if (childList.get(i).get("eqid").equals(pages.get(j).getDeviceNumber())) {
                  List<String> outData = new ArrayList<>();
                  outData.add("LC8109085B#@");
                  int code = Integer.parseInt(pages.get(j).getDeviceNumber());
                  Channel channel = channelHashMap.get(code);
                  channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
               }
            }
         }
         return R.success("设备布防");
      }
      if (zT == 0) {
         return R.success("暂无设备撤");
      }
      return R.success("设备布防");
   }
   /**
@@ -161,28 +184,63 @@
    */
   @PostMapping("/selectNettyChannelc")
   @ApiOperationSupport(order = 9)
   public R selectNettyChannelc(String pid,HttpServletResponse response) {
   public R selectNettyChannelc(String pid, HttpServletResponse response) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
      response.setHeader("Access-Control-Allow-Credentials","true");
      response.setHeader("Access-Control-Allow-Credentials", "true");
      ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
      System.out.println(channelHashMap);
      String s = "";
      if (s==null){
         return R.success("暂无设备撤防");
      }
      else {
         String[] split = s.split(",");
         for (int i = 0; i < split.length; i++) {
            List<String> outData = new ArrayList<>();
            outData.add("LC8109085C#@");
            Channel channel = channelHashMap.get(split[i]);
            channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
      //清空全局参数
      childMenu = new ArrayList();
      //根据查询条件得到所有设备
      List<EquipmentVO> pages = equipmentService.selectEquipmentPage(null, null, null, null);
      List<Map<String, Object>> treedatas = catalogService.selectCatalogEqNUmber(pid);
      //根据传入的id递归出该节点下所有的设备
      List<Map<String, Object>> childList = treeMenuList(treedatas, Integer.parseInt(pid));
      int zT = 0;
      //将得到的设备与查询所得设备进行匹配
      for (int i = 0; i < childList.size(); i++) {
         for (int j = 0; j < pages.size(); j++) {
            if (childList.get(i).get("eqid") != null) {
               if (childList.get(i).get("eqid").equals(pages.get(j).getDeviceNumber())) {
                  List<String> outData = new ArrayList<>();
                  outData.add("LC8109085C#@");
                  Channel channel = channelHashMap.get(pages.get(j).getDeviceNumber());
                  channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
               }
            }
         }
         return R.success("设备撤防");
      }
      if (zT == 0) {
         return R.success("暂无设备布防");
      }
      return R.success("设备撤防");
   }
   //子节点
   private static List childMenu = new ArrayList();
   public static List treeMenuList(List<Map<String, Object>> menuList, int pid) {
      for (int i = 0; i < menuList.size(); i++) {
         //遍历出父id等于参数的id,add进子节点集合
         if (pid != 0) {
            if (menuList.get(i).get("pId").equals(pid)) {
               //递归遍历下一级
               treeMenuList(menuList, Integer.valueOf((Integer) menuList.get(i).get("id")));
               childMenu.add(menuList.get(i));
            }
         }
      }
      return childMenu;
   }
   /**
@@ -190,16 +248,16 @@
    */
   @PostMapping("/selectNettyChannelOb")
   @ApiOperationSupport(order = 10)
   public R selectNettyChannelOb(String deviceNumber,HttpServletResponse response) {
   public R selectNettyChannelOb(String deviceNumber, HttpServletResponse response) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
      response.setHeader("Access-Control-Allow-Credentials","true");
      response.setHeader("Access-Control-Allow-Credentials", "true");
      ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
            List<String> outData = new ArrayList<>();
            outData.add("LC8109085B#@");
            Channel channel = channelHashMap.get(deviceNumber);
            channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
             return R.success("设备布防");
      List<String> outData = new ArrayList<>();
      outData.add("LC8109085B#@");
      Channel channel = channelHashMap.get(deviceNumber);
      channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
      return R.success("设备布防");
   }
@@ -208,10 +266,10 @@
    */
   @PostMapping("/selectNettyChannelOc")
   @ApiOperationSupport(order = 11)
   public R selectNettyChannelOc(String deviceNumber,HttpServletResponse response) {
   public R selectNettyChannelOc(String deviceNumber, HttpServletResponse response) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
      response.setHeader("Access-Control-Allow-Credentials","true");
      response.setHeader("Access-Control-Allow-Credentials", "true");
      ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
      List<String> outData = new ArrayList<>();
      outData.add("LC8109085C#@");