From 0abc5850d8ea10ad32694465b5d078f6d86d3eec Mon Sep 17 00:00:00 2001 From: yueli Date: Mon, 21 Sep 2026 14:13:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(bom):=20save=5Fbom=20=E8=90=BD=E5=BA=93=20B?= =?UTF-8?q?OM=20=E7=BA=A7=E5=A4=87=E6=B3=A8=EF=BC=8Cget=5Fbom=5Fdetail=20?= =?UTF-8?q?=E6=94=B9=E8=AF=BB=20bom=5Fremark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit save_bom() 此前从未读取 data['remark'],父件级备注被静默丢弃; get_bom_detail() 则用 first.BomTable.remark(第一个子件行的备注)冒充 主表备注——所以填了保存后再打开必为空,偶尔还会显示出某个子件的备注 (库里 1196 行只有 1 行有 remark,值是"白色")。 这正是"BOM 备注看不见"的根因。 --- inventory-backend/app/services/bom_service.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/inventory-backend/app/services/bom_service.py b/inventory-backend/app/services/bom_service.py index e6c5e47..940dc19 100644 --- a/inventory-backend/app/services/bom_service.py +++ b/inventory-backend/app/services/bom_service.py @@ -404,7 +404,9 @@ class BomService: 'parent_name': parent_material.name if parent_material else '', 'parent_spec': parent_material.spec_model if parent_material else '', 'is_enabled': first.BomTable.is_enabled, - 'remark': first.BomTable.remark or '', # ★ 主表备注 + # ★ BOM 级备注:改取 bom_remark。此前误取 first.BomTable.remark + # (第一个子件行的备注)冒充主表备注,是本次一并修掉的连带 bug + 'remark': first.BomTable.bom_remark or '', 'children': children } @@ -421,6 +423,8 @@ class BomService: parent_id = data['parent_id'] children = data['children'] is_enabled = data.get('is_enabled', True) + # ★ BOM 级备注:写入本版本每一行(与 is_enabled 等父件级字段同口径) + bom_remark = data.get('remark', '') or '' if not bom_no: raise ValueError('BOM编号不能为空') @@ -527,6 +531,7 @@ class BomService: child_id=child['child_id'], dosage=child.get('dosage', 0), remark=child.get('remark', ''), + bom_remark=bom_remark, child_bom_no=child.get('child_bom_no') or None, child_bom_version=child.get('child_bom_version') or None, is_enabled=is_enabled