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/CompanyServiceImpl.kt |   92 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 90 insertions(+), 2 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt
index 8e0c9af..5e5da20 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt
@@ -1,16 +1,104 @@
 package com.flightfeather.uav.lightshare.service.impl
 
+import com.flightfeather.uav.domain.entity.Assessment
 import com.flightfeather.uav.domain.entity.Company
+import com.flightfeather.uav.domain.mapper.AssessmentMapper
 import com.flightfeather.uav.domain.mapper.CompanyMapper
-import com.flightfeather.uav.lightshare.bean.BaseResponse
+import com.flightfeather.uav.domain.mapper.ComplaintMapper
+import com.flightfeather.uav.lightshare.bean.*
 import com.flightfeather.uav.lightshare.service.CompanyService
+import com.flightfeather.uav.lightshare.service.RealTimeDataService
+import com.flightfeather.uav.model.BaseModel
+import com.flightfeather.uav.model.epw.EPWModel
+import org.springframework.beans.BeanUtils
 import org.springframework.stereotype.Service
 import tk.mybatis.mapper.entity.Example
 
 @Service
-class CompanyServiceImpl(private val companyMapper: CompanyMapper) : CompanyService {
+class CompanyServiceImpl(
+    private val companyMapper: CompanyMapper,
+    private val realTimeDataService: RealTimeDataService,
+    private val complaintMapper: ComplaintMapper,
+    private val assessmentMapper: AssessmentMapper
+) : CompanyService {
+
+
     override fun getCompanyInfo(): BaseResponse<List<Company>> {
         val result = companyMapper.selectAll()
         return BaseResponse(true, data = result)
     }
+
+    override fun getCompany(cId: String): BaseResponse<Company> {
+        companyMapper.selectByPrimaryKey(cId)?.let {
+            return BaseResponse(true, data = it)
+        }
+        return BaseResponse(false, "浼佷笟id涓嶅瓨鍦�")
+    }
+
+    override fun getEpwModelResult(
+        deviceCode: String,
+        startTime: String,
+        endTime: String,
+        companyIds: List<String>?
+    ): BaseResponse<MutableMap<String, MutableMap<String, MutableMap<String, BaseModel.ResultCell>>>> {
+        val company = if (companyIds == null) {
+            companyMapper.selectAll()
+        } else {
+            companyMapper.selectByExample(Example(Company::class.java).apply {
+                createCriteria().apply {
+                    companyIds.forEach { orEqualTo("ciGuid", it) }
+                }
+            })
+        }
+        val companySOPList = mutableListOf<CompanySOP>()
+        company.forEach {
+            val companySOP = CompanySOP(it.ciGuid, it.ciName, it.ciExtension1)
+            BeanUtils.copyProperties(it, companySOP)
+            companySOPList.add(companySOP)
+        }
+
+        val epwModel = EPWModel()
+        // TODO: 2021/7/6 閮ㄥ垎璁惧鏄浐瀹氱偣鐩戞祴璁惧锛屼笉浼氱Щ鍔紝鍥犳鏁版嵁涓病鏈夌粡绾害锛岄渶瑕侀澶栬缃洃娴嬬偣缁忕含搴�
+//        epwModel.defaultLocation =
+
+        var page = 1
+        var totalPage = -1
+        while (totalPage == -1 || page <= totalPage) {
+            realTimeDataService.getSecondData(deviceCode, startTime, endTime, page, 5000).apply {
+                if (totalPage == -1) {
+                    totalPage = head?.totalPage ?: 0
+                }
+                val dataList = data?: emptyList()
+
+                // FIXME: 2021/7/13 姝ゅ涓轰簡娴嬭瘯鏆傛椂灏嗙珯鐐圭粡绾害鍐欐锛屽悗缁�氳繃鏁版嵁搴撻厤缃幏鍙� 
+                dataList.forEach {
+                    if (it.lng == 0.0 && it.lat == 0.0) {
+                        it.lng = 121.235813
+                        it.lat = 30.835898
+                    }
+                }
+                
+                epwModel.execute(dataList, companySOPList, true)
+                page++
+            }
+        }
+        val r = epwModel.outputResult()
+        return BaseResponse(true, data = r)
+    }
+
+    override fun getComplaintInfo(): BaseResponse<List<ComplaintVo>> {
+        val map = mutableMapOf<String, ComplaintVo>()
+        complaintMapper.getComplaintInfo().apply { percent() }.forEach {
+            if (!map.containsKey(it.ciGuid)) {
+                map[it.ciGuid] = ComplaintVo(it.ciGuid, it.ciName, it.ciLng.toDouble(), it.ciLat.toDouble(), it.ciIndex.toIntOrNull() ?: 0, it.ciAddress)
+            }
+            map[it.ciGuid]?.result?.add(ComplaintType(it.coType, it.coTypeName, it.count.toInt(), it.percent))
+        }
+        return BaseResponse(true, data = map.values.toList())
+    }
+
+    override fun getAssessment(): BaseResponse<List<AssessmentVo>> {
+        val result = assessmentMapper.getAssessment()
+        return BaseResponse(true, data = result)
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3