From 71b6b716361c52af290493d365a328fc1a3467e2 Mon Sep 17 00:00:00 2001
From: nnnjjj123 <494715143@qq.com>
Date: Thu, 28 Jan 2021 11:15:06 +0800
Subject: [PATCH] 1.统计接口 2.健康码

---
 src/main/java/org/springblade/modules/Netty/controller/nettyController.java |  177 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 135 insertions(+), 42 deletions(-)

diff --git a/src/main/java/org/springblade/modules/Netty/controller/nettyController.java b/src/main/java/org/springblade/modules/Netty/controller/nettyController.java
index 8def96a..3b1a114 100644
--- a/src/main/java/org/springblade/modules/Netty/controller/nettyController.java
+++ b/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,56 @@
 	 */
 	@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){
+
+		//清空全局参数
+		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;
+
+		String arr = "";
+
+
+		//将得到的设备与查询所得设备进行匹配
+		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())) {
+						zT = 1;
+						arr += "'" + pages.get(j).getId() + "',";
+						List<String> outData = new ArrayList<>();
+						outData.add("LC8109085B#@");
+						Channel channel = channelHashMap.get(pages.get(j).getDeviceNumber());
+						if (channel == null) {
+							break;
+						}
+						channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
+						break;
+					}
+				}
+			}
+		}
+
+		if (!arr.equals("")) {
+			String substring = arr.substring(0, arr.length() - 1);
+			equipmentService.updataType(substring);
+		}
+
+		if (zT == 0) {
 			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));
-			}
-			return R.success("设备布防");
-		}
+		return R.success("设备布防");
 	}
 
 	/**
@@ -161,28 +198,76 @@
 	 */
 	@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;
+
+		String arr = "";
+
+		//将得到的设备与查询所得设备进行匹配
+		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())) {
+						zT = 1;
+						arr += "'" + pages.get(j).getId() + "',";
+						List<String> outData = new ArrayList<>();
+						outData.add("LC8109085C#@");
+						Channel channel = channelHashMap.get(pages.get(j).getDeviceNumber());
+						if (channel == null) {
+							break;
+						}
+						channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
+						break;
+					}
+				}
 			}
-			return R.success("设备撤防");
 		}
+
+		if (!arr.equals("")) {
+			String substring = arr.substring(0, arr.length() - 1);
+			equipmentService.updataTypeC(substring);
+		}
+
+		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 +275,20 @@
 	 */
 	@PostMapping("/selectNettyChannelOb")
 	@ApiOperationSupport(order = 10)
-	public R selectNettyChannelOb(String deviceNumber,HttpServletResponse response) {
+	public R selectNettyChannelOb(String deviceNumber,String ID, 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);
+		if (channel == null) {
+			return R.success("未查询到设备");
+		}
+		channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
+		equipmentService.updataType(ID);
+		return R.success("设备布防");
 
 	}
 
@@ -208,15 +297,19 @@
 	 */
 	@PostMapping("/selectNettyChannelOc")
 	@ApiOperationSupport(order = 11)
-	public R selectNettyChannelOc(String deviceNumber,HttpServletResponse response) {
+	public R selectNettyChannelOc(String deviceNumber,String ID, 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#@");
 		Channel channel = channelHashMap.get(deviceNumber);
+		if (channel == null) {
+			return R.success("未查询到设备");
+		}
 		channel.writeAndFlush(Unpooled.copiedBuffer(outData.get(0), CharsetUtil.UTF_8));
+		equipmentService.updataTypeC(ID);
 		return R.success("设备撤防");
 
 	}

--
Gitblit v1.9.3