fix(lastleg): enforce container warehouse plan facts

This commit is contained in:
2026-09-08 11:00:39 +08:00
parent 61ffff1be0
commit cc6df5993f
8 changed files with 161 additions and 35 deletions
@@ -34,4 +34,17 @@ class InboundPlanOrderMapperContractTest {
assertTrue(sql.contains("customer_id=#{customerId} AND id=#{orderId}"));
assertTrue(!sql.contains("destination_warehouse"));
}
@Test
void manualPlanLocksEveryOrderInTheSelectedStableContainer() throws Exception {
Select select = InboundPlanOrderMapper.class
.getMethod("lockContainerWarehouseFacts", String.class, Long.class)
.getAnnotation(Select.class);
String sql = String.join(" ", select.value());
assertTrue(sql.contains("c.source_container_booking_id=target.source_container_booking_id"));
assertTrue(sql.contains("target.customer_id=#{customerId} AND target.id=#{orderId}"));
assertTrue(sql.contains("c.overseas_warehouse_id AS overseasWarehouseId"));
assertTrue(sql.contains("ORDER BY c.customer_id,c.id FOR UPDATE"));
}
}