Skip to content

POST /dm-store/supplier/importExcel

Content-Type: multipart/form-data

触发按钮:无

入参

传递对象:MultipartFile

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

出参

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

前端校验规则

文件上传校验
├── 文件格式仅允许 .xlsx、.xls
├── 文件大小必须小于 5MB
└── 文件列表仅保留最后一次选择的文件

提交拦截
└── 未选择文件时禁止提交

后端逻辑

业务流程:导入供应商数据,校验导入记录有效性,并按供应商编码或名称识别新增或更新后批量落库
├── 解析导入文件
│   └── ExcelImportHandler.execute :348-349
├── 查询现有供应商
│   └── SupplierServiceImpl.findAllSupplier :369-374
├── 校验导入记录
│   └── handleImportData :399-473
├── 识别新增或更新供应商
│   ├── 按供应商编码或名称回填已有记录:handleImportData :476-489
│   └── 新增记录生成供应商编号:RedisService.getCommonSeqNo :493
└── 批量新增或更新供应商
    └── saveOrUpdateBatch :500

后端校验规则

业务校验
├── 导入数据量不得超过10000条:handleImportData :388-390
│   └── 异常码:ExceptionCode.Ex600148
├── 供应商编码不能为空:handleImportData :400-401
│   └── 异常码:ExceptionCode.EX90011
├── 供应商名称不能为空:handleImportData :403-404
│   └── 异常码:ExceptionCode.EX90012
├── 联系方式格式仅允许手机号或座机号:handleImportData :409-417
│   ├── 生效条件:系统已有供应商数据,且导入联系方式非空
│   └── 异常码:StoreExceptionCode.EX201056
├── 联系方式不得与系统现有供应商重复:handleImportData :418-422
│   ├── 生效条件:系统已有供应商数据,且导入联系方式非空
│   └── 异常码:StoreExceptionCode.EX201055
└── 导入批次内唯一性校验
    ├── 供应商名称重复:handleImportData :436-438
    │   └── 异常码:StoreExceptionCode.EX201042
    ├── 供应商编码重复:handleImportData :440-442
    │   └── 异常码:StoreExceptionCode.EX201043
    └── 联系方式重复:handleImportData :444-447
        ├── 生效条件:当前行前置校验未命中,且双方联系方式均非空
        └── 异常码:StoreExceptionCode.EX201057

涉及数据库表

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