From 66544379029bdc7ecce13e6b3a32b59be1527495 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 01 八月 2024 18:23:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
new file mode 100644
index 0000000..6d5d7b7
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -0,0 +1,69 @@
+package com.ycl.calculate;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
+import com.ycl.platform.service.ITMonitorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 璁$畻鍏紡
+ */
+@Component
+public class IndexCalculationServe {
+
+    @Autowired
+    private ITMonitorService monitorService;
+
+    //鐐逛綅鍦ㄧ嚎鐜�
+    public BigDecimal siteOnline(Map<String, Object> param) {
+        BigDecimal totalSites = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal offlineSites = new BigDecimal((Integer) param.get("offlineSites"));
+        BigDecimal onlineSites = totalSites.subtract(offlineSites);
+        return onlineSites.divide(totalSites, 4, RoundingMode.HALF_UP);
+    }
+
+    //瑙嗗浘搴撳鎺ョǔ瀹氭��
+    public BigDecimal viewConnectStability(Map<String, Object> param) {
+        BigDecimal totalDataSum = new BigDecimal((Integer) param.get("totalDataSum"));
+        BigDecimal avgCount = new BigDecimal((Integer) param.get("avgCount"));
+        return avgCount.divide(totalDataSum, 4, RoundingMode.HALF_UP);
+    }
+
+    //鏍囨敞姝g‘鐜�
+    public BigDecimal infoAccuracy(Map<String, Object> param) {
+        BigDecimal totalSitesCount = new BigDecimal((Integer) param.get("totalSites"));
+        BigDecimal qualifySiteCount = new BigDecimal((Integer) param.get("qualifySite"));
+        return qualifySiteCount.divide(totalSitesCount, 4, RoundingMode.HALF_UP);
+    }
+
+    //鏁版嵁涓婁紶鍙婃椂鎬�
+    public BigDecimal snapshopDelay(Map<String, Object> param) {
+        BigDecimal totalCount = new BigDecimal((Integer) param.get("totalCount"));
+        BigDecimal delayCount1 = new BigDecimal((Integer) param.get("delayCount1"));
+        BigDecimal delayCount2 = new BigDecimal((Integer) param.get("delayCount2"));
+        BigDecimal delayCount3 = new BigDecimal((Integer) param.get("delayCount3"));
+
+        BigDecimal result = delayCount1.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(BigDecimal.ONE)
+                .add(delayCount2.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.8")))
+                .add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
+        return result.setScale(4, RoundingMode.HALF_UP);
+    }
+    //杩斿洖鐪佸巺鍥芥爣鐮侀泦鍚�
+    public List<String> getProvince() {
+        // TODO: 鍒嗙渷鍘呭競灞� 闇�瑕佽ˉ鍏呴泦鍚堟暟鎹�
+        List<String> list = new ArrayList<>();
+        return list;
+    }
+}

--
Gitblit v1.8.0