diff --git a/inventory-backend/app/services/inbound/buy_service.py b/inventory-backend/app/services/inbound/buy_service.py index 521a2e3..b4b3654 100644 --- a/inventory-backend/app/services/inbound/buy_service.py +++ b/inventory-backend/app/services/inbound/buy_service.py @@ -382,7 +382,8 @@ class BuyInboundService: # 2. 类别独立搜索 if category and category.strip(): - query = query.filter(MaterialBase.category == category.strip()) + # 级联选择器:中间节点用前缀匹配,与 base_service.get_list 行为一致 + query = query.filter(MaterialBase.category.ilike(f"{category.strip()}%")) # 3. 类型独立搜索 if material_type and material_type.strip(): diff --git a/inventory-backend/app/services/inbound/product_service.py b/inventory-backend/app/services/inbound/product_service.py index b5a7eda..fe5dddf 100644 --- a/inventory-backend/app/services/inbound/product_service.py +++ b/inventory-backend/app/services/inbound/product_service.py @@ -349,7 +349,8 @@ class ProductInboundService: sku_str = f'%{sku.strip()}%' query = query.filter(StockProduct.sku.ilike(sku_str)) if category and category.strip(): - query = query.filter(MaterialBase.category == category.strip()) + # 级联选择器:中间节点用前缀匹配,与 base_service.get_list 行为一致 + query = query.filter(MaterialBase.category.ilike(f"{category.strip()}%")) if material_type and material_type.strip(): query = query.filter(MaterialBase.material_type == material_type.strip()) diff --git a/inventory-backend/app/services/inbound/semi_service.py b/inventory-backend/app/services/inbound/semi_service.py index beeb0ce..03b6ec5 100644 --- a/inventory-backend/app/services/inbound/semi_service.py +++ b/inventory-backend/app/services/inbound/semi_service.py @@ -439,7 +439,8 @@ class SemiInboundService: sku_str = f'%{sku.strip()}%' query = query.filter(StockSemi.sku.ilike(sku_str)) if category and category.strip(): - query = query.filter(MaterialBase.category == category.strip()) + # 级联选择器:中间节点用前缀匹配,与 base_service.get_list 行为一致 + query = query.filter(MaterialBase.category.ilike(f"{category.strip()}%")) if material_type and material_type.strip(): query = query.filter(MaterialBase.material_type == material_type.strip())