From 05c3f58d6561c89019532bdeb65365f8129504c3 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期三, 16 十月 2024 08:47:45 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java                    |    4 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java                           |   21 ++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsVo.java   |   27 +++++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsDeal.java |   22 +++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java                         |   11 +++++
 5 files changed, 84 insertions(+), 1 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
index 04d21ae..55869f8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -124,6 +124,27 @@
 			return null ;
 		}
 	}
+
+	/**
+	 * 寰楀埌鎵�鏈夊湪绾夸笌绂荤嚎鏁伴噺缁熻
+	 * @return [0]=鍦ㄧ嚎鏁伴噺锛孾2]涓婄嚎杩囷紝浣嗗綋鍓嶇绾跨殑鏁伴噺
+	 */
+	public static Integer[] allOnLineStateStatistics(){
+		synchronized (sessionTable){
+			Integer[] arr = new Integer[]{0, 0} ;
+			Iterator<Entry<String, TcpSession>> it = sessionTable.entrySet().iterator() ;
+			Entry<String, TcpSession> entry = null ;
+			while(it.hasNext()){
+				entry = it.next() ;
+				if(entry.getValue().ioSession.isConnected()){
+					arr[0]++ ;
+				}else{
+					arr[1]++ ;
+				}
+			}
+			return arr ;
+		}
+	}
 	
 	/**
 	 * 寰楀埌鎵�鏈夊湪绾挎儏鍐�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
index 5b498e3..927c1b0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -23,6 +23,8 @@
             return this.clock(com) ;
         }else if(code.equals(CodeLocal.onLine)){
             return this.onLine(com) ;
+        }else if(code.equals(CodeLocal.onLineStatistics)){
+            return this.onLineStateStatistics(com) ;
         }else if(code.equals(CodeLocal.allProtocols)){
             return this.allProtocols(com) ;
         }else if(code.equals(CodeLocal.stopTcpSv)){
@@ -54,6 +56,15 @@
     }
 
     /**
+     * 缁熻鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
+     * @throws Exception
+     */
+    private Command onLineStateStatistics(Command command) throws Exception{
+        RtuOnLineStateStatisticsVo vo = new RtuOnLineStateStatisticsDeal().deal() ;
+        return ReturnCommand.successed("鏌ヨ鎵�鏈夋祴绔欏湪绾挎儏鍐电粨鏋�", command.getId(), command.getCode(), vo) ;
+    }
+
+    /**
      * 鏌ヨ鎵�鏈塕TU鍗忚閰嶇疆
      * @throws Exception
      */
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
index 2c3e0fa..8629628 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
@@ -5,7 +5,9 @@
 	public static final String clock = "LCD0000" ;//鏌ヨ鐩戞帶涓棿浠舵椂閽�
 
 	public static final String onLine = "LCD0001" ;//鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌
-	
+
+	public static final String onLineStatistics = "LCD0002" ;//鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌
+
 	public static final String allProtocols = "LCD0100" ;//鏌ヨ鎵�鏈夊崗璁厤缃�
 
 	public static final String stopTcpSv = "LCD0110" ;//鍋滄TCP鏈嶅姟锛屼笉鍐嶆帴鍏ユ柊鐨凾CP杩炴帴锛屽凡缁廡CP杩炴帴鐨勫叏閮ㄦ柇杩炴帴
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsDeal.java
new file mode 100644
index 0000000..839f366
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsDeal.java
@@ -0,0 +1,22 @@
+package com.dy.rtuMw.server.local.localProtocol;
+
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/10/15 15:56
+ * @Description
+ */
+public class RtuOnLineStateStatisticsDeal  {
+
+    /**
+     * 缁熻鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
+     */
+    public RtuOnLineStateStatisticsVo deal(){
+        RtuOnLineStateStatisticsVo vo = new RtuOnLineStateStatisticsVo() ;
+        Integer[] onOff = TcpSessionCache.allOnLineStateStatistics() ;
+        vo.onLineNum = onOff[0] ;
+        vo.offLineNum = onOff[1] ;
+        return vo ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsVo.java
new file mode 100644
index 0000000..f387280
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineStateStatisticsVo.java
@@ -0,0 +1,27 @@
+package com.dy.rtuMw.server.local.localProtocol;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/10/15 15:56
+ * @Description
+ */
+public class RtuOnLineStateStatisticsVo {
+    public Integer onLineNum;
+    public Integer offLineNum;
+
+    public Integer getOnLineNum() {
+        return onLineNum;
+    }
+
+    public void setOnLineNum(Integer onLineNum) {
+        this.onLineNum = onLineNum;
+    }
+
+    public Integer getOffLineNum() {
+        return offLineNum;
+    }
+
+    public void setOffLineNum(Integer offLineNum) {
+        this.offLineNum = offLineNum;
+    }
+}

--
Gitblit v1.8.0