Skip to content

POST /dm-store/safeStock/importExcel

Content-Type: multipart/form-data

触发按钮:无

入参

传递对象:MultipartFile

字段类型必填多选校验规则说明
fileMultipartFile-Excel 文件

出参

传递对象:ResultData<ImportResultInfo><导入结果对象>

前端校验规则

前端校验
├── 提交拦截校验
│   └── 导入提交
│       └── 未选择文件时拦截提交
└── 文件上传校验
    └── 导入文件
        ├── 文件格式限制:仅允许 .xlsx、.xls
        ├── 文件大小限制:小于 5MB
        └── 最大上传数量限制:1 个

后端逻辑

业务流程:解析导入数据 -> 校验仓库与物料及库存阈值 -> 校验导入重复并匹配存量记录 -> 批量新增或更新安全库存 -> 返回导入结果
├── 解析导入数据
│   └── ExcelImportHandler.execute :272-273
├── 校验仓库与物料及库存阈值
│   ├── 查询仓库主数据:StoreMainService.findStoreMain :299
│   ├── 查询物料主数据:PartMainService.findPartMain :301
│   └── 校验导入数据:handleImportData :303-345
├── 校验导入重复并匹配存量记录
│   ├── 查询现有安全库存:SafeStockService.queryByParams :390
│   └── 绑定已存在记录:handleImportData :397-402
├── 批量新增或更新安全库存
│   └── SafeStockServiceImpl.saveOrUpdateBatch :418
└── 返回导入结果
    └── 返回导入结果:handleImportData :382-388

后端校验规则

后端校验
├── 业务约束校验
│   ├── 校验导入数据量不得超过10000条:handleImportData :287-290
│   │   └── ExceptionCode.Ex600148
│   ├── 校验最大库存、最小库存、安全库存必须同时存在:handleImportData :328-330
│   │   └── ExceptionCode.EX90034
│   ├── 校验最大库存必须大于最小库存:handleImportData :336-337
│   │   └── ExceptionCode.EX90029
│   ├── 校验最大库存必须大于安全库存:handleImportData :339-340
│   │   └── ExceptionCode.EX90030
│   └── 校验安全库存必须大于最小库存:handleImportData :342-343
│       └── ExceptionCode.EX90031
├── 数据存在性校验
│   ├── 校验导入行仓库代号必须存在:handleImportData :307-312
│   │   └── ExceptionCode.EX90005
│   └── 校验导入行物料编码必须存在:handleImportData :319-324
│       └── ExceptionCode.EX90044
├── 条件业务校验
│   ├── 校验导入行仓库代号不能为空:handleImportData :303-305
│   │   └── ExceptionCode.EX90001
│   └── 校验导入行物料编码不能为空:handleImportData :316-318
│       └── ExceptionCode.EX90025
└── 业务唯一性校验
    └── 校验物料编码+仓库编码组合不得重复:handleImportData :353-363
        └── StoreExceptionCode.EX201046

涉及数据库表

库名.表名mapper.statement描述
store.safe_stockSafeStockMapper.insertOrUpdateBatch批量新增或更新safety数据