# Excel 导入总指导方案

## 一、使用场景

现场无法直接登录系统时，工作人员按照标准 Excel 表格记录，回到可联网环境后上传。系统先检查，不直接写入；管理员确认无错误后才整批写入。

## 二、两种导入方式

1. **首次建库**：使用完整模板，一次导入设备、实验部件、子系统、部件、字典、设备结构、实验项目和故障记录。
2. **后期补录或修改**：只保留需要修改的工作表、固定表头和数据行，单独上传即可。例如只补录“现场故障记录”，不需要再次提交设备和字典表。

系统通过工作表名称识别数据范围，文件名不参与业务识别，但建议使用“日期_数据范围_版本.xlsx”，便于批次追溯。

## 三、推荐导入顺序

设备/实验部件 → 子系统 → 部件 → 故障模式/原因/溯源 → 设备结构配置 → 整机/部件实验项目 → 现场故障记录 → 故障更换件 → 整机模拟故障/部件模拟故障。

顺序的原则是“先建立被引用对象，再导入引用它的记录”。单表补录时，数据库中已有的对象可以直接被引用。

## 四、系统自动检查

- 文件：仅接受 `.xlsx`，大小不超过 20 MB，工作表名称必须是系统规定名称。
- 表格：检查表头是否缺失、重复或改名。
- 单元格：检查必填、数据类型、代码字符、时间格式、长度、是/否和正整数。
- 业务关系：检查设备、子系统、部件从属关系，实验项目归属关系，以及故障记录引用的编号是否存在。
- 时间：检查故障、维修的开始和结束顺序；维修尚未结束可以留空。
- 重复：检查同一工作簿重复行、同一故障外部编号重复和相同文件重复提交。

错误会定位到工作表、行号、列名、错误代码、问题说明和原始值，并可下载问题报告。预检有错误时不能写入业务数据。

## 五、重复数据处理

- 配置数据代码相同且内容一致：跳过，不重复新增。
- 配置数据代码相同但名称、类型或从属关系冲突：报错，要求先确认后再导入。
- 故障记录外部记录编号重复：阻断，避免重复统计。
- 完全相同的文件已成功导入：阻断，避免重复提交。

## 六、提交和留痕

管理员确认后，系统按数据库事务整批写入；任意一条写入失败，整批回滚。系统保留文件名、文件摘要、上传人、时间、工作表数、数据行数、错误数、提示数、写入数、跳过数、预检问题和最终状态，可在“导入过程留痕”中复核。

## 七、使用者操作口诀

下载模板 → 按表头填写 → 按顺序准备依赖数据 → 上传 → 执行预检 → 按问题清单修改 → 重新上传 → 预检零错误 → 管理员确认整批导入 → 查看批次结果。
