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'])