Appearance
POST /dm-store/processModel/importExcel
Content-Type: multipart/form-data
触发按钮:无
入参
传递对象:MultipartFile
| 字段 | 类型 | 必填 | 多选 | 校验规则 | 说明 |
|---|---|---|---|---|---|
| file | MultipartFile | 否 | 否 | - | Excel 文件 |
出参
传递对象:ResultData<ImportResultInfo><导入结果对象>
无
前端校验规则
前端校验
├── 权限校验
│ └── 导入按钮权限
│ └── v-auth: 'information:processModel:import:popup'
├── 提交拦截校验
│ └── file
│ └── 未选择文件时直接拦截提交
└── 文件上传校验
└── file
├── 文件格式限制:仅允许 .xlsx、.xls
├── 文件大小限制:小于 5MB
└── 上传数量限制:仅保留最后一次选择的 1 个文件后端逻辑
业务流程:解析导入文件 -> 校验导入数据 -> 区分新增与更新 -> 生成机型编号 -> 批量保存机型
├── 解析导入文件
│ └── ExcelImportHandler.execute :330-331
├── 校验导入数据
│ ├── 查询产品线:ProductLineService.findAllProductLineList :361
│ └── 校验导入数据:handleImportData :347-422
├── 区分新增与更新
│ └── 绑定更新目标:handleImportData :425-444
├── 生成机型编号
│ └── 生成机型编号:RedisService.getCommonSeqNo :450
└── 批量保存机型
└── saveOrUpdateBatch :457后端校验规则
后端校验
├── 业务约束校验
│ └── 校验导入数据条数上限:handleImportData :347-350
│ └── ExceptionCode.Ex600148
├── 条件业务校验
│ ├── 校验产品线名称不能为空:handleImportData :363-365
│ │ └── ExceptionCode.EX90021
│ ├── 校验产品机型编码不能为空:handleImportData :374-376
│ │ └── ExceptionCode.EX90023
│ └── 校验产品机型名称不能为空:handleImportData :377-379
│ └── ExceptionCode.EX90024
├── 数据存在性校验
│ └── 校验产品线名称存在:handleImportData :366-371
│ └── ExceptionCode.EX90022
└── 业务唯一性校验
├── 校验导入批次内产品机型名称不重复:handleImportData :388-394
│ └── StoreExceptionCode.EX201026
└── 校验导入批次内产品机型编码不重复:handleImportData :388-398
└── StoreExceptionCode.EX201027涉及数据库表
| 库名.表名 | mapper.statement | 描述 |
|---|---|---|
| process_model | ProcessModelMapper.insertOrUpdateBatch | 批量新增或更新processModel数据 |