Appearance
POST /dm-store/partMain/importExcel
Content-Type: multipart/form-data
触发按钮:无
入参
传递对象:MultipartFile
| 字段 | 类型 | 必填 | 多选 | 校验规则 | 说明 |
|---|---|---|---|---|---|
| file | MultipartFile | 否 | 否 | - | Excel 文件 |
出参
传递对象:ResultData
json
{
"code": 200,
"msg": "success"
}前端校验规则
├── 权限校验
│ └── 导入按钮权限
│ └── information:partMain:import:popup
├── 提交拦截
│ └── 未选择文件时禁止提交
└── 文件校验
└── file
├── 仅允许 .xlsx、.xls
├── 文件大小须小于 5MB
└── 仅保留最后选择的 1 个文件后端逻辑
业务流程:解析 Excel 导入内容,校验物料编码与名称唯一性、管控类型相关业务约束及供应商有效性,返回失败明细后为有效数据生成物料编号并批量保存。
├── 解析导入文件
│ └── ExcelImportHandler.execute :548-549
├── 合并导入数据并校验导入内重复
│ ├── 物料编号重复校验:handleImportData :796-803
│ └── 物料名称重复校验:handleImportData :805-812
├── 对照现有基础数据校验导入内容
│ ├── 查询现有物料:findPartMain :817
│ ├── 查询供应商:findAllSupplier :820
│ ├── 系统内物料编号与名称重复校验:handleImportData :821-836
│ ├── 价格与管控类型相关约束校验:handleImportData :838-861
│ └── 首选供应商存在性校验:handleImportData :864-870
├── 组装失败明细
│ └── handleImportData :908-915
└── 保存有效导入数据
├── 生成物料编号:redisService.getCommonSeqNo :938-940
└── saveOrUpdateBatch :946后端校验规则
├── 导入规模校验
│ └── 导入条数不得超过 10000 条:handleImportData :787-789
│ └── 异常码:ExceptionCode.Ex600148
├── 导入内唯一性校验
│ ├── 物料编号不得重复:handleImportData :796-803
│ │ └── 异常码:StoreExceptionCode.EX201036
│ └── 物料名称不得重复:handleImportData :805-810
│ └── 异常码:StoreExceptionCode.EX201037
├── 行数据业务校验
│ ├── 物料编号不能为空,且不能与系统现有数据重复:handleImportData :822-828
│ │ ├── 异常码:ExceptionCode.EX90025
│ │ └── 异常码:ExceptionCode.EX90169
│ ├── 物料名称不能为空,且不能与系统现有数据重复:handleImportData :830-836
│ │ ├── 异常码:ExceptionCode.EX90026
│ │ └── 异常码:ExceptionCode.EX1000143
│ ├── 价格不能为空:handleImportData :838-839
│ │ └── 异常码:ExceptionCode.EX90160
│ ├── 管控类型不能为空:handleImportData :841-842
│ │ └── 异常码:ExceptionCode.EX90162
│ └── 管控类型相关补充校验
│ ├── 是否寿命件不能为空:handleImportData :845-846
│ │ └── 异常码:ExceptionCode.EX90167
│ ├── 是否周期件不能为空:handleImportData :848-849
│ │ └── 异常码:ExceptionCode.EX90168
│ ├── 最大寿命与寿命单位不能为空:handleImportData :851-856
│ │ ├── 异常码:ExceptionCode.EX90163
│ │ └── 异常码:ExceptionCode.EX90164
│ └── 序列规则不能为空:handleImportData :859-860
│ └── 异常码:ExceptionCode.EX90161
├── 关联数据校验
│ └── 首选供应商必须存在:handleImportData :864-870
│ └── 异常码:StoreExceptionCode.EX201060
└── 成功集二次唯一性校验
├── 物料名称不得重复:handleImportData :884-886
│ └── 异常码:StoreExceptionCode.EX201036
└── 物料编号不得重复:handleImportData :888-890
└── 异常码:StoreExceptionCode.EX201037涉及数据库表
| 库名.表名 | mapper.statement | 描述 |
|---|---|---|
| store.part_main | PartMainMapper.insertOrUpdateBatch | 批量新增或更新partMain数据 |