Skip to content

POST /dm-store/partMain/importExcel

Content-Type: multipart/form-data

触发按钮:无

入参

传递对象:MultipartFile

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