Appearance
POST /dm-device/device/mttr/import
Content-Type: multipart/form-data
触发按钮:无
入参
传递对象:MultipartFile
| 字段 | 类型 | 必填 | 多选 | 校验规则 | 说明 |
|---|---|---|---|---|---|
| file | MultipartFile | 否 | 否 | - | Excel 文件 |
出参
传递对象:ResultData<ImportResultInfo><导入结果对象>
无
前端校验规则
提交拦截校验
└── file
├── 未选择文件时直接拦截提交
├── 文件后缀不为 .xlsx/.xls 时直接拦截
└── 文件大小不小于 5MB 时直接拦截
文件上传校验
└── file
├── accept: .xlsx,.xls
├── 文件类型限制:仅允许 .xlsx、.xls
├── 文件大小限制:小于 5MB
└── 上传数量限制:仅保留最后一次选择的 1 个文件后端逻辑
业务流程:解析导入文件 -> 校验导入规模 -> 合并导入数据 -> 批量保存 MTTR 记录 -> 返回导入结果
├── 解析导入文件
│ ├── Excel 导入:ExcelImportHandler.execute :250
│ └── 处理导入结果:handleImportData :253-276
├── 校验导入规模
│ └── 条件: 成功解析数据超过 10000 条则终止导入 :264-265
├── 合并导入数据
│ └── 成功数据与失败数据合并后统一进入保存集 :268
├── 批量保存 MTTR 记录
│ ├── 生成待保存 MTTR 记录 :269
│ └── saveBatch :273
└── 返回导入结果
└── 写入成功数据与成功数量 :274-275后端校验规则
条件业务约束
└── 生效条件: 导入成功数据存在且数量超过 10000 条(条件表达式:list.size() > 10000)时禁止导入:handleImportData :263-266
└── ExceptionCode.Ex600148涉及数据库表
| 库名.表名 | mapper.statement | 描述 |
|---|---|---|
| device_mttr | DeviceMttrMapper.insertOrUpdateBatch | 批量新增或更新MTTR数据 |