新增 /cascade-inventory 级联库存缺口查询接口,供 AI 调用 BOM 出库缺口分析
This commit is contained in:
@ -382,3 +382,41 @@ def get_bom_parents():
|
||||
except Exception as e:
|
||||
current_app.logger.error(f'获取BOM父件列表失败: {str(e)}')
|
||||
return jsonify({'code': 500, 'msg': '内部服务器错误'}), 500
|
||||
|
||||
|
||||
@bom_bp.route('/cascade-inventory', methods=['GET'])
|
||||
@jwt_required()
|
||||
@permission_required('bom_manage')
|
||||
def get_cascade_inventory():
|
||||
"""
|
||||
根据 BOM 编号和订单数量,计算所有子件的级联库存缺口(供 AI 调用)
|
||||
Query参数:
|
||||
- bom_no: BOM编号(必填)
|
||||
- order_qty: 订单需求量(必填,数值)
|
||||
"""
|
||||
try:
|
||||
bom_no = request.args.get('bom_no', '').strip()
|
||||
order_qty_str = request.args.get('order_qty', '').strip()
|
||||
|
||||
if not bom_no:
|
||||
return jsonify({'code': 400, 'msg': 'bom_no 不能为空'}), 400
|
||||
if not order_qty_str:
|
||||
return jsonify({'code': 400, 'msg': 'order_qty 不能为空'}), 400
|
||||
|
||||
try:
|
||||
order_qty = float(order_qty_str)
|
||||
except ValueError:
|
||||
return jsonify({'code': 400, 'msg': 'order_qty 必须为有效数字'}), 400
|
||||
|
||||
data = BomService.calculate_cascade_inventory(bom_no, order_qty)
|
||||
if data is None:
|
||||
return jsonify({'code': 404, 'msg': 'BOM 不存在'}), 404
|
||||
|
||||
return jsonify({
|
||||
'code': 200,
|
||||
'msg': 'success',
|
||||
'data': data
|
||||
})
|
||||
except Exception as e:
|
||||
current_app.logger.error(f'级联库存计算失败: {str(e)}')
|
||||
return jsonify({'code': 500, 'msg': '内部服务器错误'}), 500
|
||||
|
||||
Reference in New Issue
Block a user