feat: add material spec to BOM responses and UI
Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
@ -34,7 +34,8 @@ class BomService:
|
||||
subq.c.parent_id,
|
||||
subq.c.version,
|
||||
subq.c.child_count,
|
||||
MaterialBase.name.label('parent_name')
|
||||
MaterialBase.name.label('parent_name'),
|
||||
MaterialBase.spec_model.label('parent_spec')
|
||||
).join(MaterialBase, subq.c.parent_id == MaterialBase.id)
|
||||
|
||||
results = query.all()
|
||||
@ -42,6 +43,7 @@ class BomService:
|
||||
'bom_no': row.bom_no,
|
||||
'parent_id': row.parent_id,
|
||||
'parent_name': row.parent_name,
|
||||
'parent_spec': row.parent_spec or '',
|
||||
'version': row.version,
|
||||
'child_count': row.child_count
|
||||
} for row in results]
|
||||
@ -54,7 +56,8 @@ class BomService:
|
||||
"""
|
||||
rows = db.session.query(
|
||||
BomTable,
|
||||
MaterialBase.name.label('child_name')
|
||||
MaterialBase.name.label('child_name'),
|
||||
MaterialBase.spec_model.label('child_spec')
|
||||
).join(
|
||||
MaterialBase, BomTable.child_id == MaterialBase.id
|
||||
).filter(
|
||||
@ -66,14 +69,21 @@ class BomService:
|
||||
|
||||
first = rows[0]
|
||||
parent_id = first.BomTable.parent_id
|
||||
parent_name = db.session.query(MaterialBase.name)\
|
||||
.filter(MaterialBase.id == parent_id).scalar() or ''
|
||||
# 获取父件的名称和规格
|
||||
parent_material = MaterialBase.query.filter(MaterialBase.id == parent_id).first()
|
||||
if parent_material:
|
||||
parent_name = parent_material.name
|
||||
parent_spec = parent_material.spec_model or ''
|
||||
else:
|
||||
parent_name = ''
|
||||
parent_spec = ''
|
||||
|
||||
children = []
|
||||
for bom, child_name in rows:
|
||||
for bom, child_name, child_spec in rows:
|
||||
children.append({
|
||||
'child_id': bom.child_id,
|
||||
'child_name': child_name,
|
||||
'child_spec': child_spec or '',
|
||||
'dosage': float(bom.dosage) if bom.dosage else 0.0,
|
||||
'remark': bom.remark or ''
|
||||
})
|
||||
@ -82,6 +92,7 @@ class BomService:
|
||||
'bom_no': bom_no,
|
||||
'parent_id': parent_id,
|
||||
'parent_name': parent_name,
|
||||
'parent_spec': parent_spec,
|
||||
'version': first.BomTable.version,
|
||||
'children': children
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user