From f44135f835bf62319f9bb8a32e4592a707e5e8c1 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期日, 27 四月 2025 11:09:55 +0800
Subject: [PATCH] SSO登录逻辑再修改

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysCpuUtil.java |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysCpuUtil.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysCpuUtil.java
new file mode 100644
index 0000000..5675ae6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysCpuUtil.java
@@ -0,0 +1,110 @@
+package com.dy.common.util;
+
+import lombok.Data;
+import oshi.hardware.CentralProcessor;
+import oshi.util.Util;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/8/2 11:17
+ * @Description
+ */
+public class SysCpuUtil {
+
+    private static final int OSHI_WAIT_SECOND = 1000;
+    /**
+     * 寰楀埌CPU淇℃伅
+     */
+    public static CpuInfoVo info(CentralProcessor processor){
+        /**
+         * 鑾峰彇绯荤粺鑼冨洿鍐呯殑CPU璐熻浇璁℃暟鍣ㄣ�傝繑鍥炰竴涓寘鍚叓涓厓绱犵殑鏁扮粍锛岃〃绀哄湪鐢ㄦ埛锛�0锛夈�佸凹鏂紙1锛夈�佺郴缁燂紙2锛夈�佺┖闂诧紙3锛夈��
+         * IOwait锛�4锛夈�佺‖浠朵腑鏂紙IRQ锛夛紙5锛夈�佽蒋浠朵腑鏂�/DPC锛圫oftIRQ锛夛級锛�6锛夋垨绐冨彇锛�7锛夌姸鎬佷笅鑺辫垂鐨勬绉掓暟銆備娇鐢�
+         * {@link-shi.hardware.TickType#getIndex锛堬級}妫�绱㈢浉搴旂殑绱㈠紩銆傞�氳繃娴嬮噺涓�涓椂闂撮棿
+         * 闅斿唴婊寸瓟澹颁箣闂寸殑宸紓锛屽彲浠ヨ绠楀嚭璇ユ椂闂撮棿闅斿唴鐨凜PU璐熻浇銆�
+         * 鍦ㄦ煇浜涢�昏緫澶勭悊鍣ㄦ暟閲忓彲鍙樼殑鎿嶄綔绯荤粺涓婏紝姝ら樀鍒楃殑澶у皬鍙兘浼氬彂鐢熷彉鍖栵紝骞朵笖鍙兘涓庡叾浠栨瘡澶勭悊鍣ㄦ柟娉曚笉涓�鑷淬��
+         * 璇锋敞鎰忥紝铏界劧婊寸瓟璁℃暟鍣ㄤ互姣涓哄崟浣嶏紝浣嗗畠浠彲鑳戒細闅忕潃锛堜緷璧栦簬骞冲彴鐨勶級鏃堕挓婊寸瓟澹颁互鏇村ぇ鐨勫閲忓墠杩涖�備緥濡傦紝榛樿
+         * 鎯呭喌涓嬶紝Windows鏃堕挓鑺傛媿涓�1/64绉掞紙绾�15鎴�16姣锛夛紝Linux鏃堕挓鑺傛媿鍙栧喅浜庡垎甯冨拰閰嶇疆锛屼絾閫氬父涓�1/100绉掞紙10
+         * 姣锛夈��
+         * Windows涓婃病鏈塏ice鍜孖OWait淇℃伅锛宮acOS涓婃病鏈塈OWait鍜孖RQ淇℃伅锛屽洜姝よ繖浜涙爣璁板皢濮嬬粓涓洪浂銆�
+         * 瑕佷娇鐢ㄦ鏂规硶璁$畻鎬荤┖闂叉椂闂达紝璇峰悓鏃跺寘鎷琁dle鍜孖OWait鏍囪銆傚悓鏍凤紝搴斿皢IRQ銆丼oftIRQ鍜孲teal鏍囪娣诲姞鍒扮郴缁熷��
+         * 涓互鑾峰緱鎬诲拰銆傜郴缁熻鏃惰繕鍖呮嫭鎵ц鍏朵粬铏氭嫙涓绘満锛堢獌鍙栵級鐨勬椂闂淬��
+         * *
+         * @return涓�涓敱8涓暱鍊肩粍鎴愮殑鏁扮粍锛岃〃绀哄湪User銆丯ice銆丼ystem銆両dle銆両Owait銆両RQ銆丼oftIRQ鍜孲teal鐘舵�佷笅鑺辫垂鐨勬椂闂淬��
+         */
+        long[] prevTicks = processor.getSystemCpuLoadTicks();
+        Util.sleep(OSHI_WAIT_SECOND);
+        long[] ticks = processor.getSystemCpuLoadTicks();
+        long nice = ticks[1] - prevTicks[1];
+        long irq = ticks[5] - prevTicks[5];
+        long softIrq = ticks[6] - prevTicks[6];
+        long steal = ticks[7] - prevTicks[7];
+        long cSys = ticks[2] - prevTicks[2];
+        long user = ticks[0] - prevTicks[0];
+        long ioWait = ticks[4] - prevTicks[4];
+        long idle = ticks[3] - prevTicks[3];
+
+        /*
+        long nice = ticks[TickType.NICE.getIndex()] - prevTicks[TickType.NICE.getIndex()];
+        long irq = ticks[TickType.IRQ.getIndex()] - prevTicks[TickType.IRQ.getIndex()];
+        long softIrq = ticks[TickType.SOFTIRQ.getIndex()] - prevTicks[TickType.SOFTIRQ.getIndex()];
+        long steal = ticks[TickType.STEAL.getIndex()] - prevTicks[TickType.STEAL.getIndex()];
+        long cSys = ticks[TickType.SYSTEM.getIndex()] - prevTicks[TickType.SYSTEM.getIndex()];
+        long user = ticks[TickType.USER.getIndex()] - prevTicks[TickType.USER.getIndex()];
+        long ioWait = ticks[TickType.IOWAIT.getIndex()] - prevTicks[TickType.IOWAIT.getIndex()];
+        long idle = ticks[TickType.IDLE.getIndex()] - prevTicks[TickType.IDLE.getIndex()];
+        */
+
+        long totalCpu = user + nice + cSys + idle + ioWait + irq + softIrq + steal;
+
+        CpuInfoVo vo = new CpuInfoVo() ;
+        vo.cores = processor.getLogicalProcessorCount() ;
+        vo.totalRate = totalCpu ;
+        vo.sysRate = cSys ;
+        vo.userRate = user ;
+        vo.waitRate = ioWait ;
+        vo.freeRate = idle ;
+        return vo ;
+    }
+
+    @Data
+    public static class CpuInfoVo{
+        /**
+         * 鏍稿績鏁�
+         */
+        public int cores;
+        /**
+         * CPU鎬荤殑浣跨敤鐜�
+         */
+        public double totalRate;
+        /**
+         * CPU绯荤粺浣跨敤鐜�
+         */
+        public double sysRate;
+        /**
+         * CPU鐢ㄦ埛浣跨敤鐜�
+         */
+        public double userRate;
+        /**
+         * CPU褰撳墠绛夊緟鐜�
+         */
+        public double waitRate;
+        /**
+         * CPU褰撳墠绌洪棽鐜�
+         */
+        public double freeRate;
+
+        public String toString(){
+            StringBuilder sb = new StringBuilder() ;
+            sb.append("   CPU淇℃伅锛歕n");
+            sb.append("      鏍稿績鏁帮細" + cores + "\n");
+            sb.append("      CPU鎬荤殑浣跨敤鐜囷細" + totalRate + "\n");
+            sb.append("      CPU绯荤粺浣跨敤鐜囷細" + sysRate + "\n");
+            sb.append("      CPU鐢ㄦ埛浣跨敤鐜囷細" + userRate + "\n");
+            sb.append("      CPU褰撳墠绛夊緟鐜囷細" + waitRate + "\n");
+            sb.append("      CPU褰撳墠绌洪棽鐜囷細" + freeRate + "\n");
+
+            return sb.toString() ;
+        }
+
+    }
+}

--
Gitblit v1.8.0