fix(bom): BOM 详情查询改为 LEFT JOIN,子件物料被删后仍返回父件结构
- get_bom_detail 使用 outerjoin 替代 join - 子件物料被删除后 child_name 显示 [已删除物料] 而非误报 BOM 不存在 - 修复按 BOM 出库时因子件删除导致 404 BOM 不存在
This commit is contained in:
@ -293,7 +293,8 @@ class BomService:
|
||||
BomTable,
|
||||
MaterialBase.name.label('child_name'),
|
||||
MaterialBase.spec_model.label('child_spec')
|
||||
).join(
|
||||
).outerjoin(
|
||||
# ★ LEFT JOIN:子件物料被删除后仍返回父件 BOM 结构,避免误报 "BOM 不存在"
|
||||
MaterialBase, BomTable.child_id == MaterialBase.id
|
||||
).filter(
|
||||
BomTable.bom_no == bom_no
|
||||
@ -322,7 +323,7 @@ class BomService:
|
||||
for bom, child_name, child_spec in rows:
|
||||
children.append({
|
||||
'child_id': bom.child_id,
|
||||
'child_name': child_name,
|
||||
'child_name': child_name or '[已删除物料]',
|
||||
'child_spec': child_spec or '',
|
||||
'dosage': float(bom.dosage) if bom.dosage else 0.0,
|
||||
'remark': bom.remark or ''
|
||||
|
||||
Reference in New Issue
Block a user