文档目录
供应商管理表

引言

本文件面向DouPHP电商系统的供应商管理模块,聚焦“供应商主表(dou_supplier)”及相关数据模型的设计与使用。由于当前仓库未提供名为 dou_supplier 的表定义,但存在与“供应商/合作伙伴”相关的实体(如 AI 供应商 provider、合作伙伴 partner),以及商品、订单等上下游关联表,本文将:

  • 基于现有代码与SQL,梳理系统中已实现的“供应商”概念与数据结构;
  • 给出一个可落地的 dou_supplier 主表设计方案,覆盖基本信息、联系方式、银行账户、资质认证、等级与评估等字段;
  • 说明与商品、采购订单、库存的关联设计;
  • 提供供应商绩效分析、采购成本优化、供应链协同的技术方案建议;
  • 为开发者提供完整的供应商数据模型参考。

项目结构

围绕供应商管理的数据与逻辑,主要涉及以下位置:

  • 数据库结构定义:系统表结构导出文件包含全量表结构,便于定位已有表与索引;
  • 供应商相关能力:AI 模块提供了“供应商(provider)、模型(model)、密钥(key)”的完整配置与调度能力,可作为通用供应商抽象参考;
  • 业务关联:商品(product)与订单(order)是供应商能力的下游消费方,订单创建流程体现库存锁定与结算逻辑;
  • 合作伙伴展示:partner 表用于前台展示型伙伴信息,可作为供应商对外展示的参考。
graph TB
subgraph "数据层"
A["dou_ai_provider<br/>AI供应商配置"]
B["dou_ai_model<br/>AI模型配置"]
C["dou_ai_key<br/>API密钥"]
D["dou_product<br/>商品"]
E["dou_order<br/>订单"]
F["dou_partner<br/>合作伙伴(展示)"]
end
subgraph "服务层"
G["AiGateway<br/>供应商选择与路由"]
H["CheckoutService<br/>下单与库存锁定"]
end
A --> B
A --> C
B --> G
C --> G
G --> D
G --> E
H --> E
F -.-> D

核心组件

  • AI 供应商体系(provider/model/key):提供“供应商-模型-密钥”的三元抽象,支持启用状态、优先级、扩展配置、密钥轮换与熔断冷却等机制,适合作为通用供应商管理能力的基础。
  • 商品与订单:商品表承载SKU、价格、库存、促销等;订单表承载交易主体、金额、支付、物流等信息,下单流程中会进行库存锁定。
  • 合作伙伴(partner):用于展示型伙伴信息,具备基础名称、图片、排序、状态与时间戳字段,可作为供应商对外展示的最小集合。

架构总览

下图展示了“供应商-模型-密钥”在系统中的调用链路与业务影响面,包括供应商可用性判断、密钥选择策略以及对商品与订单的影响。

sequenceDiagram
participant 业务 as "业务调用方"
participant 网关 as "AiGateway"
participant 供应 as "AI供应商(provider)"
participant 模型 as "模型(model)"
participant 密钥 as "密钥(key)"
participant 商品 as "商品(product)"
participant 订单 as "订单(order)"
业务->>网关 : 请求解析(指定或默认模型)
网关->>供应 : 校验供应商状态/优先级
供应-->>网关 : 可用供应商集合
网关->>模型 : 获取模型配置
模型-->>网关 : 模型元数据
网关->>密钥 : 选择最优可用密钥(失败次数/过期时间)
密钥-->>网关 : 返回密钥
网关-->>业务 : 返回可用能力集
业务->>商品 : 查询/扣减库存
业务->>订单 : 创建订单并记录金额/运费

详细组件分析

供应商主表(dou_supplier)设计建议

