fix(firstleg): project latest port schedule in platform containers
This commit is contained in:
+20
@@ -57,6 +57,26 @@ class ContainerBookingMapperContractTest {
|
||||
.contains("customer_item.account_id = #{query.customerId}");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("平台货柜读模型投影最新港务船期但保留订舱事实")
|
||||
void projectsLatestPortScheduleForPlatformReads() throws Exception {
|
||||
String detail = String.join("\n", ContainerBookingMapper.class
|
||||
.getDeclaredMethod("selectBooking", long.class).getAnnotation(Select.class).value());
|
||||
String page = String.join("\n", ContainerBookingMapper.class
|
||||
.getDeclaredMethod("selectBookingPage", com.baomidou.mybatisplus.extension.plugins.pagination.Page.class,
|
||||
com.baiyue.firstleg.dto.ContainerDtos.Query.class, String.class)
|
||||
.getAnnotation(Select.class).value());
|
||||
for (String sql : java.util.List.of(detail, page)) {
|
||||
assertThat(sql)
|
||||
.contains("fl_port_schedule", "ROW_NUMBER() OVER", "PARTITION BY candidate.customer_id",
|
||||
"COALESCE(schedule.vessel_name,b.vessel_name)",
|
||||
"COALESCE(schedule.voyage_no,b.voyage_no)",
|
||||
"COALESCE(schedule.etd_at,b.estimated_sailing_at)",
|
||||
"COALESCE(schedule.eta_at,b.estimated_port_arrival_at)")
|
||||
.doesNotContain("actual_sailing_at=schedule", "actual_port_arrival_at=schedule");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("关联订舱 SQL 的预计到港参数与 Mapper 参数名一致")
|
||||
void linkReleasedBookingUsesDeclaredEstimatedArrivalParameter() {
|
||||
|
||||
Reference in New Issue
Block a user