SRM 供应商档案 导出 / 导入 - 前端联调方案
涉及页面
| 页面 |
前端组件 |
后端接口前缀 |
说明 |
| 供应商档案 |
srm/supplier/index(组件名 SrmSupplier) |
/srm/supplier |
新增"导出、导入、下载模板"工具栏入口 |
权限(按钮显隐,与后端 @PreAuthorize 一致)
| 操作 |
按钮权限 |
后端接口校验 |
| 导出 |
srm:supplier:export |
/srm/supplier/export-excel |
| 下载模板 / 导入 |
srm:supplier:import |
/srm/supplier/get-import-template、/srm/supplier/import-excel |
新按钮菜单 SQL 见 sql/mysql/srm_supplier_import_export_menu.sql(幂等,含普通角色授权);超级管理员自动拥有全部菜单。
若历史库中 srm:supplier:export 按钮菜单已存在但角色未分配,执行该脚本即可补齐。
API 一览
| 方法 |
路径 |
说明 |
权限 |
| GET |
/srm/supplier/export-excel |
按当前列表查询条件导出全部命中行(不分页) |
导出权限 |
| GET |
/srm/supplier/get-import-template |
下载导入模板(含 1 行示例数据,可删后填写) |
导入权限 |
| POST |
/srm/supplier/import-excel |
上传 Excel 导入(multipart) |
导入权限 |
导入接口参数
| 参数 |
类型 |
必填 |
说明 |
| file |
MultipartFile |
是 |
待导入的 Excel(.xls/.xlsx) |
| updateSupport |
Boolean |
否 |
是否支持更新:true=按"供应商编码"已存在则更新;默认 false=仅新增,已存在则该行报"供应商编码已存在" |
导入响应结构
code: 0 表示接口执行完成(非 0 为参数/系统异常)。业务层的部分成功通过 data 返回:
{
"code": 0,
"data": {
"createList": ["新增成功的供应商名称"],
"updateList": ["更新成功的供应商名称"],
"failureList": { "失败的供应商名称": "失败原因" }
}
}
前端约定:failureList 非空即视为"部分失败",应弹窗逐行提示失败原因;createList/updateList 用于汇总提示"成功新增 x 条、更新 y 条"。
导出接口
- 复用列表查询过滤条件(GET 查询参数:code/name/type/status/contactName/contactMobile),导出全部命中行,无需传页码。
- 成功返回二进制文件流,文件名:
供应商数据.xlsx;失败时可能返回 HTTP 200 + JSON,需区分二进制与 JSON。
- 导出表头为中文,**类型列显示名称(生产型/贸易型/服务型/其他),状态列显示 启用/禁用**(与页面标签一致),便于阅读:
| 列名 |
对应字段 |
说明 |
| 供应商编码 |
code |
|
| 供应商名称 |
name |
|
| 供应商简称 |
shortName |
|
| 供应商类型 |
type |
导出为中文名称 |
| 企业性质 |
companyNature |
|
| 注册资金(万元) |
registeredCapital |
|
| 营业执照编号 |
businessLicenseNo |
|
| 税号 |
taxNo |
|
| 法人代表 |
legalPerson |
|
| 公司地址 |
address |
|
| 公司网址 |
website |
|
| 联系人 |
contactName |
|
| 联系电话 |
contactMobile |
|
| 邮箱 |
contactEmail |
|
| 开户银行 |
bankName |
|
| 银行账号 |
bankAccount |
|
| 状态 |
status |
导出为 启用/禁用 |
| 备注 |
remark |
|
| 创建时间 |
createTime |
|
说明:此前导出直接使用 SrmSupplierRespVO 输出,表头为英文字段名;本次改造为独立 SrmSupplierExcelVO,表头与取值口径变化如上,导出文件不可直接回导(回导请用导入模板)。
导入模板说明(业务规则)
下载模板文件名:供应商导入模板.xlsx,内含 1 行示例数据(可删除后整表填写)。
| 列名 |
必填 |
填写规则 |
| 供应商编码 |
是 |
全局唯一,重复编码按 updateSupport 决定报错或更新 |
| 供应商名称 |
是 |
|
| 供应商简称 |
否 |
|
| 供应商类型(生产型/贸易型/服务型/其他) |
否 |
可填中文名称或编码 1/2/3/4;无法识别时按原样保存 |
| 企业性质(国企/民营/外资/合资) |
否 |
填实际文本 |
| 注册资金(万元) |
否 |
数值 |
| 营业执照编号 / 税号 |
否 |
|
| 法人代表 |
否 |
|
| 公司地址 / 公司网址 |
否 |
|
| 联系人 / 联系电话 / 邮箱 |
否 |
|
| 开户银行 / 银行账号 |
否 |
|
| 状态(0启用/1禁用) |
否 |
填 0/1;留空默认 0(启用) |
| 备注 |
否 |
|
行级处理规则:
| 场景 |
规则 |
| 编码或名称为空 |
该行失败:"供应商编码和供应商名称不能为空" |
| 编码已存在 且 updateSupport=false |
该行失败:"供应商编码已存在" |
| 编码已存在 且 updateSupport=true |
更新该供应商档案 |
| 编码不存在 |
新增供应商档案 |
| 单行其它校验异常(如编码唯一冲突) |
该行失败并记录原因,不影响其它行导入 |
注意事项
- 建议在供应商档案工具栏增加"导入""下载模板"两个入口;导入交互需包含
updateSupport 选项(复选框"更新已存在的供应商",默认不勾选),导入结果按上文响应结构给出成功/失败汇总与失败原因。
- "导出"按钮现有实现保持不变(
export-excel),仅后端输出列/表头优化。
- 供应商数据可通过准入审批自动创建,此类记录可能缺少编码/类型,导入模板不受影响(按编码匹配,空编码不影响既有数据)。
- 权限说明:模板下载与导入使用同一权限
srm:supplier:import。