编辑 | blame | 历史 | 原始文档

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 更新该供应商档案
编码不存在 新增供应商档案
单行其它校验异常(如编码唯一冲突) 该行失败并记录原因,不影响其它行导入

注意事项

  1. 建议在供应商档案工具栏增加"导入""下载模板"两个入口;导入交互需包含 updateSupport 选项(复选框"更新已存在的供应商",默认不勾选),导入结果按上文响应结构给出成功/失败汇总与失败原因。
  2. "导出"按钮现有实现保持不变(export-excel),仅后端输出列/表头优化。
  3. 供应商数据可通过准入审批自动创建,此类记录可能缺少编码/类型,导入模板不受影响(按编码匹配,空编码不影响既有数据)。
  4. 权限说明:模板下载与导入使用同一权限 srm:supplier:import