feiyu02
2025-01-03 0ddfab15b32dc054464d75c695999fa76c3b9b78
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
package com.flightfeather.uav.domain.repository
 
import com.flightfeather.uav.domain.entity.SegmentInfo
import com.flightfeather.uav.domain.mapper.SegmentInfoMapper
import org.springframework.stereotype.Repository
import tk.mybatis.mapper.entity.Example
import java.time.LocalDateTime
 
/**
 * 轨迹分隔数据库操作
 * @date 2024/7/4
 * @author feiyu02
 */
@Repository
class SegmentInfoRep(private val segmentInfoMapper: SegmentInfoMapper) {
 
    fun insert(list: List<SegmentInfo>):Int {
        return segmentInfoMapper.insertList(list)
    }
 
    fun findList(segmentInfo: SegmentInfo): List<SegmentInfo?> {
        return segmentInfoMapper.select(segmentInfo)
    }
 
    /**
     * 查询时段所涉及的所有路段
     *
     */
    fun findPeriod(missionCode:String?, sTime: LocalDateTime?, eTime: LocalDateTime?): List<SegmentInfo?> {
        return segmentInfoMapper.selectByExample((Example(SegmentInfo::class.java).apply {
//            createCriteria().andEqualTo("missionCode", missionCode)
 
            createCriteria().andLessThanOrEqualTo("startTime", sTime)
                .andGreaterThanOrEqualTo("endTime", sTime)
            or(
                createCriteria().andLessThanOrEqualTo("startTime", eTime)
                    .andGreaterThanOrEqualTo("endTime", eTime)
            )
            or(
                createCriteria().andGreaterThanOrEqualTo("startTime", sTime)
                    .andLessThanOrEqualTo("endTime", eTime)
            )
            orderBy("startTime")
        }))
    }
}