说明:当前仓库未提供 dou_supplier 表定义。以下为基于现有“AI供应商”与“合作伙伴”能力提炼出的推荐设计,供扩展实现时参考。

  • 基本信息
    • 供应商编码、名称、简称、类型(生产/贸易/服务)、行业分类、地区、地址、官网、Logo、备注
  • 联系信息
    • 联系人、电话、邮箱、传真、工作时间、紧急联系人及方式
  • 银行账户
    • 开户行、账户名、账号、币种、SWIFT/联行号、发票信息(税号、开票类型)
  • 资质认证
    • 营业执照、许可证、质量体系认证、环保/安全认证、有效期、附件URL、审核状态
  • 等级与评估
    • 供应商等级(A/B/C/D)、综合评分、质量得分、交付得分、服务得分、合规得分、评估周期、最近评估时间
  • 商务条款
    • 结算周期、账期、最低起订量、最小包装量、交货周期、退换货政策、质保期
  • 状态与审计
    • 启用/禁用、合作状态(潜在/试用/正式/黑名单)、创建/更新时间、操作人
erDiagram
DOU_SUPPLIER {
int id PK
varchar supplier_code UK
varchar name
varchar short_name
enum type
varchar industry
varchar region
text address
varchar website
varchar logo
text remark
varchar contact_name
varchar phone
varchar email
varchar fax
text work_hours
varchar emergency_contact
varchar emergency_phone
varchar bank_name
varchar account_holder
varchar account_number
varchar currency
varchar swift_code
varchar bank_branch
varchar tax_id
enum invoice_type
enum status
enum cooperation_status
enum level
decimal score_total
decimal score_quality
decimal score_delivery
decimal score_service
decimal score_compliance
date last_assess_date
int settlement_cycle_days
decimal min_order_qty
decimal min_pack_qty
int delivery_lead_days
text return_policy
int warranty_days
datetime created_at
datetime updated_at
}

[此图为概念性ER图,不直接映射到具体源文件]

供应商分类管理

  • 建议采用“分类树”模式,支持多级分类(如:原材料/成品/服务),通过 parent_id 构建层级;
  • 分类可绑定标签、图标、描述、排序与同步导航开关;
  • 分类下可挂载供应商记录,便于按类目筛选与统计。
flowchart TD
Start(["新增分类"]) --> CheckParent{"是否存在父级?"}
CheckParent -- 否 --> CreateRoot["创建根分类"]
CheckParent -- 是 --> CreateChild["创建子分类"]
CreateRoot --> SetAttrs["设置名称/图标/描述/排序"]
CreateChild --> SetAttrs
SetAttrs --> Save["保存分类"]
Save --> End(["完成"])

[此图为概念流程图,不直接映射到具体源文件]

供应商评估体系

  • 指标维度:质量、交付、服务、合规;
  • 权重与评分:支持按维度加权计算总分;
  • 评估周期:月度/季度/年度;
  • 结果应用:自动调整等级、触发预警或淘汰。
flowchart TD
S(["开始评估"]) --> Collect["采集各维度数据"]
Collect --> Weight["应用权重计算"]
Weight --> Score["生成总分与分维度得分"]
Score --> Level["根据阈值更新等级"]
Level --> Alert{"是否触发预警?"}
Alert -- 是 --> Notify["通知采购/风控"]
Alert -- 否 --> Done(["结束"])
Notify --> Done

[此图为概念流程图,不直接映射到具体源文件]

供应商等级制度

  • 等级划分:A(战略)、B(核心)、C(一般)、D(观察/限制);
  • 升降级规则:连续N次评估达标升级,低于阈值降级;
  • 权益差异:优先派单、账期优惠、保证金减免等。
stateDiagram-v2
[*] --> 观察
观察 --> 一般 : "评估达标"
一般 --> 核心 : "连续达标"
核心 --> 战略 : "长期稳定"
战略 --> 核心 : "评分下降"
核心 --> 一般 : "评分下降"
一般 --> 观察 : "严重违规"

[此图为概念状态图,不直接映射到具体源文件]

与商品、采购订单、库存的关联设计

  • 商品与供应商:商品可关联供应商ID,支持多供应商备选;
  • 采购订单与供应商:采购订单记录供应商、商品、数量、单价、交期、到货验收等;
  • 库存与供应商:入库单关联供应商,出库/调拨记录来源;
  • 结算与对账:应付账款、发票、付款计划与供应商账户关联。
