feat: BOM 子件展示自制件 BOM 版本号——子件列表与出库/借库 BOM 清单打印均显示
This commit is contained in:
@ -320,13 +320,28 @@ class BomService:
|
||||
parent_material = MaterialBase.query.get(parent_id)
|
||||
|
||||
children = []
|
||||
|
||||
# ★ 子件若本身是"自制件"(也是某 BOM 的父件),带出它的 BOM 编号与最新版本号(仅展示识别用)
|
||||
child_self_bom = {}
|
||||
self_ids = [bom.child_id for bom, _, _ in rows if bom.child_id]
|
||||
if self_ids:
|
||||
_self_q = (db.session.query(BomTable.parent_id, BomTable.bom_no, BomTable.version)
|
||||
.filter(BomTable.parent_id.in_(self_ids))
|
||||
.order_by(BomTable.parent_id, BomTable.id.desc()).all())
|
||||
for _pid, _no, _ver in _self_q:
|
||||
if _pid not in child_self_bom:
|
||||
child_self_bom[_pid] = {'bom_no': _no, 'version': _ver}
|
||||
|
||||
for bom, child_name, child_spec in rows:
|
||||
_ref = child_self_bom.get(bom.child_id) or {}
|
||||
children.append({
|
||||
'child_id': bom.child_id,
|
||||
'child_name': child_name or '[已删除物料]',
|
||||
'child_spec': child_spec or '',
|
||||
'dosage': float(bom.dosage) if bom.dosage else 0.0,
|
||||
'remark': bom.remark or ''
|
||||
'remark': bom.remark or '',
|
||||
'child_bom_no': _ref.get('bom_no', ''),
|
||||
'child_bom_version': _ref.get('version', '')
|
||||
})
|
||||
|
||||
result = {
|
||||
|
||||
Reference in New Issue
Block a user