Skip to content

POST /dm-device/device/mttr/import

Content-Type: multipart/form-data

触发按钮:无

入参

传递对象:MultipartFile

字段类型必填多选校验规则说明
fileMultipartFile-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_mttrDeviceMttrMapper.insertOrUpdateBatch批量新增或更新MTTR数据