From 7a99e45c445b48e599adfb948350d0c9d22f441f Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期二, 09 十一月 2021 11:59:25 +0800 Subject: [PATCH] 1. 添加车载走航动态校准功能 2. 添加网格化数据校准功能 3. 添加网格化数据分钟均值转换功能(待完成) --- src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt | 100 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 92 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt index cce2f37..718bc7a 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt @@ -22,8 +22,11 @@ import tk.mybatis.mapper.entity.Example import java.io.ByteArrayInputStream import java.text.SimpleDateFormat +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter import java.util.* import javax.servlet.http.HttpServletResponse +import javax.swing.text.DateFormatter @Service class RealTimeDataServiceImpl( @@ -35,6 +38,7 @@ ) : RealTimeDataService { private var dateFormatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + private var dateFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm") private val fileExchange = FileExchange() override fun getSecondData(deviceCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>> { @@ -42,27 +46,39 @@ val _page = page ?: 1 val sTime = startTime?.let { dateFormatter.parse(it) } val eTime = endTime?.let { dateFormatter.parse(it) } - val pageInfo = PageHelper.startPage<RealTimeData>(_page, _perPage) +// var pageInfo = PageHelper.startPage<BaseRealTimeData>(_page, _perPage) + var pageNum = 1 + var pages = 0 val result = mutableListOf<DataVo>() when (UWDeviceType.getType(deviceCode)) { UWDeviceType.VEHICLE -> { + val pageInfo = PageHelper.startPage<RealTimeDataVehicle>(_page, _perPage) realTimeDataVehicleMapper.selectByExample(Example(RealTimeDataVehicle::class.java).apply { getSecondDataExample(this, deviceCode, sTime, eTime) }).forEach { result.add(it.toDataVo()) } + pageNum = pageInfo.pageNum + pages = pageInfo.pages } UWDeviceType.UAV -> { + val pageInfo = PageHelper.startPage<RealTimeDataUav>(_page, _perPage) realTimeDataUavMapper.selectByExample(Example(RealTimeDataUav::class.java).apply { getSecondDataExample(this, deviceCode, sTime, eTime) }).forEach { result.add(it.toDataVo()) } + pageNum = pageInfo.pageNum + pages = pageInfo.pages } UWDeviceType.GRID -> { + val pageInfo = PageHelper.startPage<RealTimeDataGrid>(_page, _perPage) realTimeDataGridMapper.selectByExample(Example(RealTimeDataGrid::class.java).apply { getSecondDataExample(this, deviceCode, sTime, eTime) }).forEach { result.add(it.toDataVo()) } + pageNum = pageInfo.pageNum + pages = pageInfo.pages } else -> { // 浠庡師濮嬫暟鎹〃涓幏鍙栨暟鎹� + val pageInfo = PageHelper.startPage<RealTimeData>(_page, _perPage) realTimeDataMapper.selectByExample(Example(RealTimeData::class.java).apply { getSecondDataExample(this, deviceCode, sTime, eTime) }).forEach { @@ -71,13 +87,15 @@ } result.add(it.toDataVo()) } + pageNum = pageInfo.pageNum + pages = pageInfo.pages } } if (startTime == null && endTime == null) { result.reverse() } - return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages), data = result) + return BaseResponse(true, head = DataHead(pageNum, pages), data = result) } private fun getSecondDataExample(example: Example, deviceCode: String?, sTime: Date?, eTime: Date?) { @@ -198,17 +216,83 @@ return contents } + private fun getOriginData(deviceCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>> { + val _perPage = perPage ?: 60 + val _page = page ?: 1 + val sTime = startTime?.let { dateFormatter.parse(it) } + val eTime = endTime?.let { dateFormatter.parse(it) } +// var pageInfo = PageHelper.startPage<BaseRealTimeData>(_page, _perPage) + var pageNum = 1 + var pages = 0 + val result = mutableListOf<DataVo>() + + // 浠庡師濮嬫暟鎹〃涓幏鍙栨暟鎹� + val pageInfo = PageHelper.startPage<RealTimeData>(_page, _perPage) + realTimeDataMapper.selectByExample(Example(RealTimeData::class.java).apply { + getSecondDataExample(this, deviceCode, sTime, eTime) + }).forEach { + if (it.longitude == null || it.latitude == null) { + return@forEach + } + result.add(it.toDataVo()) + } + pageNum = pageInfo.pageNum + pages = pageInfo.pages + + if (startTime == null && endTime == null) { + result.reverse() + } + return BaseResponse(true, head = DataHead(pageNum, pages), data = result) + } + override fun dataPreprocessing(): BaseResponse<String> { val epwDataPrep = EPWDataPrep() - val res = getSecondData("0b0000000002", "2021-10-23 19:00:00", "2021-10-23 20:00:00", 1, 5000) - val dataList = res.data ?: emptyList() + var page = 1 + var total = -1 var count = 0 - dataList.forEach { - val result = epwDataPrep.mDataPrep2(listOf(it)) + + while (total == -1 || page <= total) { + println("------start------") + val res = getOriginData("0d0000000001", "2021-07-05 19:47:01", "2021-11-05 00:00:00", page, 50000) + res.head?.let { + total = it.totalPage + } + if (page == 1) { + println("鎬婚〉鏁帮細$total") + } + println("褰撳墠椤垫暟锛�$page") + val dataList = res.data ?: emptyList() + val result = epwDataPrep.mDataPrep2(dataList) count += airDataRepository.savePrepData2(result) - println("[${it.deviceCode}]: [${it.time}]") - Thread.sleep(4000) + page++ } + + return BaseResponse(count > 0, data = "鎻掑叆鏁版嵁: ${count}鏉�") + } + + override fun averageData(): BaseResponse<String> { + val epwDataPrep = EPWDataPrep() + var page = 1 + var total = -1 + var count = 0 + + while (total == -1 || page <= total) { + println("------start------") + val res = getOriginData("0d0000000001", "2021-07-05 19:47:01", "2021-11-05 00:00:00", page, 50000) + res.head?.let { + total = it.totalPage + } + if (page == 1) { + println("鎬婚〉鏁帮細$total") + } + println("褰撳墠椤垫暟锛�$page") + res.data?.forEach { + + } + + page++ + } + return BaseResponse(count > 0, data = "鎻掑叆鏁版嵁: ${count}鏉�") } } \ No newline at end of file -- Gitblit v1.9.3