graph LR
P["商品(product)"] --> |supplier_id| S["供应商(supplier)"]
PO["采购订单(purchase_order)"] --> |supplier_id| S
PO --> |item_id| P
I["库存(inventory)"] --> |inbound_by| PO
I --> |outbound_to| O["销售订单(order)"]

[此图为概念关系图,不直接映射到具体源文件]

供应商绩效分析与采购成本优化

  • 绩效分析
    • 准时交付率、一次交验合格率、客诉率、价格波动指数;
    • 可视化看板:趋势图、排名、异常预警。
  • 成本优化
    • 多供应商比价、阶梯价/返利策略、集中采购议价;
    • 动态配额:按绩效分配采购份额,降低单一依赖风险。
  • 供应链协同
    • 预测共享、VMI(供应商管理库存)、JIT(准时制)补货;
    • 电子合同、在线对账、ASN(预发货通知)。

与现有AI供应商体系的对照

  • 现有AI供应商(provider)具备启用状态、优先级、扩展配置,适合抽象为通用供应商能力;
  • 密钥(key)与模型(model)可视为“供应商能力项”,用于资源隔离与计费;
  • 建议在 dou_supplier 中保留 provider_id 作为外部系统对接标识,便于复用现有路由与熔断机制。

依赖关系分析

  • 供应商(provider)依赖模型(model)与密钥(key),通过优先级与可用性选择最优路径;
  • 商品(product)与订单(order)是供应商能力的消费者,下单流程中涉及库存锁定与金额计算;
  • 合作伙伴(partner)为展示型实体,与商品展示页可能存在引用关系。
graph TB
Provider["供应商(provider)"] --> Model["模型(model)"]
Provider --> Key["密钥(key)"]
Product["商品(product)"] --> Order["订单(order)"]
Partner["合作伙伴(partner)"] -.-> Product

性能考虑

  • 索引设计
    • 供应商表:按 supplier_code、status、level、region 建立常用查询索引;
    • 评估日志:按 supplier_id、assess_date 建立复合索引;
    • 订单/采购单:按 supplier_id、status、created_at 建立复合索引。
  • 读写分离与缓存
    • 供应商主数据读多写少,可使用缓存加速列表与详情查询;
    • 评估结果与等级变更事件驱动更新缓存。
  • 批量处理
    • 批量导入供应商与评估数据,避免逐条插入造成锁竞争;
    • 异步任务处理供应商评级与预警通知。

故障排查指南

  • 供应商不可用
    • 检查供应商状态与优先级;确认密钥是否过期或达到失败阈值;
    • 参考AI供应商路由逻辑,验证可用密钥选择策略。
  • 下单与库存问题
    • 核对订单创建流程中的库存锁定逻辑与配置开关;
    • 检查订单金额、运费与支付方式是否正确写入。
  • 展示类数据异常
    • 检查合作伙伴表的启用状态与排序字段,确保前端展示顺序正确。

结论

  • 当前仓库未提供 dou_supplier 表定义,但AI供应商(provider)与密钥(key)体系为通用供应商能力提供了良好基础;
  • 建议以“基本信息+联系+账户+资质+等级评估+商务条款”的结构扩展 dou_supplier,并与商品、订单、库存形成闭环;
  • 通过供应商分类、评估与等级制度,结合绩效分析与成本优化策略,可实现更高效的供应链协同;
  • 在实现过程中,应充分利用现有AI供应商的路由与熔断机制,提升系统稳定性与可扩展性。

附录

  • 相关表与文件参考
    • 供应商/合作伙伴:dou_partner
    • AI供应商能力:dou_ai_provider、dou_ai_model、dou_ai_key
    • 商品与订单:dou_product、dou_order
    • 下单流程:CheckoutService
    • 供应商路由:AiGateway
添加日期:2026-10-05