From bde043c8fd1a076f44c402dd56c62d401afbfb16 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期四, 27 三月 2025 17:29:48 +0800 Subject: [PATCH] 1. 新增卫星遥测网格热力图计算逻辑 --- src/main/kotlin/com/flightfeather/uav/lightshare/web/SatelliteTelemetryController.kt | 75 ++++++++++++++++++++++++++++++++----- 1 files changed, 64 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/SatelliteTelemetryController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/SatelliteTelemetryController.kt index d0c2811..c431269 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/SatelliteTelemetryController.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/SatelliteTelemetryController.kt @@ -1,7 +1,8 @@ package com.flightfeather.uav.lightshare.web -import com.fasterxml.jackson.annotation.JsonFormat +import com.flightfeather.uav.domain.entity.GridDataDetail import com.flightfeather.uav.lightshare.bean.AreaVo +import com.flightfeather.uav.lightshare.service.SatelliteDataCalculateService import com.flightfeather.uav.lightshare.service.SatelliteTelemetryService import io.swagger.annotations.Api import io.swagger.annotations.ApiOperation @@ -21,15 +22,19 @@ @Api(tags = ["鍗槦閬ユ祴API鎺ュ彛"]) @RestController @RequestMapping("air/satellite") -class SatelliteTelemetryController(private val satelliteTelemetryService: SatelliteTelemetryService) { +class SatelliteTelemetryController( + private val satelliteTelemetryService: SatelliteTelemetryService, + private val satelliteDataCalculateService: SatelliteDataCalculateService +) { @ApiOperation(value = "鑾峰彇缃戞牸缁勪俊鎭�") @PostMapping("/grid/group") fun fetchGridGroup( @RequestBody areaVo: AreaVo, + @RequestParam(required = false) type: String?, @RequestParam("page", required = false) page: Int?, @RequestParam("per_page", required = false) perPage: Int? - ) = resPack { satelliteTelemetryService.fetchGridGroup(areaVo, page, perPage) } + ) = resPack { satelliteTelemetryService.fetchGridGroup(areaVo, type, page, perPage) } @ApiOperation(value = "鑾峰彇缃戞牸缁勫唴鍏蜂綋缃戞牸淇℃伅") @GetMapping("/grid/cell") @@ -54,11 +59,24 @@ @ApiParam("缃戞牸鍗曞厓鏍糹d") @RequestParam(required = false) cellId: Int?, ) = resPack { satelliteTelemetryService.fetchGridDataDetail(dataId, groupId, cellId) } + @ApiOperation(value = "淇濆瓨鎷熷悎鐢熸垚鐨勫崼鏄熼仴娴婸M2.5缁撴灉鏁版嵁") + @PostMapping("/grid/data/create") + fun createGridDataAndDataDetail( + @ApiParam("缃戞牸缁刬d") @RequestParam groupId: Int, + @ApiParam("閬ユ祴鏁版嵁鏃堕棿") + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") dateTime: LocalDateTime, + @RequestBody gridDataDetail: List<GridDataDetail> + ) = resPack { + satelliteTelemetryService.createGridDataAndDataDetail(groupId, dateTime, gridDataDetail) + } + + @ApiOperation(value = "澶氭璧拌埅鏁版嵁杩涜铻嶅悎璁$畻") @PostMapping("/grid/data/mix") fun mixGridData( @ApiParam("鍘熷鏁版嵁id鏁扮粍") @RequestBody dataIdList: List<Int> ) = resPack { satelliteTelemetryService.mixGridData(dataIdList) } + @ApiOperation(value = "瀵煎叆鍗槦閬ユ祴PM2.5缁撴灉鏁版嵁") @PostMapping("/import/grid/data") @@ -76,14 +94,6 @@ @GetMapping("/import/grid/data/download/template") fun downloadTemplate(@ApiIgnore response: HttpServletResponse) = satelliteTelemetryService.downloadTemplate(response) - @ApiOperation(value = "鑾峰彇缃戞牸缁勪笅鐨勫崼鏄熼仴娴媋od鏁版嵁") - @GetMapping("/grid/aod") - fun fetchGridAod( - @ApiParam("缃戞牸缁刬d") @RequestParam groupId: Int, - @ApiParam("閬ユ祴鏁版嵁鏃堕棿") - @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") dataTime: LocalDateTime?, - ) = resPack { satelliteTelemetryService.fetchGridAod(groupId, dataTime) } - @ApiOperation(value = "瀵煎叆鍗槦閬ユ祴Aod缁撴灉鏁版嵁") @PostMapping("/import/grid/aod") fun importGridAOD( @@ -99,4 +109,47 @@ @ApiOperation(value = "涓嬭浇鍗槦閬ユ祴Aod缁撴灉鏁版嵁瀵煎叆妯℃澘") @GetMapping("/import/grid/aod/download/template") fun downloadAODTemplate(@ApiIgnore response: HttpServletResponse) = satelliteTelemetryService.downloadAODTemplate(response) + + + /**AOD鏁版嵁鐩稿叧**************************************************************/ + @ApiOperation(value = "鑾峰彇缃戞牸缁勪笅鐨勫崼鏄熼仴娴媋od鏁版嵁") + @GetMapping("/grid/aod") + fun fetchGridAod( + @ApiParam("缃戞牸缁刬d") @RequestParam groupId: Int, + @ApiParam("閬ユ祴鏁版嵁鏃堕棿") + @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") dataTime: LocalDateTime?, + ) = resPack { satelliteTelemetryService.fetchGridAod(groupId, dataTime) } + +// @ApiOperation(value = "鑾峰彇缃戞牸缁勪笅鐨勫崼鏄熼仴娴婣OD鏁版嵁") +// @GetMapping("/aod/data") +// fun fetchGridAOD( +// @ApiParam("缃戞牸缁刬d") @RequestParam groupId: Int, +// @ApiParam("AOD鏁版嵁鏃堕棿") +// @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") dataTime: LocalDateTime?, +// ) = resPack { satelliteTelemetryService.fetchGridAOD(groupId, dataTime) } + + @ApiOperation(value = "鑾峰彇缃戞牸缁勪笅鐨勫崼鏄熼仴娴婣OD鍏蜂綋鏁版嵁") + @GetMapping("/aod/data/detail") + fun fetchGridAODDetail( + @ApiParam("AOD鏁版嵁id") @RequestParam aodId: Int, + @ApiParam("缃戞牸缁刬d") @RequestParam(required = false) groupId: Int?, + @ApiParam("缃戞牸鍗曞厓鏍糹d") @RequestParam(required = false) cellId: Int?, + ) = resPack { satelliteTelemetryService.fetchGridAODDetail(aodId, groupId, cellId) } + + + /**閬ユ祴浜у搧鍒朵綔鐩稿叧**************************************************************/ + @ApiOperation(value = "鐢熸垚璧拌埅铻嶅悎浜у搧") + @GetMapping("/product/underway/build") + fun buildUnderwayProduct( + @ApiParam("璧拌埅浠诲姟缂栧彿") @RequestParam missionCode: String, + @ApiParam("缃戞牸缁刬d") @RequestParam groupId: Int, + ) = resPack { satelliteDataCalculateService.dataFusion(missionCode, groupId) } + + @ApiOperation(value = "鐢熸垚璧拌埅鐑姏鍥�") + @PostMapping("/product/underway/heatmap/build") + fun buildUnderwayHeatmap( + @ApiParam("浣跨敤鐨勭綉鏍肩粍id") @RequestParam groupId: Int, + @ApiParam("鎼滅储缃戞牸璺濈") @RequestParam searchLength:Int, + @ApiParam("浣跨敤鐨勮蛋鑸綉鏍兼暟鎹�") @RequestBody gridDataDetailList: List<GridDataDetail> + ) = resPack { satelliteDataCalculateService.buildHeatmap(groupId, gridDataDetailList, searchLength) } } \ No newline at end of file -- Gitblit v1.9.3