riku
2025-08-28 3bb4fb15c664d29d179083698fdad35a661b1d7f
src/main/kotlin/com/flightfeather/uav/domain/repository/MissionRep.kt
@@ -3,17 +3,45 @@
import com.flightfeather.uav.domain.entity.Mission
import com.flightfeather.uav.domain.mapper.MissionMapper
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.util.*
@Repository
class MissionRep(
    private val missionMapper: MissionMapper,
) {
    /**
     * 根据任务编码查询单个走航任务
     * @param missionCode 任务编码(主键)
     * @return 查询到的任务对象,若不存在则返回null
     */
    fun findOne(missionCode:String?): Mission? {
        return missionMapper.selectByPrimaryKey(missionCode)
    }
    /**
     * 根据任务对象属性条件查询任务列表
     * @param mission 包含查询条件的任务对象(如设备类型、区域等)
     * @return 符合条件的任务列表
     */
    fun findList(mission: Mission): List<Mission?> {
        return missionMapper.select(mission)
    }
    /**
     * 根据时间范围查询走航任务列表
     * @param startTime 查询起始时间(包含)
     * @param endTime 查询结束时间(包含)
     * @return 符合时间条件的走航任务列表
     */
    fun findByTimeRange(startTime: Date, endTime: Date): List<Mission?> {
        // 使用tk.mybatis的Example构建查询条件
        return missionMapper.selectByExample(Example(Mission::class.java).apply {
            // 创建查询条件:startTime字段在指定时间范围内
            createCriteria().andBetween("startTime", startTime, endTime)
                // 过滤掉没有结束时间的任务(确保任务已完成)
                .andIsNotNull("endTime")
        })
    }
}