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