From f7bdafb7cddd049bbb1bbf265fa006683b4ac693 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期三, 11 六月 2025 17:08:35 +0800 Subject: [PATCH] 1. 新增动态污染溯源新的判定逻辑(待完成) --- src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt | 27 ++++++++++++++++++++------- 1 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt index 658c621..2bfe2be 100644 --- a/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt +++ b/src/main/kotlin/com/flightfeather/uav/biz/dataanalysis/BaseExceptionContinuous.kt @@ -37,7 +37,7 @@ /** * 绔嬪嵆鍒ゆ柇锛氬綋鍑虹幇寮傚父鏃讹紝缂撳瓨寮傚父鏁版嵁鐨勫悓鏃讹紝绔嬪嵆瀵瑰凡鏈夊紓甯歌繘琛屽垽鏂槸鍚︽弧瓒冲紓甯哥粨鏋滆姹� */ - open fun immeExcCheck(tag: T): Boolean { + open fun immeExcCheck(tag: T, factorType: FactorType): Boolean { return false } @@ -61,11 +61,11 @@ * 鍒ゆ柇寮傚父鍑虹幇鐨勮繛缁釜鏁版槸鍚︽弧瓒虫潯浠� * @param tag 寮傚父鏁版嵁瀵硅薄 */ - abstract fun judgeExceptionCount(tag: T): Boolean + abstract fun judgeExceptionCount(tag: T, factorType: FactorType?): Boolean /** * 寮傚父鏁版嵁鐨勬埅鍙栧垽鏂� - * @return 榛樿涓嶉渶瑕佹埅鍙� + * @return */ open fun needCut(tag: T, hasException: Boolean?): Boolean { // 榛樿鍒ゆ柇鏉′欢涓� 褰撳紓甯镐笉鍐嶉噸澶嶅嚭鐜版椂锛屽舰鎴愬紓甯哥粨鏋� @@ -87,6 +87,8 @@ config.factorFilter.selectedList.forEach { s -> val f = s.main tagMap[f]?.let { + it.addHistoryData(data) + it.eIndex++ // 璧峰鏁版嵁 it.endData = data @@ -105,9 +107,14 @@ // 鏈夊紓甯稿嚭鐜版椂锛岃褰曞紓甯告暟鎹� it.addExceptionData(data) // 褰撶珛鍗冲垽鏂�氳繃鏃讹紝褰㈡垚寮傚父缁撴灉 - if (immeExcCheck(it)) { + if (immeExcCheck(it, f)) { recordException(s, it, data) } + } + // 3. 鏁版嵁姝e父锛屾棤浠讳綍寮傚父鏃禿 + // TODO("2025.6.3锛氬叾浠栧瓙绫荤殑姝ゅ鍒锋柊閫昏緫寰呭畬鎴愨��) + else { + it.refreshWithNoException(data) } } } @@ -136,13 +143,13 @@ ) { val tag = tagMap[factor?.main] if (factor != null && tag != null) { - if (tag.exceptionExisted && judgeExceptionCount(tag)) { + if (tag.exceptionExisted && judgeExceptionCount(tag, factor.main)) { onNewException(tag, factor, exceptionStatus) } } else { config.factorFilter.selectedList.forEach { f -> val tag1 = tagMap[f.main] ?: return@forEach - if (tag1.exceptionExisted && judgeExceptionCount(tag1)) { + if (tag1.exceptionExisted && judgeExceptionCount(tag1, null)) { onNewException(tag1, f, exceptionStatus) } } @@ -154,7 +161,8 @@ */ open fun onNewException(tag: T, factor: FactorFilter.SelectedFactor, exceptionStatus: ExceptionStatusType) { if (tag.startData == null) return - val ex = newResult(tag.startData!!, lastData, factor, tag.exceptionData) +// val ex = newResult(tag.startData!!, tag.endData, factor, tag.exceptionData) + val ex = newResult(tag, factor) .apply { status = exceptionStatus.value } // 寮傚父宸插垱寤烘椂锛屾洿鏂板紓甯镐俊鎭� if (tag.exceptionCreated) { @@ -172,4 +180,9 @@ } } + /** + * 鐢熸垚涓�鏉″紓甯稿垎鏋愮粨鏋� + */ + abstract fun newResult(tag:T, factor: FactorFilter.SelectedFactor): Y + } \ No newline at end of file -- Gitblit v1.9.3