riku
2025-08-25 2de612e9b260df2e76d4dd620ca739aa3b6e8c57
src/main/kotlin/com/flightfeather/uav/lightshare/service/SatelliteTelemetryService.kt
@@ -1,25 +1,62 @@
package com.flightfeather.uav.lightshare.service
import com.flightfeather.uav.common.exception.BizException
import com.flightfeather.uav.domain.entity.GridAod
import com.flightfeather.uav.domain.entity.GridAodDetail
import com.flightfeather.uav.domain.entity.GridCell
import com.flightfeather.uav.domain.entity.GridData
import com.flightfeather.uav.domain.entity.GridDataDetail
import com.flightfeather.uav.domain.entity.GridGroup
import com.flightfeather.uav.lightshare.bean.AreaVo
import com.flightfeather.uav.lightshare.bean.DataHead
import com.flightfeather.uav.lightshare.bean.GridDataImportResult
import org.springframework.web.multipart.MultipartFile
import java.time.LocalDateTime
import javax.servlet.http.HttpServletResponse
/**
 *
 * 卫星遥测相关service服务接口
 * @date 2024/12/5
 * @author feiyu02
 */
interface SatelliteTelemetryService {
    fun fetchGridGroup(areaVo: AreaVo, page: Int?, perPage: Int?): Pair<DataHead, List<GridGroup?>>
    fun fetchGridGroup(areaVo: AreaVo, type: String?, page: Int?, perPage: Int?): Pair<DataHead, List<GridGroup?>>
    fun deleteGridGroup(groupId: Int)
    fun fetchGridCell(groupId: Int): List<GridCell?>
    fun fetchGridData(groupId: Int, dataTime: LocalDateTime?, type: Int?): List<GridData?>
    fun fetchGridData(gridData: GridData): List<GridData?>
    fun deleteGridData(dataId: Int): Boolean
    fun fetchGridDataDetail(dataId: Int, groupId: Int?, cellId: Int?): List<GridDataDetail?>
    fun createGridDataAndDataDetail(
        groupId: Int, dataTime: LocalDateTime?, gridDataDetail: List<GridDataDetail>): Boolean
    /**
     * 数据融合
     */
    // Fixme 2025.3.28: 需要和[SatelliteDataCalculateService.mixUnderwayGridData]函数合并
    fun mixGridData(dataIdList: List<Int>): List<GridData?>
    @Throws(BizException::class)
    fun importGridData(groupId: Int, dataTime: LocalDateTime?, update: Boolean, file: MultipartFile): GridDataImportResult?
    fun downloadTemplate(response: HttpServletResponse): Boolean
    @Throws(BizException::class)
    fun importGridAOD(groupId: Int, dataTime: LocalDateTime?, update: Boolean, file: MultipartFile): GridDataImportResult?
    fun downloadAODTemplate(response: HttpServletResponse): Boolean
    /**AOD数据相关**************************************************************/
    fun fetchGridAod(groupId: Int, dataTime: LocalDateTime?): List<GridAod?>
    fun fetchGridAODDetail(aodId: Int, groupId: Int?, cellId: Int?): List<GridAodDetail?>
}