# Conflicts:
#	firstleg/src/test/java/com/baiyue/firstleg/repository/SmartLoadingSqlContractTest.java
This commit is contained in:
2026-08-24 11:58:22 +08:00
3 changed files with 38 additions and 9 deletions
@@ -26,7 +26,9 @@ class SmartLoadingCandidateMapperContractTest {
.contains("m.status='APPROVED'")
.contains("SELECT MAX(m2.id)")
.contains("m2.status='APPROVED'")
.contains("i.inbound_detail_id IS NOT NULL")
.contains("WHERE inbound_detail_id IS NOT NULL AND package_count>0")
.contains("SUM(package_count) package_count")
.contains("GROUP BY tenant_id,measurement_id,inbound_detail_id")
.contains("o.warehouse_id=#{warehouseId}")
.contains("o.process_status='WAIT_SPLIT'")
.contains("unitGrossWeightKg")
@@ -36,7 +38,7 @@ class SmartLoadingCandidateMapperContractTest {
.doesNotContain("i.unit_weight_kg")
.contains("SELECT SUM(li.package_count)")
.contains("li.deleted=0")
.contains("ORDER BY o.inbounded_at ASC, o.id ASC, i.id ASC");
.contains("ORDER BY o.inbounded_at ASC, o.id ASC, i.inbound_detail_id ASC");
}
@Test
@@ -55,6 +57,8 @@ class SmartLoadingCandidateMapperContractTest {
.contains("unitNetWeightKg")
.doesNotContain("i.unit_weight_kg")
.contains("SELECT SUM(li.package_count)")
.contains("SUM(package_count) package_count")
.contains("GROUP BY tenant_id,measurement_id,inbound_detail_id")
.contains("FOR UPDATE");
}
}
@@ -89,6 +89,18 @@ class SmartLoadingSqlContractTest {
}
}
@Test
@DisplayName("同一入库明细的多条单箱测量记录只生成一个候选")
void shouldAggregateCartonMeasurementRowsByInboundDetail() throws Exception {
String mapper = Files.readString(Path.of(
"src/main/java/com/baiyue/firstleg/mapper/SmartLoadingCandidateMapper.java"), StandardCharsets.UTF_8);
assertThat(mapper)
.contains("SUM(package_count) package_count")
.contains("GROUP BY tenant_id,measurement_id,inbound_detail_id")
.contains("split_item.source_inbound_detail_id=i.inbound_detail_id")
.doesNotContain("split_item.source_measurement_item_id=i.id");
}
@Test
@DisplayName("仓库备注使用计划先行与明细单表CAS并允许已拣明细仅改备注")
void shouldUpdateWarehouseRemarkWithoutMultiTableTriggerConflict() throws Exception {