Files
KCGL/inventory-backend/app/api/v1/inbound/inbound_summary.py

72 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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