feiyu02
2025-08-28 ddaa44400aa478058ffe9349d59904a130b7ce9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.flightfeather.uav.domain.repository
 
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")
        })
    }
}