feat: Task 2 Excel 批量导入 API 完成(模板下载 + 批量导入 + 失败行下载)

This commit is contained in:
simonkoson
2026-05-15 13:40:13 +08:00
parent 9439c72d30
commit 2480d4a738
4 changed files with 448 additions and 1 deletions
+27
View File
@@ -0,0 +1,27 @@
"""
导入相关 Schema — 请求 / 响应模型
"""
from datetime import date
from pydantic import BaseModel, ConfigDict
class ImportError(BaseModel):
"""单行失败详情"""
row_number: int # Excel 行号(第2行=第1条数据)
reason: str # 失败原因
raw_data: dict # 原始行数据(字典形式)
model_config = ConfigDict(from_attributes=True)
class ImportResult(BaseModel):
"""批量导入响应"""
batch_id: str # UUID,用于下载失败行 Excel
total_rows: int # 总行数
success_count: int # 成功数
failed_count: int # 失败数
errors: list[ImportError] # 失败行列表
error_excel_url: str | None # 失败行 Excel 下载 URL
model_config = ConfigDict(from_attributes=True)