From fb536dad7fe66e94028c53a458d1c4362ea0ff2e Mon Sep 17 00:00:00 2001 From: dxc Date: Thu, 12 Feb 2026 10:02:29 +0800 Subject: [PATCH] feat: add endpoint to delete BOM by bom_no Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) --- inventory-backend/app/api/v1/bom.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/inventory-backend/app/api/v1/bom.py b/inventory-backend/app/api/v1/bom.py index ddbce5e..0d132d6 100644 --- a/inventory-backend/app/api/v1/bom.py +++ b/inventory-backend/app/api/v1/bom.py @@ -81,6 +81,29 @@ def get_bom_with_stock_by_no(bom_no): current_app.logger.error(f'获取BOM库存信息失败: {str(e)}') return jsonify({'code': 500, 'msg': '内部服务器错误'}), 500 +# ==================== 删除BOM接口(根据bom_no删除整个配方) ==================== + +@bom_bp.route('/', methods=['DELETE']) +@jwt_required() +def delete_bom(bom_no): + """根据 BOM 编号删除整个配方(包括所有子件记录)""" + try: + # 先检查是否存在 + exist = BomTable.query.filter_by(bom_no=bom_no).first() + if not exist: + return jsonify({'code': 404, 'msg': 'BOM 不存在'}), 404 + + # 删除该 bom_no 下所有记录 + BomTable.query.filter_by(bom_no=bom_no).delete() + db.session.commit() + return jsonify({ + 'code': 200, + 'msg': '删除成功' + }) + except Exception as e: + current_app.logger.error(f'删除BOM失败: {str(e)}') + return jsonify({'code': 500, 'msg': '内部服务器错误'}), 500 + # ==================== 兼容旧接口(保留不改动现有前端) ==================== @bom_bp.route('/', methods=['GET'])