2. 供应商目录管理基础:数据模型、核心字段与生命周期管理
供应商目录是采购管理平台的核心主数据资产,它不仅是供应商信息的静态存储库,更是驱动资质变更自动通知、风险预警和协同流程的基础骨架。理解供应商目录的数据模型、核心字段设计以及生命周期管理,是构建自动化通知功能的前提。
2.1 供应商目录数据模型
供应商目录的数据模型通常采用“主-子-扩展”三层结构,以平衡通用性与行业扩展性。核心模型包含以下实体:
| 实体层 | 实体名称 | 核心职责 | 示例字段 |
|---|---|---|---|
| 主实体 | 供应商主表 (Supplier) | 唯一标识一个法人实体,全局唯一 | 供应商ID、统一社会信用代码、企业名称、注册地址、状态 |
| 子实体 | 供应商资质表 (Qualification) | 存储供应商持有的各类资质证件 | 资质ID、供应商ID、资质类型、资质编号、有效期起止、附件URL |
| 扩展实体 | 供应商联系人表 (Contact) | 管理供应商对接人员信息 | 联系人ID、供应商ID、姓名、手机、邮箱、是否主联系人 |
| 扩展实体 | 供应商品类表 (Category) | 定义供应商可提供的商品/服务范围 | 品类ID、供应商ID、品类编码、授权等级、生效日期 |
架构提示: 在微服务架构中,供应商目录服务通常独立部署,通过事件总线(如 Kafka)发布“资质变更事件”,供通知服务、风控服务、采购寻源服务订阅消费。
2.2 核心字段深度解析
在供应商目录中,以下字段直接决定了资质变更自动通知的触发逻辑与准确性:
2.2.1 资质有效期(Validity Period)
资质有效期是通知功能的核心时间轴。通常设计为 start_date 和 end_date 两个日期字段,系统通过计算当前日期与 end_date 的差值,触发不同级别的通知。
- 过期前提醒(预警): 例如提前 30 天、15 天、7 天发送提醒。
- 过期当天通知: 资质到期日自动触发紧急通知。
- 过期后升级: 过期后仍未更新,自动升级通知层级(如通知采购经理、暂停供应商交易资格)。
2.2.2 资质类型(Qualification Type)
资质类型决定了通知的接收方、处理流程和紧急程度。常见的资质类型包括:
| 资质类型编码 | 资质类型名称 | 通知优先级 | 典型通知对象 |
|---|---|---|---|
| LICENSE | 营业执照 | 高 | 供应商管理员、采购经理 |
| ISO_QUALITY | ISO 质量体系认证 | 中 | 供应商管理员、品类经理 |
| PROD_CERT | 产品安全认证(如 3C、CE) | 高 | 品类经理、质量工程师 |
| ENV_LICENSE | 环保许可证 | 中 | 供应商管理员、EHS 部门 |
| FIN_REPORT | 年度财务审计报告 | 低 | 财务部、供应商管理员 |
设计建议: 在数据模型中为资质类型增加“通知模板ID”字段,实现不同类型资质使用不同的通知文案和渠道(邮件、短信、站内信)。
2.3 供应商目录生命周期管理
供应商目录的生命周期管理(Lifecycle Management)定义了供应商从引入到退出的完整状态流转,每个状态变更都可能触发资质校验与通知。
2.4 生命周期各阶段的通知触发点
结合生命周期状态,资质变更自动通知的触发点可以归纳为以下关键事件:
- 准入审核阶段: 供应商提交资质后,系统自动校验资质完整性,若缺少关键资质(如营业执照),立即通知供应商补充。
- 合格供应商阶段: 系统每日扫描资质有效期,对即将过期的资质发送预警通知;资质更新后,自动通知采购方进行复核。
- 暂停交易阶段: 因资质过期触发暂停后,自动通知供应商管理员和供应商联系人,告知暂停原因及恢复条件。
- 退出/黑名单阶段: 供应商退出后,系统自动归档所有资质记录,并通知相关采购人员清理关联数据。
常见陷阱: 不要将资质有效期仅设计为单个日期字段。必须区分“生效日期”和“失效日期”,否则无法处理资质提前续期、延期变更等场景,导致通知逻辑混乱。
2.5 数据模型核心代码示例
以下是一个简化的供应商资质表 DDL 示例,展示了核心字段的设计:
CREATE TABLE supplier_qualification (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
supplier_id BIGINT NOT NULL COMMENT '供应商ID',
qual_type VARCHAR(50) NOT NULL COMMENT '资质类型编码',
qual_number VARCHAR(100) COMMENT '资质证书编号',
start_date DATE NOT NULL COMMENT '资质生效日期',
end_date DATE NOT NULL COMMENT '资质失效日期',
attachment_url VARCHAR(500) COMMENT '资质文件附件URL',
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态: 1-有效, 2-即将过期, 3-已过期, 4-已作废',
notify_template_id BIGINT COMMENT '关联的通知模板ID',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_supplier_type (supplier_id, qual_type),
INDEX idx_end_date (end_date),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商资质表';
索引优化建议: 在
end_date 和 status 字段上建立联合索引,可以大幅提升每日资质过期扫描任务的查询性能,避免全表扫描。
通过以上数据模型、核心字段与生命周期管理的设计,采购管理平台能够精准识别“何时、何资质、通知谁”,为后续的自动通知功能奠定坚实的数据基础。