自动入库规则
触发原则
当用户:
- 发送新的“异常报告”Excel 文件
- 提供本地路径并说明这是异常报告
- 指定一个目录让系统批量处理异常报告历史文件
就先执行导入,再继续分析。
单文件自动入库
如果收到一个 Excel 文件,且满足以下任一条件:
- 文件名包含“异常报告”
- 用户明确说明这是钉钉 OA 的“异常报告”导出文件
执行:
python3 scripts/import_exception_report.py <excel_path>默认会按文件哈希去重:
- 相同文件内容再次导入时,直接跳过
- 如果用户明确要求重新导入,可加
--force
批量补录历史文件
如果用户给的是目录,执行:
python3 scripts/scan_exception_reports.py <folder>规则:
- 递归扫描
.xlsx/.xls - 仅处理文件名包含“异常报告”的文件
- 对每个文件自动导入
- 相同文件内容按哈希跳过
对话行为
- 先导入,后分析
- 导入完成后告诉用户:导入了几份文件、跳过了几份、是否有报错
- 如果用户随后提出分析问题,直接基于 SQLite 回答,不再要求手工重复导入
注意
- 数据主键仍然是
数据id - 文件级防重复依赖
imports.file_hash - 业务级防重复依赖
reports.数据id - 若后续出现新的 Excel 列,导入脚本会自动给
reports表补列