Appearance
POST /dm-store/storeMain/importExcel
Content-Type: multipart/form-data
触发按钮:无
入参
传递对象:MultipartFile
| 字段 | 类型 | 必填 | 多选 | 校验规则 | 说明 |
|---|---|---|---|---|---|
| file | MultipartFile | 否 | 否 | - | Excel 文件 |
出参
传递对象:ResultData<ImportResultInfo><导入结果对象>
无
前端校验规则
前端校验
├── 权限校验
│ └── 导入按钮权限:information:warehouse:import:popup
├── 提交拦截校验
│ └── 未选择文件时禁止提交
└── 文件上传校验
└── 导入文件
├── 文件类型限制:仅允许 .xlsx、.xls
├── 文件大小限制:小于 5MB
└── 上传数量限制:仅保留最后一次选择的 1 个文件后端逻辑
业务流程:校验导入仓库数据并识别新增或更新记录,为新增仓库生成编号并同步权限后批量保存仓库主数据
├── 校验导入仓库数据
│ ├── 获取部门信息:DeptClient.getDept :521
│ ├── 查询现有仓库:StoreMainServiceImpl.findStoreMain :520
│ ├── 校验部门名称有效性:handleImportData :542-548
│ ├── 校验导入文件内仓库名称与编码唯一性:handleImportData :558-567
│ └── 返回失败明细:handleImportData :586-592
├── 识别新增或更新仓库
│ ├── 按仓库编码或名称匹配现有仓库:handleImportData :595-605
│ └── 按部门名称绑定部门编号:handleImportData :607-610
├── 处理新增仓库
│ └── 生成仓库编号:RedisService.getCommonSeqNo :616
├── 同步新增仓库权限
│ └── StorePermissionService.save :637
└── 批量保存仓库主数据
└── saveOrUpdateBatch :640后端校验规则
后端校验
├── 导入数据量上限校验:handleImportData :510-512
│ └── ExceptionCode.Ex600148
├── 部门名称存在性校验:handleImportData :542-548
│ └── StoreExceptionCode.EX201058
└── 导入文件内唯一性校验
├── 仓库名称重复校验:handleImportData :558-564
│ └── StoreExceptionCode.EX201026
└── 仓库编码重复校验:handleImportData :565-567
└── StoreExceptionCode.EX201027涉及数据库表
| 库名.表名 | mapper.statement | 描述 |
|---|---|---|
| device.store_main | StoreMainMapper.insertOrUpdateBatch | 批量新增或更新warehouse数据 |