from flask import Blueprint, request, jsonify from app.services.inbound.buy_service import BuyInboundService import traceback # 定义蓝图 inbound_buy_bp = Blueprint('inbound_buy', __name__) # ------------------------------------------------------------------ # 1. 获取列表 (GET) # ------------------------------------------------------------------ @inbound_buy_bp.route('/list', methods=['GET']) def get_list(): try: page = request.args.get('page', 1, type=int) limit = request.args.get('pageSize', 15, type=int) result = BuyInboundService.get_list(page, limit) return jsonify({ "code": 200, "msg": "success", "data": result }) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500 # ------------------------------------------------------------------ # 2. 新增入库 (POST) # ------------------------------------------------------------------ @inbound_buy_bp.route('/submit', methods=['POST']) def submit(): try: data = request.get_json() if not data: return jsonify({"code": 400, "msg": "No data provided"}), 400 BuyInboundService.handle_inbound(data) return jsonify({"code": 200, "msg": "入库成功"}) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500 # ------------------------------------------------------------------ # 3. 更新入库 (PUT) # ------------------------------------------------------------------ @inbound_buy_bp.route('/', methods=['PUT']) def update_buy(id): try: data = request.get_json() BuyInboundService.update_inbound(id, data) return jsonify({"code": 200, "msg": "更新成功"}) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500 # ------------------------------------------------------------------ # 4. 删除入库 (DELETE) # ------------------------------------------------------------------ @inbound_buy_bp.route('/', methods=['DELETE']) def delete_buy(id): try: BuyInboundService.delete_inbound(id) return jsonify({"code": 200, "msg": "删除成功"}) except Exception as e: traceback.print_exc() return jsonify({"code": 500, "msg": str(e)}), 500