from flask import Blueprint, request, jsonify, send_file # .material -> .base refactor checked from app.services.inbound.inbound_summary_service import InboundSummaryService # 定义蓝图 bp = Blueprint('inbound_summary', __name__) @bp.route('/list', methods=['GET']) def get_list(): try: # 获取参数 page = request.args.get('page', 1, type=int) per_page = request.args.get('per_page', 20, type=int) # 默认每页20 keyword = request.args.get('keyword', '') start_date = request.args.get('start_date') end_date = request.args.get('end_date') source_type = request.args.get('source_type') # 可选:筛选 specific table result = InboundSummaryService.get_list( page=page, per_page=per_page, keyword=keyword, start_date=start_date, end_date=end_date, source_type=source_type ) return jsonify({ 'code': 200, 'msg': 'success', 'data': result }) except Exception as e: # 生产环境建议记录详细日志 print(f"Inbound Summary Error: {str(e)}") return jsonify({'code': 500, 'msg': str(e)}), 500 @bp.route('/export', methods=['GET']) def export_data(): """ 导出入库记录 Excel 支持筛选条件:keyword, start_date, end_date, source_type """ try: # 获取参数 keyword = request.args.get('keyword', '') start_date = request.args.get('start_date') end_date = request.args.get('end_date') source_type = request.args.get('source_type') # 调用导出服务 file_stream = InboundSummaryService.export_excel( keyword=keyword, start_date=start_date, end_date=end_date, source_type=source_type ) from datetime import datetime now = datetime.now().strftime('%Y%m%d_%H%M%S') filename = f"入库记录_{now}.xlsx" return send_file( file_stream, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', as_attachment=True, download_name=filename ) except Exception as e: print(f"Inbound Summary Export Error: {str(e)}") return jsonify({'code': 500, 'msg': str(e)}), 500