2 Commits

4 changed files with 25 additions and 20 deletions

View File

@ -671,6 +671,8 @@ class MaterialBaseService:
if 'generalManual' in data: if 'generalManual' in data:
material.manual_link = json.dumps(data['generalManual']) material.manual_link = json.dumps(data['generalManual'])
# ★ 仅当 payload 明确携带 generalImage 时才更新图片(含传 [] 表示清空);
# 修改其他字段时不动图片,避免误清空 product_image
if 'generalImage' in data: if 'generalImage' in data:
new_photo_list = data['generalImage'] new_photo_list = data['generalImage']
material.product_image = json.dumps(new_photo_list) material.product_image = json.dumps(new_photo_list)
@ -686,7 +688,7 @@ class MaterialBaseService:
new_photo_list new_photo_list
) )
else: else:
material.product_image = None # 图片被清空([])时,同步清理该物料的图片向量
ImageEmbeddingService.delete_embeddings( ImageEmbeddingService.delete_embeddings(
ImageEmbeddingService.MODULE_MATERIAL_BASE, material.id ImageEmbeddingService.MODULE_MATERIAL_BASE, material.id
) )

View File

@ -279,6 +279,7 @@ class BuyInboundService:
for k, v in field_mapping.items(): for k, v in field_mapping.items():
if k in data: setattr(stock, v, data[k]) if k in data: setattr(stock, v, data[k])
# ★ 仅当 payload 明确携带 arrival_photo 时才更新(含 [] 表示清空);改其它字段不动图片
if 'arrival_photo' in data: if 'arrival_photo' in data:
new_photo_list = data['arrival_photo'] new_photo_list = data['arrival_photo']
stock.arrival_photo = json.dumps(new_photo_list) stock.arrival_photo = json.dumps(new_photo_list)
@ -294,7 +295,7 @@ class BuyInboundService:
new_photo_list new_photo_list
) )
else: else:
stock.arrival_photo = None # 图片被清空([])时,同步清理该记录的图片向量
ImageEmbeddingService.delete_embeddings( ImageEmbeddingService.delete_embeddings(
ImageEmbeddingService.MODULE_STOCK_BUY, stock.id ImageEmbeddingService.MODULE_STOCK_BUY, stock.id
) )

View File

@ -250,6 +250,7 @@ class ProductInboundService:
for f in fields: for f in fields:
if f in data: setattr(stock, f, data[f]) if f in data: setattr(stock, f, data[f])
# ★ 仅当 payload 明确携带 product_photo 时才更新(含 [] 表示清空);改其它字段不动图片
if 'product_photo' in data: if 'product_photo' in data:
new_photo_list = data['product_photo'] new_photo_list = data['product_photo']
stock.product_photo = json.dumps(new_photo_list) stock.product_photo = json.dumps(new_photo_list)
@ -265,7 +266,7 @@ class ProductInboundService:
new_photo_list new_photo_list
) )
else: else:
stock.product_photo = None # 图片被清空([])时,同步清理该记录的图片向量
ImageEmbeddingService.delete_embeddings( ImageEmbeddingService.delete_embeddings(
ImageEmbeddingService.MODULE_STOCK_PRODUCT, stock.id ImageEmbeddingService.MODULE_STOCK_PRODUCT, stock.id
) )

View File

@ -307,6 +307,7 @@ class SemiInboundService:
if frontend_key in data: if frontend_key in data:
setattr(stock, db_attr, data[frontend_key]) setattr(stock, db_attr, data[frontend_key])
# ★ 仅当 payload 明确携带 arrival_photo 时才更新(含 [] 表示清空);改其它字段不动图片
if 'arrival_photo' in data: if 'arrival_photo' in data:
new_photo_list = data['arrival_photo'] new_photo_list = data['arrival_photo']
stock.arrival_photo = json.dumps(new_photo_list) stock.arrival_photo = json.dumps(new_photo_list)
@ -322,7 +323,7 @@ class SemiInboundService:
new_photo_list new_photo_list
) )
else: else:
stock.arrival_photo = None # 图片被清空([])时,同步清理该记录的图片向量
ImageEmbeddingService.delete_embeddings( ImageEmbeddingService.delete_embeddings(
ImageEmbeddingService.MODULE_STOCK_SEMI, stock.id ImageEmbeddingService.MODULE_STOCK_SEMI, stock.id
) )