From eb3dd00b0b7fcda477229d518d250f9c842b790b Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 21 十月 2025 17:45:44 +0800
Subject: [PATCH] 2025.10.21 1. 走航季度报告相关数据计算逻辑调整
---
src/main/kotlin/com/flightfeather/uav/model/BaseSection.kt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/model/BaseSection.kt b/src/main/kotlin/com/flightfeather/uav/model/BaseSection.kt
index 01a3310..71deb4c 100644
--- a/src/main/kotlin/com/flightfeather/uav/model/BaseSection.kt
+++ b/src/main/kotlin/com/flightfeather/uav/model/BaseSection.kt
@@ -1,9 +1,55 @@
package com.flightfeather.uav.model
+import com.flightfeather.uav.lightshare.bean.DataVo
+
/**
- * 缁熻鍒嗘鎴潰
+ * 缁熻鍒嗙被
* 鍚屼竴绫诲瀷鐨勭洃娴嬪洜瀛愭寜鐓ф煇涓�灞炴�ц繘琛屽垎娈电患鍚堢粺璁★紝杈撳嚭缁熻缁撴灉锛�
* 甯歌鐨勫鎸夌収鏃堕棿杩涜鍒嗘缁熻
*/
-abstract class BaseSection {
+abstract class BaseSection<M : BaseMData, S : BaseSOP> {
+
+ // 鍖洪棿闃堝��
+ abstract val sectionValues: List<Double>
+
+ // 鍖洪棿瀵瑰簲绫诲瀷
+ abstract val sectionType: List<String>
+
+ // 甯搁┗鏍囩
+ open val constType = listOf<String>()
+
+ abstract val tagClz: Class<out BaseTag>
+
+ fun filter(mData: M, sop: S, effect: BaseEffect) {
+ val v = onSectionValue(mData, sop, effect)
+ val type = sectionCal(v)
+ val tag = tagClz.newInstance()
+ tag.level = type.first
+ tag.levelName = type.second
+ effect.tag.add(tag)
+
+ var level = sectionType.size
+ constType.forEach {
+ val cTag = tagClz.newInstance()
+ cTag.level = level
+ cTag.levelName = it
+ effect.tag.add(cTag)
+ level++
+ }
+ }
+
+ abstract fun onSectionValue(mData: M, sop: S, effect: BaseEffect): Double
+
+ /**
+ * 绫诲瀷绛涢��
+ * @param value 褰卞搷鍥犵礌鐨勫��
+ */
+ private fun sectionCal(value: Double): Pair<Int, String> {
+ for (i in sectionValues.indices) {
+ if (value < sectionValues[i]) {
+ return Pair(i, sectionType[i])
+ }
+ }
+ return Pair(sectionType.lastIndex, sectionType.last())
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3