This commit is contained in:
wujinliang
2026-09-18 11:41:04 +08:00
parent 263068ac85
commit 1fc3e04723
38 changed files with 378 additions and 61 deletions
@@ -88,6 +88,21 @@ class InventorySchemaContractTest {
void balanceQueriesHideZeroRowsAndMutationsKeepWarehouseDimensionCanonical() throws Exception {
assertTrue(InventoryQueryMapper.BALANCE_FILTER.contains("procurement_packages)>0"));
assertTrue(InventoryQueryMapper.JOINED_BALANCE_FILTER.contains("b.procurement_packages)>0"));
String balancesSql = String.join(" ", InventoryQueryMapper.class
.getMethod("balances", String.class, InventoryQueryRequests.BalanceQuery.class, long.class, long.class)
.getAnnotation(Select.class).value());
assertTrue(balancesSql.contains("SUM(available_packages)"));
assertTrue(balancesSql.contains("GROUP BY customer_id,overseas_warehouse_id,destination_warehouse_id,destination_warehouse_code,sku_code"));
assertTrue(balancesSql.contains("NULL inbound_order_id"));
String balanceCountSql = String.join(" ", InventoryQueryMapper.class
.getMethod("countBalances", String.class, InventoryQueryRequests.BalanceQuery.class)
.getAnnotation(Select.class).value());
assertTrue(balanceCountSql.contains("FROM (SELECT 1 FROM ll_inventory_balance"));
assertTrue(balanceCountSql.contains("GROUP BY customer_id,overseas_warehouse_id,destination_warehouse_id,destination_warehouse_code,sku_code"));
String sourceBalancesSql = String.join(" ", InventoryQueryMapper.class
.getMethod("sourceBalances", String.class, InventoryQueryRequests.BalanceQuery.class, long.class, long.class)
.getAnnotation(Select.class).value());
assertFalse(sourceBalancesSql.contains("GROUP BY"));
String bindSql = String.join(" ", com.baiyue.lastleg.inventory.mapper.InventoryBalanceMapper.class
.getMethod("bindInboundPlan", String.class, String.class, Long.class, String.class,
String.class, java.time.LocalDateTime.class)
@@ -207,7 +207,7 @@ class InventoryQueryServiceTest {
@Test
void balanceExportUsesInboundOrderPackageColumnsOnly() {
InventoryQueryRequests.BalanceQuery query = balanceQuery(null);
when(mapper.balances("100", query, 0, 10_000)).thenReturn(List.of());
when(mapper.sourceBalances("100", query, 0, 10_000)).thenReturn(List.of());
String csv = new String(service.exportBalances("100", query), StandardCharsets.UTF_8);