Skip to content

POST /dm-store/processModel/importExcel

Content-Type: multipart/form-data

触发按钮:无

入参

传递对象:MultipartFile

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