feiyu02
2021-12-02 74ffc8ebf3a25d2e3cee758954ce6efc163cb864
src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt
@@ -200,7 +200,7 @@
                        d1eA = d?.mvElectricityA ?: .0
                        d1eB = d?.mvElectricityB ?: .0
                        d1eC = d?.mvElectricityC ?: .0
                        val s = getStatus(d, d1)
                        val s = ElectricDailyAnalysis.getStatus(d, d1)
                        d1Status = s.first
                        d1StatusName = s.second
                        d1Avg = s.third
@@ -238,7 +238,7 @@
                        d2eA = d?.mvElectricityA ?: .0
                        d2eB = d?.mvElectricityB ?: .0
                        d2eC = d?.mvElectricityC ?: .0
                        val s = getStatus(d, d2)
                        val s = ElectricDailyAnalysis.getStatus(d, d2)
                        d2Status = s.first
                        d2StatusName = s.second
                        d2Avg = s.third
@@ -274,41 +274,6 @@
        }
        return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages), data = result)
    }
    /**
     * 获取设备当前运行状态
     * @param e 设备用电量监测数据
     * @param d 企业设备信息
     * @return 数据对应结果信息:<状态编号,状态描述,电流均值>
     */
    private fun getStatus(e: ElectricMinuteValue?, d: CompanyDevice?): Triple<String, String, Double> {
        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 Triple(status.first(), statusNames.first(), .0)
        }
        val electricityList = mutableListOf<Double>()
        electricityList.add(e.mvElectricityA)
        electricityList.add(e.mvElectricityB)
        electricityList.add(e.mvElectricityC)
        val avg = round(electricityList.average() * 100) / 100
        for (i in values.indices) {
            if (avg < values[i]) {
                return Triple(status[i], statusNames[i], avg)
            }
        }
        return Triple(status.last(), statusNames.last(), avg)
    }
    override fun dailyStatistics(cId: String, startTime: String?, endTime: String?): BaseResponse<List<ElectricDailyInfo>> {