SRM供应商关系管理系统需求规格说明书
版本:V2.0
日期:2025年10月21日
状态:正式发布
文档修订历史
| 版本号 | 修订日期 | 修订人 | 修订内容 | 审核人 |
|---|---|---|---|---|
| V1.0 | 2025-10-20 | 项目组 | 初始版本 | 技术部 |
| V2.0 | 2025-10-21 | 项目组 | 完善功能模块和数据库设计 | 技术部 |
1. 引言
1.1 编写目的
本文档详细描述了SRM供应商关系管理系统的功能需求、业务流程和数据库设计,旨在为系统开发、测试和维护提供依据。
1.2 项目背景
随着企业供应链管理的日益复杂,传统的供应商管理方式已无法满足现代企业的需求。本系统旨在建立一个统一的供应商管理平台,实现供应商全生命周期管理,提高采购效率,降低采购成本,加强质量控制。
1.3 术语定义
- SRM:Supplier Relationship Management,供应商关系管理
- 准入:供应商进入企业合格供应商名录的审核流程
- 询比价:向多家供应商询价并进行价格对比
- 招投标:通过公开竞争方式选择供应商
- 对账:与供应商核对账款的过程
1.4 参考资料
- 《供应链管理最佳实践》
- SAP Ariba 系统文档
- Oracle SCM 系统文档
2. 系统概述
2.1 系统目标
- 建立统一的供应商信息管理平台
- 实现供应商准入、评估、绩效管理的标准化流程
- 提高采购寻源效率,降低采购成本
- 加强供应商质量管理和风险控制
- 规范财务对账和付款流程
2.2 系统架构
┌─────────────────────────────────────────────────────────┐
│ 前端展示层 (Next.js) │
│ 数据看板 | 供应商管理 | 采购寻源 | 合同 | 质量 | 财务 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 业务逻辑层 (Node.js/Java) │
│ 业务服务 | 工作流引擎 | 权限控制 | 消息通知 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 数据访问层 (ORM) │
│ 数据库操作 | 缓存管理 | 文件存储 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ MySQL | Redis | OSS │
└─────────────────────────────────────────────────────────┘
2.3 技术栈
- 前端:Next.js 15.5.6 + React + TypeScript + Ant Design 5.27.5
- 后端:Node.js / Java Spring Boot(待实现)
- 数据库:MySQL 8.0+
- 缓存:Redis
- 文件存储:阿里云OSS / AWS S3
- 部署:Docker + Kubernetes + Nginx
3. 功能模块
系统共分为6个核心模块:
- 数据看板模块
- 供应商管理模块
- 采购寻源模块
- 合同管理模块
- 质量管理模块
- 财务管理模块
3.1 数据看板模块
3.1.1 模块描述
数据看板模块为管理人员提供实时的供应商管理关键指标监控,包括待办事项、预警信息、数据趋势分析等,帮助管理者快速了解系统运行状态和业务情况。
3.1.2 用户故事
- 作为系统管理员,我需要能够实时查看供应商总数、采购金额、待办事项等关键指标,以便快速了解系统整体运行情况。
- 作为采购经理,我需要能够查看待办事项列表,以便及时处理需要审批的业务。
- 作为财务人员,我需要能够查看预警信息,以便及时处理合同到期、资质过期等风险事项。
3.1.3 操作流程
- 用户登录系统后,默认进入数据看板页面
- 系统自动加载并展示关键指标统计数据
- 用户可以查看待办事项列表,点击进入具体业务处理
- 用户可以查看预警信息,点击查看详情或处理
- 用户可以查看采购趋势图表和供应商分布统计
- 用户可以查看最近的审批记录
3.1.4 前置条件
- 用户已登录系统并拥有"数据看板查看"权限
- 系统已有基础数据(供应商、采购订单等)
- 统计任务已正常运行并生成统计数据
3.1.5 功能细则
-
关键指标统计
- 支持实时统计供应商总数、本月采购额、待办事项数、预警信息数
- 支持显示环比增长率
- 支持点击指标卡片进入详细页面
-
待办事项管理
- 支持按优先级(高/中/低)标识待办事项
- 支持显示截止日期和状态
- 支持快速处理入口
- 支持待办事项提醒
-
预警信息管理
- 支持多种预警类型(合同到期、资质过期、价格异常等)
- 支持按严重程度分级(错误/警告/信息)
- 支持标记已读/未读
- 支持预警消息推送
-
数据趋势分析
- 支持采购金额和订单数趋势图(最近6个月)
- 支持供应商分类分布统计
- 支持图表交互(悬停显示详情)
-
审批记录
- 支持显示最近审批记录
- 支持按状态筛选(待审批/审批中/已通过/已拒绝)
- 支持快速审批入口
3.1.6 模块关系图
┌─────────────────────────────────────────────────────────┐
│ 数据看板模块 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 待办事项表 │ │ 预警信息表 │ │ 统计数据表 │
│ todo_items │ │alert_messages│ │ dashboard_ │
│ │ │ │ │ statistics │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└───────────────────┴───────────────────┘
│
关联各业务模块
┌───────────────────┼───────────────────┐
↓ ↓ ↓
供应商模块 采购模块 财务模块
3.1.7 数据表设计
dashboard_statistics (看板统计表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| stat_date | DATE | 统计日期 | NOT NULL, INDEX |
| supplier_count | INT | 供应商总数 | DEFAULT 0 |
| purchase_amount | DECIMAL(15,2) | 采购金额(元) | DEFAULT 0 |
| todo_count | INT | 待办事项数 | DEFAULT 0 |
| alert_count | INT | 预警信息数 | DEFAULT 0 |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
todo_items (待办事项表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| title | VARCHAR(200) | 待办标题 | NOT NULL |
| type | VARCHAR(50) | 类型(审批/询价/招标/合同/评估) | NOT NULL |
| priority | VARCHAR(20) | 优先级(high/medium/low) | DEFAULT 'medium' |
| status | VARCHAR(50) | 状态 | NOT NULL |
| deadline | DATE | 截止日期 | |
| assignee_id | BIGINT | 负责人ID | INDEX |
| related_id | BIGINT | 关联业务ID | |
| related_type | VARCHAR(50) | 关联业务类型 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
alert_messages (预警信息表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| type | VARCHAR(50) | 预警类型(warning/error/info) | NOT NULL |
| title | VARCHAR(200) | 预警标题 | NOT NULL |
| content | TEXT | 预警内容 | |
| related_id | BIGINT | 关联业务ID | |
| related_type | VARCHAR(50) | 关联业务类型 | |
| is_read | TINYINT | 是否已读(0/1) | DEFAULT 0 |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
3.2 供应商管理模块
3.2.1 模块描述
供应商管理模块是系统的核心模块,负责管理供应商的全生命周期,包括准入审核、注册管理、分类统计、资质管理、评估和绩效管理,确保供应商信息的完整性和准确性。
3.2.2 用户故事
- 作为采购经理,我需要能够审核供应商准入申请,以便确保只有符合要求的供应商才能进入合格供应商库。
- 作为供应商管理员,我需要能够管理供应商的基本信息和分类,以便快速查找和筛选供应商。
- 作为质量工程师,我需要能够查看供应商的资质证书和到期情况,以便及时提醒供应商更新资质。
- 作为采购主管,我需要能够评估供应商的综合能力,以便优化供应商结构。
3.2.3 操作流程
供应商准入流程:
- 供应商提交准入申请,填写企业基本信息
- 上传资质文件(营业执照、ISO认证等)
- 系统分配审核人员进行资料审核
- 审核通过后安排现场审核
- 现场审核通过后提交最终审批
- 审批通过后供应商正式入库,状态变为"激活"
供应商评估流程:
- 用户进入供应商评估页面,点击"创建评估"
- 选择待评估的供应商
- 填写评估信息(质量、交付、服务、价格四个维度的评分)
- 系统自动计算综合得分和评级
- 保存评估结果,可查看历史评估记录
3.2.4 前置条件
- 用户已登录系统并拥有"供应商管理"相关权限
- 系统已预设供应商分类、资质类型等基础数据
- 对于准入审核,需要配置审核流程和审核人员
3.2.5 功能细则
-
供应商准入审核
- 支持5步审核流程:提交申请→资料审核→现场审核→审批决策→完成入库
- 支持在线填写企业基本信息
- 支持上传资质文件(营业执照、ISO认证、产品检测报告等)
- 支持审核意见记录和历史追溯
- 支持审核进度实时跟踪
- 支持拒绝并要求补充资料
-
供应商注册管理
- 支持手动添加供应商
- 支持批量导入供应商
- 支持编辑供应商基本信息
- 支持供应商状态管理(激活/停用/黑名单)
- 支持供应商编码自动生成规则
-
供应商分类
- 支持多级分类管理
- 支持可视化分类统计(饼图、柱状图)
- 支持按分类查询供应商
- 支持分类占比分析
-
资质管理
- 支持多种资质类型管理
- 支持资质证书上传和查看
- 支持资质到期自动预警(90天内)
- 支持资质完整度统计
- 支持风险等级评估(低/中/高)
-
供应商评估
- 支持多维度评分(质量、交付、服务、价格)
- 支持自动计算综合得分
- 支持评级管理(A+/A/A-/B+/B/C)
- 支持评估历史记录查询
- 支持评估报告导出
-
供应商绩效
- 支持绩效指标统计(准时率、质量率、退货率)
- 支持绩效趋势分析
- 支持供应商排名
- 支持绩效对比分析
- 支持绩效预警
3.2.6 模块关系图
┌─────────────────────────────────────────────────────────┐
│ 供应商管理模块 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 供应商主表 │ │ 准入审核表 │ │ 分类表 │
│ suppliers │ │ onboarding │ │ categories │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
├───────────────────┬───────────────────┤
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 资质表 │ │ 评估表 │ │ 绩效表 │
│qualifications│ │ evaluations │ │ performance │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└───────────────────┴───────────────────┘
│
关联其他模块
┌───────────────────┼───────────────────┐
↓ ↓ ↓
采购寻源模块 合同管理模块 质量管理模块
3.2.7 数据表设计
suppliers (供应商主表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| supplier_code | VARCHAR(50) | 供应商编码 | UNIQUE, NOT NULL |
| company_name | VARCHAR(200) | 公司名称 | NOT NULL, INDEX |
| social_credit_code | VARCHAR(50) | 统一社会信用代码 | UNIQUE |
| legal_person | VARCHAR(100) | 法定代表人 | |
| registered_capital | DECIMAL(15,2) | 注册资本(万元) | |
| established_date | DATE | 成立日期 | |
| company_type | VARCHAR(100) | 公司类型 | |
| industry | VARCHAR(100) | 所属行业 | |
| employee_count | VARCHAR(50) | 员工人数 | |
| address | VARCHAR(500) | 注册地址 | |
| contact_person | VARCHAR(100) | 联系人 | NOT NULL |
| contact_phone | VARCHAR(50) | 联系电话 | NOT NULL |
| contact_email | VARCHAR(100) | 电子邮箱 | |
| website | VARCHAR(200) | 公司网站 | |
| category_id | BIGINT | 分类ID | INDEX |
| status | VARCHAR(50) | 状态(active/inactive/blacklist) | DEFAULT 'active' |
| rating | VARCHAR(10) | 评级(A+/A/A-/B+/B/C) | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
supplier_onboarding (供应商准入表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| onboarding_code | VARCHAR(50) | 准入编号 | UNIQUE, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX |
| company_name | VARCHAR(200) | 公司名称 | NOT NULL |
| category_id | BIGINT | 分类ID | |
| contact_person | VARCHAR(100) | 联系人 | NOT NULL |
| contact_phone | VARCHAR(50) | 联系电话 | NOT NULL |
| current_step | INT | 当前步骤(0-4) | DEFAULT 0 |
| status | VARCHAR(50) | 状态 | NOT NULL |
| reviewer_id | BIGINT | 审核人ID | |
| submit_date | DATETIME | 提交日期 | |
| approve_date | DATETIME | 审批日期 | |
| reject_reason | TEXT | 拒绝原因 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
supplier_categories (供应商分类表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| category_name | VARCHAR(100) | 分类名称 | UNIQUE, NOT NULL |
| parent_id | BIGINT | 父分类ID | DEFAULT 0 |
| sort_order | INT | 排序 | DEFAULT 0 |
| description | TEXT | 描述 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
supplier_qualifications (供应商资质表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| cert_name | VARCHAR(200) | 证书名称 | NOT NULL |
| cert_no | VARCHAR(100) | 证书编号 | |
| issue_date | DATE | 颁发日期 | |
| expire_date | DATE | 到期日期 | INDEX |
| issuing_authority | VARCHAR(200) | 颁发机构 | |
| file_url | VARCHAR(500) | 文件URL | |
| status | VARCHAR(50) | 状态(valid/expiring/expired) | DEFAULT 'valid' |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
supplier_evaluations (供应商评估表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| evaluation_code | VARCHAR(50) | 评估编号 | UNIQUE, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| evaluation_date | DATE | 评估日期 | NOT NULL |
| evaluator_id | BIGINT | 评估人ID | |
| quality_score | DECIMAL(5,2) | 质量评分(0-100) | |
| delivery_score | DECIMAL(5,2) | 交付评分(0-100) | |
| service_score | DECIMAL(5,2) | 服务评分(0-100) | |
| price_score | DECIMAL(5,2) | 价格评分(0-100) | |
| total_score | DECIMAL(5,2) | 综合得分(0-100) | |
| rating | VARCHAR(10) | 评级(A+/A/A-/B+/B/C) | |
| status | VARCHAR(50) | 状态(completed/pending) | DEFAULT 'pending' |
| remark | TEXT | 备注 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
supplier_performance (供应商绩效表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| period | VARCHAR(20) | 统计周期(YYYY-MM) | NOT NULL |
| order_count | INT | 订单数量 | DEFAULT 0 |
| on_time_rate | DECIMAL(5,2) | 准时交付率(%) | |
| quality_rate | DECIMAL(5,2) | 质量合格率(%) | |
| return_rate | DECIMAL(5,2) | 退货率(%) | |
| total_score | DECIMAL(5,2) | 综合得分 | |
| rank | INT | 排名 | |
| trend | VARCHAR(20) | 趋势(up/down/stable) | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| UNIQUE KEY | (supplier_id, period) | 唯一索引 |
3.3 采购寻源模块
3.3.1 模块描述
采购寻源模块负责管理询比价、招投标和价格管理,通过竞争机制选择最优供应商,降低采购成本,提高采购效率。
3.3.2 用户故事
- 作为采购员,我需要能够创建询价单并邀请多家供应商报价,以便通过价格对比选择最优供应商。
- 作为采购主管,我需要能够发起招标项目并管理投标过程,以便规范大额采购流程。
- 作为成本分析师,我需要能够跟踪物料价格变动趋势,以便及时发现价格异常并采取措施。
3.3.3 操作流程
询比价流程:
- 用户进入询比价管理页面,点击"创建询价单"
- 填写询价信息(标题、物料分类、数量、预期单价、截止日期等)
- 选择邀请的供应商(支持多选)
- 保存并发布询价单
- 供应商收到询价通知并提交报价
- 用户查看报价对比,选定最优供应商
- 生成采购订单或合同
招投标流程:
- 用户创建招标项目,填写项目信息和招标要求
- 发布招标公告,邀请供应商投标
- 供应商提交投标文件和报价
- 组织评标委员会进行评标(技术评分+商务评分)
- 确定中标供应商并公示
- 与中标供应商签订合同
3.3.4 前置条件
- 用户已登录系统并拥有"采购寻源"相关权限
- 系统已有合格供应商库
- 已配置物料分类和价格管理规则
3.3.5 功能细则
-
询比价管理
- 支持创建询价单,填写采购需求
- 支持邀请多家供应商报价
- 支持设置报价截止日期
- 支持查看报价对比(表格和图表)
- 支持自动标识最低价
- 支持导出报价对比表
- 支持选定供应商并生成订单
-
招投标管理
- 支持创建招标项目
- 支持5步招标流程:发布→投标→评标→中标→签约
- 支持投标企业管理
- 支持评标打分(技术分+商务分)
- 支持自动排名
- 支持中标公示
- 支持招标文件上传和下载
-
价格管理
- 支持物料价格录入和维护
- 支持价格历史记录
- 支持价格趋势分析(折线图)
- 支持价格变动预警(涨跌幅超过阈值)
- 支持供应商价格对比
- 支持价格有效期管理
3.3.6 模块关系图
┌─────────────────────────────────────────────────────────┐
│ 采购寻源模块 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 询价单表 │ │ 招标项目表 │ │ 物料价格表 │
│ inquiries │ │ biddings │ │material_prices│
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│询价供应商表 │ │招标供应商表 │ │价格历史表 │
│inquiry_ │ │bidding_ │ │price_history │
│suppliers │ │suppliers │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└───────────────────┴───────────────────┘
│
关联供应商模块
↓
┌──────────────┐
│ 供应商表 │
│ suppliers │
└──────────────┘
3.3.7 数据表设计
inquiries (询价单表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| inquiry_code | VARCHAR(50) | 询价编号 | UNIQUE, NOT NULL |
| title | VARCHAR(200) | 询价标题 | NOT NULL |
| category_id | BIGINT | 物料分类ID | INDEX |
| quantity | DECIMAL(15,2) | 采购数量 | NOT NULL |
| unit | VARCHAR(50) | 单位 | NOT NULL |
| expected_price | DECIMAL(15,2) | 预期单价 | |
| supplier_count | INT | 邀请供应商数 | DEFAULT 0 |
| quoted_count | INT | 已报价数 | DEFAULT 0 |
| lowest_price | DECIMAL(15,2) | 最低报价 | |
| status | VARCHAR(50) | 状态 | NOT NULL |
| deadline | DATETIME | 截止日期 | |
| description | TEXT | 需求说明 | |
| creator_id | BIGINT | 创建人ID | INDEX |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
inquiry_suppliers (询价供应商关联表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| inquiry_id | BIGINT | 询价单ID | INDEX, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| status | VARCHAR(50) | 状态(invited/quoted/declined) | DEFAULT 'invited' |
| unit_price | DECIMAL(15,2) | 报价单价 | |
| total_price | DECIMAL(15,2) | 报价总价 | |
| delivery_days | INT | 交货期(天) | |
| payment_terms | VARCHAR(200) | 付款条件 | |
| quote_date | DATETIME | 报价日期 | |
| remark | TEXT | 备注 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| UNIQUE KEY | (inquiry_id, supplier_id) | 唯一索引 |
biddings (招标项目表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| bidding_code | VARCHAR(50) | 招标编号 | UNIQUE, NOT NULL |
| title | VARCHAR(200) | 招标项目名称 | NOT NULL |
| category_id | BIGINT | 分类ID | INDEX |
| budget | DECIMAL(15,2) | 预算金额(元) | |
| bidder_count | INT | 投标企业数 | DEFAULT 0 |
| current_stage | INT | 当前阶段(0-4) | DEFAULT 0 |
| status | VARCHAR(50) | 状态 | NOT NULL |
| start_date | DATE | 开始日期 | |
| end_date | DATE | 结束日期 | |
| winner_id | BIGINT | 中标供应商ID | |
| description | TEXT | 项目描述 | |
| requirements | TEXT | 招标要求 | |
| creator_id | BIGINT | 创建人ID | INDEX |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
bidding_suppliers (招标供应商关联表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| bidding_id | BIGINT | 招标ID | INDEX, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| bid_amount | DECIMAL(15,2) | 投标金额 | |
| bid_date | DATETIME | 投标日期 | |
| technical_score | DECIMAL(5,2) | 技术评分 | |
| commercial_score | DECIMAL(5,2) | 商务评分 | |
| total_score | DECIMAL(5,2) | 综合评分 | |
| rank | INT | 排名 | |
| is_winner | TINYINT | 是否中标(0/1) | DEFAULT 0 |
| status | VARCHAR(50) | 状态 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| UNIQUE KEY | (bidding_id, supplier_id) | 唯一索引 |
material_prices (物料价格表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| material_code | VARCHAR(50) | 物料编码 | INDEX, NOT NULL |
| material_name | VARCHAR(200) | 物料名称 | NOT NULL |
| category_id | BIGINT | 分类ID | INDEX |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| unit | VARCHAR(50) | 单位 | NOT NULL |
| current_price | DECIMAL(15,2) | 当前价格 | NOT NULL |
| last_price | DECIMAL(15,2) | 上次价格 | |
| price_change | DECIMAL(5,2) | 价格变动(%) | |
| valid_from | DATE | 生效日期 | |
| valid_until | DATE | 失效日期 | INDEX |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
price_history (价格历史表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| material_code | VARCHAR(50) | 物料编码 | INDEX, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| price | DECIMAL(15,2) | 价格 | NOT NULL |
| change_date | DATE | 变更日期 | INDEX |
| change_reason | VARCHAR(500) | 变更原因 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
3.4 合同管理模块
3.4.1 模块描述
合同管理模块负责管理供应商合同的签署、履约跟踪和模板管理,实现合同全生命周期管理,确保合同的规范性和可追溯性。
3.4.2 用户故事
- 作为合同管理员,我需要能够创建合同并通过电子签章完成签署,以便提高签署效率并降低纸质合同成本。
- 作为采购经理,我需要能够查看合同执行进度和到期情况,以便及时处理续签事宜。
- 作为法务人员,我需要能够管理合同模板,以便标准化合同内容并提高合同创建效率。
3.4.3 操作流程
合同签署流程:
- 用户进入在线签署页面
- 填写合同基本信息(名称、供应商、类型、金额、付款方式等)
- 上传合同文件或选择合同模板
- 填写签署人信息并验证身份
- 确认签署,系统生成电子签章
- 合同状态变更为"执行中",可查看和下载
合同模板管理:
- 用户进入合同模板页面
- 点击"创建模板",填写模板信息
- 编辑模板内容,定义变量(如{{供应商名称}}、{{合同金额}})
- 保存模板,状态设为"启用"
- 创建合同时可选择模板快速生成
3.4.4 前置条件
- 用户已登录系统并拥有"合同管理"相关权限
- 系统已配置电子签章服务
- 已有合同模板或合同文件
3.4.5 功能细则
-
合同列表管理
- 支持合同信息查询和筛选
- 支持按状态筛选(待签署/执行中/已完成/已终止)
- 支持执行进度可视化(进度条)
- 支持合同到期预警(30天内)
- 支持合同金额统计
- 支持合同文件下载
-
在线签署
- 支持4步签署流程:信息填写→文件上传→在线签署→完成
- 支持合同信息在线填写
- 支持合同文件上传(PDF、Word等)
- 支持选择合同模板
- 支持电子签章模拟
- 支持签署验证码
- 支持签署记录追溯
-
合同模板管理
- 支持模板分类管理
- 支持模板内容编辑
- 支持变量定义和替换
- 支持模板预览
- 支持模板使用统计
- 支持模板启用/停用
3.4.6 模块关系图
┌─────────────────────────────────────────────────────────┐
│ 合同管理模块 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 合同表 │ │ 签署记录表 │ │ 合同模板表 │
│ contracts │ │ signing_ │ │ contract_ │
│ │ │ records │ │ templates │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
└───────────────────┬───────────────────┘
│
关联其他模块
┌───────────────────┼───────────────────┐
↓ ↓ ↓
供应商模块 采购模块 财务模块
3.4.7 数据表设计
contracts (合同表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| contract_code | VARCHAR(50) | 合同编号 | UNIQUE, NOT NULL |
| contract_name | VARCHAR(200) | 合同名称 | NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| contract_type | VARCHAR(50) | 合同类型 | NOT NULL |
| amount | DECIMAL(15,2) | 合同金额(元) | NOT NULL |
| start_date | DATE | 开始日期 | NOT NULL |
| end_date | DATE | 结束日期 | NOT NULL |
| sign_date | DATE | 签署日期 | |
| status | VARCHAR(50) | 状态 | NOT NULL |
| progress | INT | 执行进度(0-100) | DEFAULT 0 |
| payment_method | VARCHAR(100) | 付款方式 | |
| file_url | VARCHAR(500) | 合同文件URL | |
| description | TEXT | 合同描述 | |
| creator_id | BIGINT | 创建人ID | INDEX |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
contract_signing_records (合同签署记录表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| contract_id | BIGINT | 合同ID | INDEX, NOT NULL |
| signer_name | VARCHAR(100) | 签署人姓名 | NOT NULL |
| signer_position | VARCHAR(100) | 签署人职位 | |
| sign_method | VARCHAR(50) | 签署方式 | |
| sign_time | DATETIME | 签署时间 | |
| ip_address | VARCHAR(50) | IP地址 | |
| verification_code | VARCHAR(20) | 验证码 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
contract_templates (合同模板表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| template_name | VARCHAR(200) | 模板名称 | NOT NULL |
| category | VARCHAR(100) | 模板分类 | NOT NULL |
| description | TEXT | 模板描述 | |
| content | LONGTEXT | 模板内容 | |
| variables | JSON | 变量定义 | |
| usage_count | INT | 使用次数 | DEFAULT 0 |
| status | VARCHAR(50) | 状态(active/draft/disabled) | DEFAULT 'active' |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
3.5 质量管理模块
3.5.1 模块描述
质量管理模块负责管理供应商来料的质量检验,通过标准化的检验流程和数据记录,确保来料质量符合要求,降低质量风险。
3.5.2 用户故事
- 作为质检员,我需要能够创建来料检验单并记录检验结果,以便追溯质量问题。
- 作为质量工程师,我需要能够查看供应商的合格率统计,以便评估供应商质量水平。
- 作为采购主管,我需要能够查看不良品统计,以便与供应商沟通改进措施。
3.5.3 操作流程
来料检验流程:
- 供应商发货,仓库收货
- 质检员创建来料检验单,选择采购单号
- 系统自动带出供应商、物料等信息
- 填写检验信息(到货数量、抽检数量、检验标准)
- 进行检验,记录检验项目明细和结果
- 上传检验照片
- 填写合格数量、不良数量,系统自动计算合格率
- 保存检验结果,合格品入库,不良品退货或让步接收
3.5.4 前置条件
- 用户已登录系统并拥有"质量管理"相关权限
- 系统已有采购订单和收货记录
- 已配置检验标准和检验项目
3.5.5 功能细则
-
来料检验管理
- 支持创建检验单
- 支持关联采购单号
- 支持自动带出供应商和物料信息
- 支持设置检验标准(GB/T、ISO等)
- 支持记录检验项目明细
- 支持上传检验照片
- 支持自动计算合格率
- 支持检验结果判定(合格/不合格/让步接收)
-
检验统计分析
- 支持本月检验批次统计
- 支持平均合格率统计
- 支持不合格批次统计
- 支持待检验提醒
- 支持按供应商统计合格率
-
检验记录查询
- 支持按检验单号查询
- 支持按供应商查询
- 支持按检验结果筛选
- 支持检验详情查看
- 支持检验报告导出
3.5.6 模块关系图
┌─────────────────────────────────────────────────────────┐
│ 质量管理模块 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│来料检验表 │ │检验项目表 │ │检验照片表 │
│quality_ │ │inspection_ │ │inspection_ │
│inspections │ │items │ │photos │
└──────────────┘ └──────────────┘ └──────────────┘
│
└───────────────────┬───────────────────┘
│
关联其他模块
┌───────────────────┼───────────────────┐
↓ ↓ ↓
供应商模块 采购模块 绩效模块
3.5.7 数据表设计
quality_inspections (来料检验表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| inspection_no | VARCHAR(50) | 检验单号 | UNIQUE, NOT NULL |
| po_no | VARCHAR(50) | 采购单号 | INDEX |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| material_code | VARCHAR(50) | 物料编码 | INDEX |
| material_name | VARCHAR(200) | 物料名称 | NOT NULL |
| quantity | DECIMAL(15,2) | 到货数量 | NOT NULL |
| sample_qty | INT | 抽检数量 | |
| unit | VARCHAR(50) | 单位 | NOT NULL |
| inspection_date | DATE | 检验日期 | NOT NULL |
| inspector_id | BIGINT | 检验员ID | INDEX |
| standard | VARCHAR(200) | 检验标准 | |
| result | VARCHAR(50) | 检验结果(qualified/unqualified/conditional) | NOT NULL |
| qualified_qty | DECIMAL(15,2) | 合格数量 | |
| defect_qty | DECIMAL(15,2) | 不良数量 | |
| qualified_rate | DECIMAL(5,2) | 合格率(%) | |
| defect_type | VARCHAR(200) | 不良类型 | |
| remark | TEXT | 备注 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
inspection_items (检验项目明细表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| inspection_id | BIGINT | 检验单ID | INDEX, NOT NULL |
| item_name | VARCHAR(200) | 检验项目 | NOT NULL |
| standard | VARCHAR(500) | 检验标准 | |
| result | VARCHAR(50) | 检验结果(qualified/unqualified) | NOT NULL |
| measured_value | VARCHAR(200) | 实测值 | |
| remark | TEXT | 备注 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
inspection_photos (检验照片表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| inspection_id | BIGINT | 检验单ID | INDEX, NOT NULL |
| photo_url | VARCHAR(500) | 照片URL | NOT NULL |
| description | VARCHAR(500) | 描述 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
3.6 财务管理模块
3.6.1 模块描述
财务管理模块负责管理供应商对账、付款申请和发票管理,规范财务流程,确保账款准确,提高付款效率。
3.6.2 用户故事
- 作为财务人员,我需要能够生成对账单并与供应商核对,以便确保账款准确无误。
- 作为采购员,我需要能够创建付款申请并提交审批,以便及时支付供应商款项。
- 作为财务主管,我需要能够管理发票信息并进行认证,以便合规管理税务。
3.6.3 操作流程
对账流程:
- 系统按月自动生成对账单
- 财务人员确认对账单信息(订单明细、金额)
- 发送对账单给供应商确认
- 供应商确认对账单
- 财务审核通过
- 生成付款申请
付款申请流程:
- 采购员创建付款申请,选择对账单
- 填写付款金额和付款方式
- 提交部门主管审批
- 部门主管审批通过,提交财务审批
- 财务审批通过
- 财务执行付款
- 记录付款信息
发票管理流程:
- 供应商开具发票
- 财务人员录入发票信息
- 上传发票扫描件
- 进行发票认证
- 认证通过后归档
- 关联对账单和付款记录
3.6.4 前置条件
- 用户已登录系统并拥有"财务管理"相关权限
- 系统已有采购订单和收货记录
- 已配置审批流程和审批人员
- 已有供应商收款账户信息
3.6.5 功能细则
-
对账管理
- 支持按月自动生成对账单
- 支持5步对账流程
- 支持订单明细关联
- 支持已付/未付金额统计
- 支持发票金额核对
- 支持对账单导出
- 支持付款记录追溯
-
付款申请
- 支持创建付款申请
- 支持4步审批流程
- 支持多种付款方式(银行转账、承兑汇票、支票)
- 支持收款账户管理
- 支持审批意见记录
- 支持付款凭证上传
-
发票管理
- 支持发票信息录入
- 支持多种发票类型(增值税专用发票、普通发票)
- 支持发票认证
- 支持发票状态管理(待认证/已认证/异常)
- 支持发票统计分析
- 支持批量认证
- 支持发票导入
3.6.6 模块关系图
┌─────────────────────────────────────────────────────────┐
│ 财务管理模块 │
└─────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 对账单表 │ │ 付款申请表 │ │ 发票表 │
│reconciliations│ │ payments │ │ invoices │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
↓ ↓ ↓
┌──────────────┐ ┌──────────────┐ │
│对账订单明细表 │ │付款审批记录表 │ │
│reconciliation_│ │payment_ │ │
│orders │ │approvals │ │
└──────────────┘ └──────────────┘ │
│ │ │
└───────────────────┴───────────────────┘
│
关联其他模块
┌───────────────────┼───────────────────┐
↓ ↓ ↓
供应商模块 采购模块 合同模块
3.6.7 数据表设计
reconciliations (对账单表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| reconciliation_no | VARCHAR(50) | 对账单号 | UNIQUE, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| period | VARCHAR(20) | 对账期间(YYYY-MM) | NOT NULL |
| total_amount | DECIMAL(15,2) | 对账金额(元) | NOT NULL |
| paid_amount | DECIMAL(15,2) | 已付金额(元) | DEFAULT 0 |
| unpaid_amount | DECIMAL(15,2) | 未付金额(元) | |
| invoice_amount | DECIMAL(15,2) | 发票金额(元) | |
| status | VARCHAR(50) | 状态 | NOT NULL |
| confirm_date | DATE | 确认日期 | |
| remark | TEXT | 备注 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
reconciliation_orders (对账订单明细表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| reconciliation_id | BIGINT | 对账单ID | INDEX, NOT NULL |
| po_no | VARCHAR(50) | 采购单号 | INDEX |
| material_name | VARCHAR(200) | 物料名称 | |
| quantity | DECIMAL(15,2) | 数量 | |
| unit | VARCHAR(50) | 单位 | |
| unit_price | DECIMAL(15,2) | 单价 | |
| total_amount | DECIMAL(15,2) | 金额 | |
| receive_date | DATE | 收货日期 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
payments (付款申请表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| payment_no | VARCHAR(50) | 付款单号 | UNIQUE, NOT NULL |
| reconciliation_id | BIGINT | 对账单ID | INDEX |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| amount | DECIMAL(15,2) | 付款金额(元) | NOT NULL |
| payment_method | VARCHAR(50) | 付款方式 | NOT NULL |
| bank_account | VARCHAR(200) | 收款账户 | |
| status | VARCHAR(50) | 状态 | NOT NULL |
| applicant_id | BIGINT | 申请人ID | INDEX |
| apply_date | DATE | 申请日期 | |
| approver_id | BIGINT | 审批人ID | |
| approve_date | DATE | 审批日期 | |
| payment_date | DATE | 付款日期 | |
| remark | TEXT | 付款说明 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
payment_approvals (付款审批记录表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| payment_id | BIGINT | 付款单ID | INDEX, NOT NULL |
| step | INT | 审批步骤 | NOT NULL |
| approver_id | BIGINT | 审批人ID | INDEX |
| action | VARCHAR(50) | 操作(approve/reject) | |
| opinion | TEXT | 审批意见 | |
| approve_time | DATETIME | 审批时间 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
invoices (发票表)
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | BIGINT | 主键ID | PRIMARY KEY, AUTO_INCREMENT |
| invoice_no | VARCHAR(50) | 发票编号(内部) | UNIQUE, NOT NULL |
| supplier_id | BIGINT | 供应商ID | INDEX, NOT NULL |
| reconciliation_id | BIGINT | 对账单ID | INDEX |
| invoice_type | VARCHAR(100) | 发票类型 | NOT NULL |
| invoice_code | VARCHAR(50) | 发票代码 | INDEX |
| invoice_number | VARCHAR(50) | 发票号码 | INDEX |
| amount | DECIMAL(15,2) | 金额(元) | NOT NULL |
| tax_amount | DECIMAL(15,2) | 税额(元) | |
| total_amount | DECIMAL(15,2) | 价税合计(元) | NOT NULL |
| invoice_date | DATE | 开票日期 | NOT NULL |
| status | VARCHAR(50) | 状态(pending/certified/abnormal) | NOT NULL |
| cert_date | DATE | 认证日期 | |
| remark | TEXT | 备注 | |
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
| updated_at | DATETIME | 更新时间 | ON UPDATE CURRENT_TIMESTAMP |
4. 数据需求
定义支持该功能所需的核心数据实体、属性、关系、规则。
4.1 核心数据实体
系统共包含40+张数据表,分为以下几类:
-
基础数据表(7张)
- users(用户表)
- roles(角色表)
- permissions(权限表)
- role_permissions(角色权限关联表)
- operation_logs(操作日志表)
- system_config(系统配置表)
- attachments(附件表)
-
供应商管理表(6张)
- suppliers(供应商主表)
- supplier_onboarding(供应商准入表)
- supplier_categories(供应商分类表)
- supplier_qualifications(供应商资质表)
- supplier_evaluations(供应商评估表)
- supplier_performance(供应商绩效表)
-
采购寻源表(6张)
- inquiries(询价单表)
- inquiry_suppliers(询价供应商关联表)
- biddings(招标项目表)
- bidding_suppliers(招标供应商关联表)
- material_prices(物料价格表)
- price_history(价格历史表)
-
合同管理表(3张)
- contracts(合同表)
- contract_signing_records(合同签署记录表)
- contract_templates(合同模板表)
-
质量管理表(3张)
- quality_inspections(来料检验表)
- inspection_items(检验项目明细表)
- inspection_photos(检验照片表)
-
财务管理表(5张)
- reconciliations(对账单表)
- reconciliation_orders(对账订单明细表)
- payments(付款申请表)
- payment_approvals(付款审批记录表)
- invoices(发票表)
-
数据看板表(3张)
- dashboard_statistics(看板统计表)
- todo_items(待办事项表)
- alert_messages(预警信息表)
4.2 数据表详细设计
详见附录:数据库表结构设计文档
4.3 数据关系说明
4.3.1 核心实体关系
用户(users) 1:n 供应商(suppliers)
供应商(suppliers) 1:n 资质(qualifications)
供应商(suppliers) 1:n 评估(evaluations)
供应商(suppliers) 1:n 绩效(performance)
供应商(suppliers) 1:n 询价(inquiries)
供应商(suppliers) 1:n 合同(contracts)
供应商(suppliers) 1:n 对账单(reconciliations)
询价(inquiries) n:m 供应商(suppliers) -> inquiry_suppliers
招标(biddings) n:m 供应商(suppliers) -> bidding_suppliers
对账单(reconciliations) 1:n 订单明细(reconciliation_orders)
付款(payments) 1:n 审批记录(payment_approvals)
4.3.2 业务流程关系
供应商准入 -> 供应商注册 -> 供应商分类
↓
询价/招标 -> 合同签署
↓
采购订单 -> 来料检验
↓
对账单 -> 付款申请 -> 发票管理
4.4 数据规则
-
唯一性规则
- 供应商编码全局唯一
- 用户名全局唯一
- 各类业务单号全局唯一
-
完整性规则
- 供应商必须有基本信息和联系方式
- 合同必须关联供应商
- 付款申请必须关联对账单
-
一致性规则
- 对账单金额 = 订单明细金额之和
- 发票金额应与对账单金额一致
- 合格率 = 合格数量 / 到货数量 * 100%
-
业务规则
- 供应商状态为"黑名单"时不能参与询价和招标
- 资质过期的供应商需要更新资质才能继续合作
- 付款申请需要经过多级审批
- 合同到期前30天需要预警
5. 非功能性需求
5.1 性能需求
- 系统响应时间:页面加载时间 < 2秒
- 并发用户数:支持100+并发用户
- 数据库查询:单表查询 < 100ms
- 报表生成:复杂报表 < 5秒
5.2 安全需求
- 用户认证:支持用户名密码登录、SSO单点登录
- 权限控制:基于角色的访问控制(RBAC)
- 数据加密:敏感数据加密存储
- 操作审计:记录所有关键操作日志
- 数据备份:每日自动备份数据库
5.3 可用性需求
- 系统可用性:99.5%以上
- 故障恢复时间:< 1小时
- 数据备份:支持数据恢复
5.4 可维护性需求
- 代码规范:遵循团队代码规范
- 文档完整:提供完整的技术文档和用户手册
- 日志记录:完整的系统日志和错误日志
- 监控告警:系统运行状态监控和异常告警
5.5 兼容性需求
- 浏览器:Chrome 90+、Firefox 88+、Safari 14+、Edge 90+
- 分辨率:1366x768及以上
- 移动端:支持响应式布局
6. 系统接口
6.1 外部系统接口
- ERP系统:同步采购订单、库存信息
- OA系统:同步组织架构、人员信息
- 电子签章系统:调用签章服务
- 税务系统:发票验真接口
6.2 第三方服务
- 短信服务:发送验证码和通知
- 邮件服务:发送邮件通知
- 文件存储:OSS对象存储服务
- 地图服务:供应商地址定位
7. 数据字典
7.1 状态枚举值
供应商状态
active: 激活inactive: 停用blacklist: 黑名单
准入状态
pending: 待审核reviewing: 资质审核中site_audit: 现场审核中approved: 已通过rejected: 已拒绝
询价状态
draft: 草稿published: 已发布quoting: 报价中completed: 已完成cancelled: 已取消
招标状态
draft: 草稿published: 已发布bidding: 投标中evaluating: 评标中awarded: 已中标signed: 已签约
合同状态
draft: 草稿pending_sign: 待签署executing: 执行中completed: 已完成terminated: 已终止
检验结果
qualified: 合格unqualified: 不合格conditional: 让步接收
对账状态
draft: 草稿confirming: 待确认confirmed: 已确认auditing: 审核中completed: 已完成
付款状态
pending: 待审批approving: 审批中approved: 已批准paid: 已付款rejected: 已拒绝
发票状态
pending: 待认证certified: 已认证abnormal: 异常
8. 附录
8.1 数据库表结构
详见独立文档:
- 模块1-数据看板.md
- 模块2-供应商管理.md
- 模块3-采购寻源.md
- 模块4-合同管理.md
- 模块5-质量管理.md
- 模块6-财务管理.md
- 系统基础表.md
8.2 数据库设计规范
命名规范
- 表名:小写字母+下划线,复数形式(如:suppliers)
- 字段名:小写字母+下划线(如:supplier_code)
- 索引名:idx_表名_字段名
- 外键名:fk_表名_字段名
字段规范
- 主键:BIGINT AUTO_INCREMENT
- 时间:DATETIME,默认CURRENT_TIMESTAMP
- 金额:DECIMAL(15,2)
- 百分比:DECIMAL(5,2)
- 状态:VARCHAR(50),使用枚举值
- 文本:TEXT或LONGTEXT
约束规范
- 必填字段:NOT NULL
- 唯一字段:UNIQUE
- 默认值:DEFAULT
- 更新时间:ON UPDATE CURRENT_TIMESTAMP
8.3 索引策略
主要索引
- 主键索引:所有表的id字段
- 唯一索引:编号字段(如supplier_code, contract_code等)
- 普通索引:
- 外键字段(如supplier_id, user_id等)
- 状态字段(status)
- 日期字段(created_at, updated_at, deadline等)
- 查询频繁的字段
复合索引建议
- (supplier_id, period) - 供应商绩效查询
- (inquiry_id, supplier_id) - 询价供应商关联
- (material_code, supplier_id) - 物料价格查询
- (role_id, permission_id) - 角色权限查询
9. 系统扩展建议
9.1 功能扩展
- 供应商门户:供应商自助服务平台
- 移动端应用:移动审批和查询
- 报表中心:自定义报表和数据分析
- 消息通知:邮件、短信、站内信
- 工作流引擎:可配置的审批流程
- 数据导入导出:Excel批量操作
- API接口:与ERP、OA等系统集成
9.2 性能优化
-
数据库优化:
- 分库分表(按年份或业务模块)
- 读写分离
- 缓存策略(Redis)
-
查询优化:
- 合理使用索引
- 避免全表扫描
- 分页查询
-
存储优化:
- 附件存储(OSS)
- 历史数据归档
10. 总结
10.1 系统特点
本SRM系统具有以下特点:
- 功能完整:覆盖供应商全生命周期管理
- 流程规范:标准化的业务流程和审批机制
- 数据准确:完整的数据校验和一致性保证
- 易于扩展:模块化设计,便于功能扩展
- 用户友好:现代化的UI设计,良好的用户体验
10.2 系统规模
- 模块数量:6个核心模块
- 数据表数量:40+张表
- 功能点数量:50+个功能点
- 页面数量:16个主要页面
10.3 技术亮点
- 采用Next.js服务端渲染,提升性能
- 使用TypeScript增强代码可维护性
- Ant Design企业级UI组件库
- 响应式设计,支持多端访问
- 模块化架构,便于团队协作
文档版本:V2.0
最后更新:2025-10-21
维护人员:SRM项目组
审核状态:已审核
附件清单:
- 数据库表结构设计文档
- API接口文档
- 用户操作手册
- 系统部署文档
- 测试用例文档
这个命令不对,让我用Python继续添加剩余模块的数据表