@@ -146,3 +146,41 @@
|
||||
- 风险与影响:
|
||||
- 删除数据集会同时删除其关联的回填任务记录(仅记录,不会回滚已写入杆塔的高程值)。
|
||||
- 若数据集存在运行中任务,接口会拒绝删除并提示先等待任务结束。
|
||||
|
||||
## Work Log - 高程数据管理支持批量导入(2026-05-03)
|
||||
|
||||
- 背景:
|
||||
- Issue `FL-182` 要求“高程数据管理要支持批量导入”。
|
||||
- 现有能力仅支持单条新建数据集,不适合一次导入多条高程数据集元信息。
|
||||
|
||||
- 本次改动(最小闭环):
|
||||
- 后端新增批量导入 API:
|
||||
- 文件:`api/app/api/v1/elevation.py`
|
||||
- 新增 `POST /api/v1/elevation/datasets/import`(权限:`elevation.manage`,`multipart/form-data` 上传 CSV)。
|
||||
- 后端新增批量导入服务逻辑:
|
||||
- 文件:`api/app/services/elevation_service.py`
|
||||
- 新增 `import_datasets_from_csv(...)`:
|
||||
- 解析 CSV 行级导入,支持中英文列名:`code/编码`、`name/名称`、`mount_code/挂载编码`、`file_path/文件路径`、`source/来源`、`resolution_m/分辨率`、`notes/备注`。
|
||||
- 复用现有 `create_dataset` 校验(格式识别、文件存在性检查、编码唯一性)。
|
||||
- 对导入成功的数据集自动触发 `analyze_dataset`,补齐样本数和边界框。
|
||||
- 返回导入统计(新增/分析/跳过/告警)与成功导入的数据集清单。
|
||||
- 新增辅助函数:CSV 编码解码、列名取值、分辨率解析校验。
|
||||
- 后端 schema 扩展:
|
||||
- 文件:`api/app/schemas/elevation.py`
|
||||
- 新增 `ElevationDatasetBatchImportResponse`。
|
||||
- 前端高程管理页接入批量导入入口:
|
||||
- 文件:`web/src/app/admin/elevation/page.tsx`
|
||||
- 在“高程数据集”卡片右上新增“批量导入”按钮(上传 CSV)。
|
||||
- 调用 `/api/v1/elevation/datasets/import`,导入后提示统计结果并刷新数据。
|
||||
- 页面提示文案补充“支持通过批量导入上传数据集元数据 CSV”。
|
||||
- 前端类型补充:
|
||||
- 文件:`web/src/types/auth.ts`
|
||||
- 新增 `ElevationDatasetBatchImportResponse`。
|
||||
|
||||
- 验证:
|
||||
- 后端语法编译:`python3 -m compileall api/app` 通过。
|
||||
- 遵循任务约束,未执行前端构建检查、未安装依赖。
|
||||
|
||||
- 风险与影响:
|
||||
- 批量导入 CSV 仅导入“数据集元信息”,不会上传实际高程文件;文件需先在文件管理中准备到目标挂载路径。
|
||||
- 单行存在字段/路径/编码问题时按行跳过并返回告警,不会中断整个批次。
|
||||
|
||||
Reference in New Issue
Block a user