feiyu02
21 小时以前 8eb584869b4fd4de0f51c93f2616f12e51df9193
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.flightfeather.uav.biz.sourcetrace
 
import com.flightfeather.uav.common.utils.DateUtil
import com.flightfeather.uav.domain.entity.Mission
import com.flightfeather.uav.domain.entity.RealTimeDataVehicle
import com.flightfeather.uav.domain.mapper.MissionMapper
import com.flightfeather.uav.domain.repository.MissionRep
import com.flightfeather.uav.domain.repository.SceneInfoRep
import com.flightfeather.uav.domain.repository.SourceTraceRep
import com.flightfeather.uav.lightshare.service.RealTimeDataService
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner
import tk.mybatis.mapper.entity.Example
import java.time.LocalDateTime
import java.time.ZoneId
 
@RunWith(SpringRunner::class)
@SpringBootTest
class SourceTraceControllerTest {
 
    @Autowired
    lateinit var sceneInfoRep: SceneInfoRep
 
    @Autowired
    lateinit var sourceTraceRep: SourceTraceRep
 
    @Autowired
    lateinit var missionMapper: MissionMapper
 
    @Autowired
    lateinit var missionRep: MissionRep
 
    @Autowired
    lateinit var realTimeDataService: RealTimeDataService
 
    @Test
    fun autoSourceTrace() {
        val sourceTraceController = SourceTraceController(sceneInfoRep, sourceTraceRep, true)
        val startTime = LocalDateTime.of(2025, 12, 11, 0, 0, 0).atZone(ZoneId.systemDefault()).toInstant()
        val endTime = LocalDateTime.of(2025, 12, 11, 23, 59, 59).atZone(ZoneId.systemDefault()).toInstant()
        val missions = missionMapper.selectByExample(Example(Mission::class.java).apply {
            createCriteria().andBetween("startTime", startTime, endTime)
        })
        missions.forEach { m ->
            val rtData = realTimeDataService.getSecondData(
                m?.deviceType,
                m?.deviceCode,
                DateUtil.instance.dateToString(m?.startTime, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS),
                DateUtil.instance.dateToString(m?.endTime, DateUtil.DateStyle.YYYY_MM_DD_HH_MM_SS),
                null,
                1,
                10000
            )
            rtData.data?.forEach { d ->
                val rtdVehicle = d.toBaseRealTimeData(RealTimeDataVehicle::class.java)
//            Thread.sleep(500)
                sourceTraceController.addOneData(rtdVehicle)
            }
            sourceTraceController.initTask()
        }
    }
 
    @Test
    fun deleteSourceTrace() {
        val startTime = LocalDateTime.of(2025, 12, 11, 0, 0, 0).atZone(ZoneId.systemDefault()).toInstant()
        val endTime = LocalDateTime.of(2025, 12, 11, 23, 59, 59).atZone(ZoneId.systemDefault()).toInstant()
        val missions = missionMapper.selectByExample(Example(Mission::class.java).apply {
            createCriteria().andBetween("startTime", startTime, endTime)
        })
        missions.forEach { m ->
            m ?: return@forEach
            sourceTraceRep.delete(m)
        }
    }
 
}