From b8cc591541b88dd2bb93f111f8e8075842dce7ca Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 13 八月 2024 17:21:06 +0800
Subject: [PATCH] 1. 新增设备信息相关功能 2. 修正自评估中数据自动评分的部分逻辑

---
 src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt |   83 ++++++++++++++++++++++++-----------------
 1 files changed, 49 insertions(+), 34 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
index 1f84f3e..8838bee 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/dataanalysis/AopDataAnalysis.kt
@@ -70,48 +70,58 @@
             //鑾峰彇鍘熷鐩戞祴鏁版嵁
             val dataList = fetchDataResources(evaluationScene)
             //璁$畻缁熻缁撴灉
-            var tempExceedTimes = TempResult()
-            var tempAvg = TempResult()
-            var tempMax = TempResult()
-            var tempMin = TempResult()
+//            var tempExceedTimes = TempResult()
+//            var tempAvg = TempResult()
+//            var tempMax = TempResult()
+//            var tempMin = TempResult()
             dataList.forEach {
-                // 鐩戞祴鐐规湁澶氬彴璁惧鏃讹紝姣忓彴璁惧鍗曠嫭缁熻锛屽彇鍧囧�兼渶楂樼殑涓虹粺璁$粨鏋�
-                val _tempExceedTimes = TempResult()
-                val _tempAvg = TempResult()
-                val _tempMax = TempResult()
-                val _tempMin = TempResult()
+                // 鐩戞祴鐐规湁澶氬彴璁惧鏃讹紝姣忓彴璁惧鍗曠嫭璁板綍
+                val deviceCode = if (it.isNotEmpty()) {
+                    getDeviceCode(it[0])
+                } else {
+                    null
+                }
+                val tempExceedTimes = TempResult()
+                val tempAvg = TempResult()
+                val tempMax = TempResult()
+                val tempMin = TempResult()
+//                val _tempExceedTimes = TempResult()
+//                val _tempAvg = TempResult()
+//                val _tempMax = TempResult()
+//                val _tempMin = TempResult()
                 it.forEach { t ->
                     t?.let {
-                        exceedTimes(t, _tempExceedTimes)
-                        avg(t, _tempAvg)
-                        max(t, _tempMax)
-                        min(t, _tempMin)
+                        exceedTimes(t, tempExceedTimes)
+                        avg(t, tempAvg)
+                        max(t, tempMax)
+                        min(t, tempMin)
                     }
                 }
                 // 淇濈暀鍧囧�兼渶楂樼殑涓�鍙拌澶�
-                if (_tempAvg.avg > tempAvg.avg) {
-                    tempExceedTimes = _tempExceedTimes
-                    tempAvg = _tempAvg
-                    tempMax = _tempMax
-                    tempMin = _tempMin
+//                if (_tempAvg.avg > tempAvg.avg) {
+//                    tempExceedTimes = _tempExceedTimes
+//                    tempAvg = _tempAvg
+//                    tempMax = _tempMax
+//                    tempMin = _tempMin
+//                }
+                val dustDataResult = DustDataResult().apply {
+                    drSceneId = evaluationScene.scene.value?.guid
+                    drSceneName = evaluationScene.scene.value?.name
+                    drDeviceCode = deviceCode
+                    drTime = source?.config?.startTime
+                    drExceedTimes = tempExceedTimes.count
+                    drAvg = tempAvg.avg
+                    drMax = tempMax.total
+                    drMin = tempMin.total
+                    drOverAvgPer = overAvgRate(drAvg, dAvg)
+                    drDataNum = count(dataList)
+                    // 褰撴暟鎹噺涓�0鏃讹紝瓒呮湀搴﹀尯鍧囧�肩櫨鍒嗘瘮鍙樹负0
+                    if (drDataNum == 0) drOverAvgPer = .0
+                    drEffectiveRate = effectiveRate(dataList, evaluationScene)
                 }
+                //鏇存柊鍏ュ簱
+                aopOutput.toDbDataResult(dustDataResult)
             }
-            val dustDataResult = DustDataResult().apply {
-                drSceneId = evaluationScene.scene.value?.guid
-                drSceneName = evaluationScene.scene.value?.name
-                drTime = source?.config?.startTime
-                drExceedTimes = tempExceedTimes.count
-                drAvg = tempAvg.avg
-                drMax = tempMax.total
-                drMin = tempMin.total
-                drOverAvgPer = overAvgRate(drAvg, dAvg)
-                drDataNum = count(dataList)
-                // 褰撴暟鎹噺涓�0鏃讹紝瓒呮湀搴﹀尯鍧囧�肩櫨鍒嗘瘮鍙樹负0
-                if (drDataNum == 0) drOverAvgPer = .0
-                drEffectiveRate = effectiveRate(dataList, evaluationScene)
-            }
-            //鏇存柊鍏ュ簱
-            aopOutput.toDbDataResult(dustDataResult)
         }
     }
 
@@ -122,6 +132,11 @@
     abstract fun districtAvg(source: AopDataSource?): Double?
 
     /**
+     * 鑾峰彇璁惧缂栧彿
+     */
+    abstract fun getDeviceCode(data: T?): String?
+
+    /**
      * 鑾峰彇鍘熷鐩戞祴鏁版嵁
      */
     abstract fun fetchDataResources(evaluationScene: AopDataSource.EvaluationScene): List<List<T?>>

--
Gitblit v1.9.3