From c68ffdca0f49fe3cda9ce29a549496e5c6ccefd7 Mon Sep 17 00:00:00 2001 From: yueli Date: Thu, 3 Sep 2026 14:14:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=A5=E5=BA=93=E6=88=90=E5=93=81/?= =?UTF-8?q?=E5=8D=8A=E6=88=90=E5=93=81/=E9=87=87=E8=B4=AD=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=85=B6=E5=AE=83=E5=AD=97=E6=AE=B5=E6=97=B6=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E8=AF=AF=E6=B8=85=E7=A9=BA=E5=9B=BE=E7=89=87=E2=80=94?= =?UTF-8?q?=E2=80=94=E4=BB=85=E6=98=BE=E5=BC=8F=E6=90=BA=E5=B8=A6=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=AD=97=E6=AE=B5=E6=89=8D=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inventory-backend/app/services/inbound/buy_service.py | 11 ++++++----- .../app/services/inbound/product_service.py | 11 ++++++----- .../app/services/inbound/semi_service.py | 11 ++++++----- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/inventory-backend/app/services/inbound/buy_service.py b/inventory-backend/app/services/inbound/buy_service.py index 22e4040..dcb6a08 100644 --- a/inventory-backend/app/services/inbound/buy_service.py +++ b/inventory-backend/app/services/inbound/buy_service.py @@ -279,6 +279,7 @@ class BuyInboundService: for k, v in field_mapping.items(): if k in data: setattr(stock, v, data[k]) + # ★ 仅当 payload 明确携带 arrival_photo 时才更新(含 [] 表示清空);改其它字段不动图片 if 'arrival_photo' in data: new_photo_list = data['arrival_photo'] stock.arrival_photo = json.dumps(new_photo_list) @@ -293,11 +294,11 @@ class BuyInboundService: stock.id, new_photo_list ) - else: - stock.arrival_photo = None - ImageEmbeddingService.delete_embeddings( - ImageEmbeddingService.MODULE_STOCK_BUY, stock.id - ) + else: + # 图片被清空([])时,同步清理该记录的图片向量 + ImageEmbeddingService.delete_embeddings( + ImageEmbeddingService.MODULE_STOCK_BUY, stock.id + ) if 'inspection_report' in data: stock.inspection_report = json.dumps(data['inspection_report']) diff --git a/inventory-backend/app/services/inbound/product_service.py b/inventory-backend/app/services/inbound/product_service.py index 99a7db7..15a76e3 100644 --- a/inventory-backend/app/services/inbound/product_service.py +++ b/inventory-backend/app/services/inbound/product_service.py @@ -250,6 +250,7 @@ class ProductInboundService: for f in fields: if f in data: setattr(stock, f, data[f]) + # ★ 仅当 payload 明确携带 product_photo 时才更新(含 [] 表示清空);改其它字段不动图片 if 'product_photo' in data: new_photo_list = data['product_photo'] stock.product_photo = json.dumps(new_photo_list) @@ -264,11 +265,11 @@ class ProductInboundService: stock.id, new_photo_list ) - else: - stock.product_photo = None - ImageEmbeddingService.delete_embeddings( - ImageEmbeddingService.MODULE_STOCK_PRODUCT, stock.id - ) + else: + # 图片被清空([])时,同步清理该记录的图片向量 + ImageEmbeddingService.delete_embeddings( + ImageEmbeddingService.MODULE_STOCK_PRODUCT, stock.id + ) if 'quality_report_link' in data: imgs = data['quality_report_link'] if isinstance(imgs, list): stock.quality_report_link = json.dumps(imgs) diff --git a/inventory-backend/app/services/inbound/semi_service.py b/inventory-backend/app/services/inbound/semi_service.py index 609e4bd..3cb3cc6 100644 --- a/inventory-backend/app/services/inbound/semi_service.py +++ b/inventory-backend/app/services/inbound/semi_service.py @@ -307,6 +307,7 @@ class SemiInboundService: if frontend_key in data: setattr(stock, db_attr, data[frontend_key]) + # ★ 仅当 payload 明确携带 arrival_photo 时才更新(含 [] 表示清空);改其它字段不动图片 if 'arrival_photo' in data: new_photo_list = data['arrival_photo'] stock.arrival_photo = json.dumps(new_photo_list) @@ -321,11 +322,11 @@ class SemiInboundService: stock.id, new_photo_list ) - else: - stock.arrival_photo = None - ImageEmbeddingService.delete_embeddings( - ImageEmbeddingService.MODULE_STOCK_SEMI, stock.id - ) + else: + # 图片被清空([])时,同步清理该记录的图片向量 + ImageEmbeddingService.delete_embeddings( + ImageEmbeddingService.MODULE_STOCK_SEMI, stock.id + ) if 'quality_report_link' in data: imgs = data['quality_report_link'] if isinstance(imgs, list):