From 70a7d1ec98064e1acb3130e56e16c45af52ade6c Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期二, 24 十月 2023 12:03:49 +0800 Subject: [PATCH] 新增数据分析模块完成 --- src/main/java/com/flightfeather/monitor/analysis/dust/BaseExceptionContinuous.kt | 37 ++++++++++++++++++++++++++++++++----- 1 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/flightfeather/monitor/analysis/dust/BaseExceptionContinuous.kt b/src/main/java/com/flightfeather/monitor/analysis/dust/BaseExceptionContinuous.kt index 73d1a0c..5908e86 100644 --- a/src/main/java/com/flightfeather/monitor/analysis/dust/BaseExceptionContinuous.kt +++ b/src/main/java/com/flightfeather/monitor/analysis/dust/BaseExceptionContinuous.kt @@ -8,10 +8,17 @@ */ abstract class BaseExceptionContinuous(config: DustExceptionSetting) : BaseDustExceptionAnalysis(config) { + // 璧峰鏁版嵁涓嬫爣 private var sIndex = 0 + // 璧峰鏁版嵁瀵硅薄 private var startData: DustSiteData? = null + // 鏈熬鏁版嵁涓嬫爣 private var eIndex = -1 + // 鏈熬鏁版嵁瀵硅薄 private var lastData: DustSiteData? = null + // 璧峰鏁版嵁涓庢湯灏炬暟鎹棿闅� + open var durationCount = 1 + private var existException = false /** * 鍒ゆ柇鏄惁婊¤冻寮傚父鏉′欢 @@ -24,10 +31,12 @@ abstract fun judgeDuration(sIndex: Int, eIndex: Int): Boolean override fun init() { + super.init() startData = null lastData = null sIndex = 0 eIndex = -1 + existException = false } override fun onNextData(data: DustSiteData) { @@ -36,11 +45,26 @@ startData = data } // 鍒ゆ柇鐩搁偦鏁版嵁鏄惁杩炵画骞朵笖鏄惁婊¤冻寮傚父鍒ゆ柇 - if (!(isContinuous(lastData, data) && judgeException(lastData, data))) { + if (!isContinuous(lastData, data)) { checkResult() - sIndex = eIndex - startData = data + if (eIndex - sIndex >= durationCount) { + sIndex = eIndex + startData = data + } + } else { + if (judgeException(lastData, data)) { + existException = true + } else { + checkResult() + if (eIndex - sIndex >= durationCount) { + sIndex = eIndex + startData = data + } + } } +// if (!(isContinuous(lastData, data) && judgeException(lastData, data))) { +// +// } lastData = data } @@ -52,8 +76,11 @@ * 妫�鏌ヨ繛缁紓甯哥粨鏉熸椂锛屾槸鍚︾鍚堝紓甯稿瓨鍌ㄦ潯浠� */ private fun checkResult() { - if (judgeDuration(sIndex, eIndex)) { - resultList.add(newResult(lastData, startData!!)) + if (existException && judgeDuration(sIndex, eIndex)) { + startData?.let { + resultList.add(newResult(it, lastData)) + } + existException = false } } } \ No newline at end of file -- Gitblit v1.9.3