From 3a7da032ec18b2d5d36afb3fd9622c7d763257b7 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 17 十一月 2021 13:05:06 +0800
Subject: [PATCH] 1. 将用电量接口返回的参数动态化

---
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt |   65 +++++++++++++++-----------------
 1 files changed, 30 insertions(+), 35 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt
index 1a696eb..c6f3e68 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt
@@ -10,6 +10,7 @@
 import com.flightfeather.uav.lightshare.bean.DataHead
 import com.flightfeather.uav.lightshare.bean.DataVo
 import com.flightfeather.uav.lightshare.bean.ElectricVo
+import com.flightfeather.uav.lightshare.eunm.ElectricityType
 import com.flightfeather.uav.lightshare.service.ElectricityService
 import com.flightfeather.uav.socket.bean.AirData
 import com.github.pagehelper.PageHelper
@@ -102,22 +103,21 @@
             createCriteria().andEqualTo("cdCompanyId", cId)
         })
         //浜х嚎椋庢満
-        var d1: String? = null
+        var d1: CompanyDevice? = null
         //搴熸皵鍑�鍖栬缃�
-        var d2: String? = null
+        var d2: CompanyDevice? = null
 
         deviceCodeList.forEach {
-            // FIXME: 2021/11/5 姝ゅ鏆傛椂鍐欐锛屽悗缁慨鏀�
-            if (it?.cdDeviceCode == "31011020210602" || it?.cdDeviceCode == "31011020210603") {
-                d1 = it.cdDeviceCode
-            }else if (it?.cdDeviceCode == "31011020210601" || it?.cdDeviceCode == "31011020210604") {
-                d2 = it.cdDeviceCode
+            if (it?.cdType == ElectricityType.ProductionLine.value) {
+                d1 = it
+            }else if (it?.cdType == ElectricityType.Purify.value) {
+                d2 = it
             }
         }
 
         var pageInfo = PageHelper.startPage<ElectricMinuteValue>(p, perP)
         val dataList1 = electricMinuteValueMapper.selectByExample(Example(ElectricMinuteValue::class.java).apply {
-            createCriteria().andEqualTo("mvStatCode", d1)
+            createCriteria().andEqualTo("mvStatCode", d1?.cdDeviceCode)
                 .apply {
                     sTime?.let { andGreaterThanOrEqualTo("mvDataTime", it) }
                     eTime?.let { andLessThanOrEqualTo("mvDataTime", it) }
@@ -134,7 +134,7 @@
         }
         pageInfo = PageHelper.startPage<ElectricMinuteValue>(p, perP)
         val dataList2 = electricMinuteValueMapper.selectByExample(Example(ElectricMinuteValue::class.java).apply {
-            createCriteria().andEqualTo("mvStatCode", d2)
+            createCriteria().andEqualTo("mvStatCode", d2?.cdDeviceCode)
                 .apply {
                     sTime?.let { andGreaterThanOrEqualTo("mvDataTime", it) }
                     eTime?.let { andLessThanOrEqualTo("mvDataTime", it) }
@@ -192,7 +192,9 @@
                             d1eA = d?.mvElectricityA ?: .0
                             d1eB = d?.mvElectricityB ?: .0
                             d1eC = d?.mvElectricityC ?: .0
-                            d1Status = getStatus(d)
+                            val s = getStatus(d, d1)
+                            d1Status = s.first
+                            d1StatusName = s.second
                         }
                         dataList1.removeAt(0)
                     }
@@ -205,7 +207,9 @@
                             d2eA = d?.mvElectricityA ?: .0
                             d2eB = d?.mvElectricityB ?: .0
                             d2eC = d?.mvElectricityC ?: .0
-                            d2Status = getStatus(d)
+                            val s = getStatus(d, d2)
+                            d2Status = s.first
+                            d2StatusName = s.second
                         }
                         dataList2.removeAt(0)
                     }
@@ -220,30 +224,21 @@
     }
 
     // FIXME: 2021/11/5 姝ゅ鏆傛椂鍐欐锛屽悗缁慨鏀�
-    private fun getStatus(e: ElectricMinuteValue?): String {
-        var values = listOf(1, 100)
-        var status = listOf("0", "2", "3")
+    private fun getStatus(e: ElectricMinuteValue?, d: CompanyDevice?): Pair<String, String> {
+        var values = mutableListOf<Int>().apply {
+            d?.cdLimits?.split(";")?.forEach {
+                it.toIntOrNull()?.let { i -> add(i) }
+            }
+        }
+        var status = d?.cdStatus?.split(";") ?: emptyList()
+        var statusNames = d?.cdStatusName?.split(";") ?: emptyList()
+        if (values.isEmpty()) values = mutableListOf(1, 100)
+        if (status.isEmpty()) status = listOf("0", "2", "3")
+        if (statusNames.isEmpty()) statusNames = listOf("寰呮満", "杩愯", "瓒呰礋鑽�")
         if (e == null) {
-            return status.first()
+            return Pair(status.first(), statusNames.first())
         }
-        when (e.mvStatCode) {
-            "31011020210601" -> {
-                values = listOf(1, 100)
-                status = listOf("0", "2", "3")
-            }
-            "31011020210602" -> {
-                values = listOf(13, 30)
-                status = listOf("0", "2", "3")
-            }
-            "31011020210603" -> {
-                values = listOf(1, 50, 80)
-                status = listOf("0", "1", "2", "3")
-            }
-            "31011020210604" -> {
-                values = listOf(15, 90, 125)
-                status = listOf("0", "1", "2", "3")
-            }
-        }
+
         val electricityList = mutableListOf<Double>()
         electricityList.add(e.mvElectricityA)
         electricityList.add(e.mvElectricityB)
@@ -252,9 +247,9 @@
         val avg = electricityList.average()
         for (i in values.indices) {
             if (avg < values[i]) {
-                return status[i]
+                return Pair(status[i], statusNames[i])
             }
         }
-        return status.last()
+        return Pair(status.last(), statusNames.last())
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3