Skip to content

POST /dm-store/storeMain/importExcel

Content-Type: multipart/form-data

触发按钮:无

入参

传递对象:MultipartFile

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