fix: delete_bom use .all() instead of .first() to delete all child records

This commit is contained in:
DXC
2026-04-24 11:42:42 +08:00
parent 3c9cb06dbc
commit f0c200a15f

View File

@ -214,12 +214,16 @@ def delete_bom(bom_no):
if version:
query = query.filter_by(version=version)
exist = query.first()
if not exist:
# 【核心修复】:使用 .all() 查出该 BOM 版本下的所有子件记录
records = query.all()
if not records:
return jsonify({'code': 404, 'msg': 'BOM 不存在'}), 404
# 删除(改为对象级删除以触发审计事件
db.session.delete(exist)
# 循环删除所有关联记录(逐个 delete 可触发 SQLAlchemy 监听器记录审计日志
for rec in records:
db.session.delete(rec)
db.session.commit()
return jsonify({
'code': 200,