From b77a69357da82a965cd63e76e8ceaf625ec4009b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 15 七月 2021 16:37:47 +0800
Subject: [PATCH] 1. 新增信访信息获取接口 2. 新增用电量信息获取接口 3. 新增风险评估结果接口 4. 新增污染权重实时分析接口

---
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 51 insertions(+), 2 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 dd0a575..0d933f4 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
@@ -1,17 +1,25 @@
 package com.flightfeather.uav.lightshare.service.impl
 
+import com.flightfeather.uav.common.utils.DateUtil
+import com.flightfeather.uav.domain.entity.CompanyDevice
 import com.flightfeather.uav.domain.entity.ElectricMinuteValue
+import com.flightfeather.uav.domain.entity.toAirData
+import com.flightfeather.uav.domain.mapper.CompanyDeviceMapper
 import com.flightfeather.uav.domain.mapper.ElectricMinuteValueMapper
 import com.flightfeather.uav.lightshare.bean.BaseResponse
 import com.flightfeather.uav.lightshare.bean.DataHead
+import com.flightfeather.uav.lightshare.bean.DataVo
 import com.flightfeather.uav.lightshare.service.ElectricityService
+import com.flightfeather.uav.socket.bean.AirData
 import com.github.pagehelper.PageHelper
 import org.springframework.stereotype.Service
 import tk.mybatis.mapper.entity.Example
 import java.text.SimpleDateFormat
 
 @Service
-class ElectricityServiceImpl(private val electricMinuteValueMapper: ElectricMinuteValueMapper) : ElectricityService {
+class ElectricityServiceImpl(
+    private val electricMinuteValueMapper: ElectricMinuteValueMapper, private val companyDeviceMapper: CompanyDeviceMapper
+) : ElectricityService {
 
     private var dateFormatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
 
@@ -31,10 +39,51 @@
                     sTime?.let { andGreaterThanOrEqualTo("mvDataTime", it) }
                     eTime?.let { andLessThanOrEqualTo("mvDataTime", it) }
                 }
-            orderBy("mvDataTime")
+            orderBy("mvDataTime").apply {
+                // 褰撹姹傛帴鍙d笉浼犻�掕捣濮嬫椂闂达紝榛樿鑾峰彇鏈�鏂扮殑鏁版嵁
+                if (startTime == null && endTime == null) {
+                    desc()
+                }
+            }
         }).forEach {
             it?.let { result.add(it) }
         }
+        if (startTime == null && endTime == null) {
+            result.reverse()
+        }
         return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages), data = result)
     }
+
+    override fun getMinuteData2(deviceCode: String, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>> {
+        val result = mutableListOf<DataVo>()
+        getMinuteData(deviceCode, startTime, endTime, page, perPage).run {
+            data?.forEach {
+                result.add(DataVo(
+                    DateUtil.instance.dateToString(it.mvDataTime, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS),
+                    it.mvStatCode,
+                    it.toAirData()
+                ))
+            }
+            return BaseResponse(success, head = head, data = result)
+        }
+    }
+
+    override fun getByCompany(cId: String): BaseResponse<List<ElectricMinuteValue>> {
+        val result = mutableListOf<ElectricMinuteValue>()
+        companyDeviceMapper.selectByExample(Example(CompanyDevice::class.java).apply {
+            createCriteria().andEqualTo("cdCompanyId", cId)
+        }).forEach {
+            val p = PageHelper.startPage<ElectricMinuteValue>(1, 1)
+            electricMinuteValueMapper.selectByExample(Example(ElectricMinuteValue::class.java).apply {
+                createCriteria().andEqualTo("mvStatCode", it?.cdDeviceCode)
+                orderBy("mvDataTime").desc()
+            })?.let {
+                if (it.isNotEmpty()) {
+                    it[0]?.let {e-> result.add(e) }
+                }
+            }
+        }
+
+        return BaseResponse(true, data = result)
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3