---
name: import-export-rules
when: '数据导入, 数据导出, Excel导入, CSV导入, 批量导入, 模板下载, 导入校验, 批量处理'
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-domain_knowledge-import-export-rules
asset_kind: domain_knowledge
lifecycle_status: active
authority: supporting
routes:
  - '*'
primary_triggers:
  - 数据导入
  - 数据导出
  - Excel导入
  - CSV导入
  - 批量导入
  - 模板下载
  - 导入校验
  - 批量处理
priority: P2
specificity: 3
version: 1.0.0
last_reviewed: '2026-05-22'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: domain
status: active
---

## 业务规则
- 导入必须提供标准模板下载功能，模板字段与校验规则一一对应
- 导入数据必须全量校验后再入库，禁止边校验边入库（部分成功部分失败难以处理）
- 校验失败必须返回完整错误报告（行号 + 字段名 + 错误原因），禁止只返回"导入失败"
- 超过 1000 条的导入必须走异步处理，返回任务 ID 和进度查询接口
- 导入更新模式必须明确：新增/覆盖/跳过已存在记录
- 导出字段必须与导入模板字段对齐，导入的数据可通过导出还原
- 导入数据必须支持预览和校验，校验失败返回具体行号和错误原因
- 导入模板必须与当前系统版本一致，字段变更时同步更新模板
- 导出数据必须遵循数据权限规则，用户只能导出权限范围内的数据

## 约束条件
- 导入文件大小限制（建议 10MB），超过限制前端拦截不提交
- 导入文件类型限制（仅允许 .xlsx/.xls/.csv），禁止 .exe/.sh 等可执行文件
- 导入操作必须有审计日志（操作人、时间、记录数、成功/失败数）
- 大数据量导出使用流式写入（SXSSFWorkbook），禁止全量加载到内存
- 导入文件大小必须限制（如 ≤ 20MB），超过限制拒绝处理
- 导入操作必须有操作日志，记录导入人、时间、记录数、成功/失败数

## 例外情况
- 小数据量（< 100 条）可同步导入，直接返回结果
- 参考数据（字典、配置）导入可简化校验
- 系统管理员导出数据可以绕过数据权限，但必须有审批流程

## 关联模式
- [[async-export]] 异步导出模式
- [[file-upload]] 文件上传安全
- async-export
- input-validation
