Files
my-mom-system/prd/db/erp数据库设计-数据字典.md
panchengyong c28ada5050 commit content
2026-03-06 02:02:59 +08:00

981 lines
45 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ERP系统数据库设计 - 数据字典
> 版本: 1.0.0
> 创建日期: 2026-01-25
> 数据库: MySQL 8.0+
> 字符集: utf8mb4
---
## 目录
1. [概述](#1-概述)
2. [命名规范](#2-命名规范)
3. [公共字段说明](#3-公共字段说明)
4. [基础数据模块](#4-基础数据模块)
5. [仓库管理模块](#5-仓库管理模块)
6. [销售管理模块](#6-销售管理模块)
7. [采购管理模块](#7-采购管理模块)
8. [生产计划模块](#8-生产计划模块)
9. [枚举值定义](#9-枚举值定义)
10. [索引设计规范](#10-索引设计规范)
11. [ER图](#11-er图)
---
## 1. 概述
### 1.1 文档目的
本文档定义ERP系统的数据库表结构、字段说明、枚举值和关联关系为后端API开发和系统维护提供数据模型支持。
### 1.2 涵盖模块
| 模块 | 表前缀 | API前缀 | 说明 | 本文档状态 |
|------|--------|---------|------|-----------|
| 系统管理 | erp_sys_ | /system | 租户、用户、部门等 | ✅ 已收录 |
| 基础数据 | erp_md_ | /md | 物料、BOM、单位等 | ✅ 已收录 |
| 仓库管理 | erp_wm_ | /wm | 仓库、库存、出入库等 | ✅ 已收录 |
| 销售管理 | erp_sl_ | /sl | 客户、订单、发货等 | ✅ 已收录 |
| 采购管理 | erp_po_ | /po | 供应商、采购订单等 | ✅ 已收录 |
| 生产计划 | erp_mp_ | /mp | 生产计划、物料清单等 | ✅ 已收录 |
| 生产管理 | erp_prs_ | /prs | 生产订单、领料、完工、入库等 | ⚠️ 见补充文档 |
| 研发管理 | erp_rd_ | /rd | EBOM、样品配方、孪生物料等 | ⚠️ 见补充文档 |
| 委外管理 | erp_pu_ | /pu | 委外订单、发料、入库等 | ⚠️ 见补充文档 |
| 财务管理 | erp_fd_ | /fd | 凭证、应收应付、成本核算等 | ⚠️ 见补充文档 |
> ⚠️ 标记的模块详见 `erp数据库设计-Swagger补充模块.md`
### 1.3 表清单总览
| 序号 | 表名 | 中文名 | 模块 |
|------|------|--------|------|
| 1 | sys_tenant | 租户表 | 系统管理 |
| 2 | erp_md_item_type | 物料分类表 | 基础数据 |
| 3 | erp_md_item | 物料档案表 | 基础数据 |
| 4 | erp_md_unit | 计量单位表 | 基础数据 |
| 5 | erp_md_bom | BOM表头 | 基础数据 |
| 6 | erp_md_bom_line | BOM明细表 | 基础数据 |
| 7 | erp_wm_warehouse | 仓库表 | 仓库管理 |
| 8 | erp_wm_location | 库区表 | 仓库管理 |
| 9 | erp_wm_area | 库位表 | 仓库管理 |
| 10 | erp_wm_stock | 库存表 | 仓库管理 |
| 11 | erp_wm_item_recpt | 入库单表头 | 仓库管理 |
| 12 | erp_wm_item_recpt_line | 入库单明细 | 仓库管理 |
| 13 | erp_wm_issue | 出库单表头 | 仓库管理 |
| 14 | erp_wm_issue_line | 出库单明细 | 仓库管理 |
| 15 | erp_sl_contract | 销售合同表头 | 销售管理 |
| 17 | erp_sl_contract_line | 销售合同明细 | 销售管理 |
| 18 | erp_sl_order | 销售订单表头 | 销售管理 |
| 19 | erp_sl_order_line | 销售订单明细 | 销售管理 |
| 20 | erp_sl_deliver | 发货单表头 | 销售管理 |
| 21 | erp_sl_deliver_line | 发货单明细 | 销售管理 |
| 22 | erp_sl_invoice | 销售发票表头 | 销售管理 |
| 23 | erp_sl_invoice_line | 销售发票明细 | 销售管理 |
| 24 | erp_sl_saleback | 销售退货单表头 | 销售管理 |
| 25 | erp_sl_saleback_line | 销售退货单明细 | 销售管理 |
| 26 | erp_po_supplier | 供应商档案表 | 采购管理 |
| 27 | erp_po_order | 采购订单表头 | 采购管理 |
| 28 | erp_po_order_line | 采购订单明细 | 采购管理 |
| 29 | erp_po_checkin | 采购到货单表头 | 采购管理 |
| 30 | erp_po_checkin_line | 采购到货单明细 | 采购管理 |
| 31 | erp_po_invoice | 采购发票表头 | 采购管理 |
| 32 | erp_po_invoice_line | 采购发票明细 | 采购管理 |
| 33 | erp_po_reject | 采购退货单表头 | 采购管理 |
| 34 | erp_po_reject_line | 采购退货单明细 | 采购管理 |
| 35 | erp_mp_plan | 生产计划单表头 | 生产计划 |
| 36 | erp_mp_plan_line | 生产计划单明细 | 生产计划 |
| 37 | erp_mp_mbom | 物料清单表头 | 生产计划 |
| 38 | erp_mp_mbom_line | 物料清单明细 | 生产计划 |
| 39 | erp_mp_purchase | 采购计划单表 | 生产计划 |
| 40 | erp_mp_parts | 零部件订单表 | 生产计划 |
| | **以下为Swagger API发现的待补充表** | | |
| 41 | erp_prs_order | 生产订单表头 | 生产管理 |
| 42 | erp_prs_order_line | 生产订单明细 | 生产管理 |
| 43 | erp_prs_pick | 生产领料单表头 | 生产管理 |
| 44 | erp_prs_product | 生产完工单表头 | 生产管理 |
| 45 | erp_prs_checkin | 生产入库单表头 | 生产管理 |
| 46 | erp_prs_instruct | 生产指令单表头 | 生产管理 |
| 47 | erp_prs_yield | 生产报工单表头 | 生产管理 |
| 48 | erp_prs_beltline | 生产线 | 生产管理 |
| 49 | erp_prs_team | 班组 | 生产管理 |
| 50 | erp_prs_worker | 工人 | 生产管理 |
| 51 | erp_prs_jobs | 工种 | 生产管理 |
| 52 | erp_prs_operate_section | 标准工序段 | 生产管理 |
| 53 | erp_prs_process_route | 工艺路线 | 生产管理 |
| 54 | erp_prs_equipment | 设备 | 生产管理 |
| 55 | erp_rd_ebom | EBOM表头 | 研发管理 |
| 56 | erp_rd_ebom_line | EBOM明细 | 研发管理 |
| 57 | erp_rd_sample | 样品配方表头 | 研发管理 |
| 58 | erp_rd_sample_line | 样品配方明细 | 研发管理 |
| 59 | erp_rd_twin | 孪生物料表头 | 研发管理 |
| 60 | erp_rd_twin_line | 孪生物料明细 | 研发管理 |
| 61 | erp_rd_tret | 放量表 | 研发管理 |
| 62 | erp_rd_setting | 研发设置 | 研发管理 |
| 63 | erp_pu_supplier | 委外商档案 | 委外管理 |
| 64 | erp_pu_order | 委外订单表头 | 委外管理 |
| 65 | erp_pu_order_line | 委外订单明细 | 委外管理 |
| 66 | erp_pu_product | 委外到货单表头 | 委外管理 |
| 67 | erp_pu_checkin | 委外入库单表头 | 委外管理 |
| 68 | erp_pu_pick | 委外发料单表头 | 委外管理 |
| 69 | erp_pu_unpick | 委外退料单表头 | 委外管理 |
| 70 | erp_pu_fapiao | 委外发票表头 | 委外管理 |
---
## 2. 命名规范
### 2.1 表命名规范
| 规则 | 说明 | 示例 |
|------|------|------|
| 前缀 | erp_模块缩写_业务名 | erp_sl_order (销售订单) |
| 主从表 | 主表不加后缀从表加_line | erp_sl_order, erp_sl_order_line |
| 小写 | 全部小写,下划线分隔 | erp_po_order_line |
### 2.2 字段命名规范
| 规则 | 说明 | 示例 |
|------|------|------|
| 主键 | 业务名_id | order_id, item_id |
| 编码 | 业务名_code | order_code, item_code |
| 名称 | 业务名_name | order_name, item_name |
| 外键 | 关联表业务名_id | client_id, supplier_id |
| 冗余字段 | 关联表业务名_code/name | client_code, client_name |
| 标志 | xxx_flag | del_flag, enable_flag |
| 数量 | quantity, xxx_qty | quantity, delivered_qty |
| 金额 | amount, xxx_amount | amount, total_amount |
### 2.3 数据类型规范
| 用途 | 数据类型 | 说明 |
|------|----------|------|
| 主键 | bigint | 自增长ID |
| 编码 | varchar(32) | 业务编码 |
| 名称 | varchar(100) | 短名称 |
| 描述 | varchar(500) | 长文本 |
| 日期 | date | 纯日期 |
| 时间 | datetime | 日期时间 |
| 数量 | decimal(18,4) | 数量类 |
| 金额 | decimal(18,2) | 金额类 |
| 单价 | decimal(18,4) | 单价类 |
| 比例 | decimal(5,2) | 百分比 |
| 标志 | char(1) | Y/N, 0/1 |
| 状态 | varchar(20) | 状态枚举 |
---
## 3. 公共字段说明
### 3.1 必备公共字段
所有业务表必须包含以下字段:
| 字段名 | 类型 | 说明 |
|--------|------|------|
| tenant_id | varchar(20) | 租户ID (多租户隔离) |
| del_flag | char(1) | 删除标志 (0存在 1删除) |
| create_by | varchar(64) | 创建者 |
| create_time | datetime | 创建时间 |
| update_by | varchar(64) | 更新者 |
| update_time | datetime | 更新时间 |
### 3.2 单据类公共字段
单据类表通常包含以下字段:
| 字段名 | 类型 | 说明 |
|--------|------|------|
| status | varchar(20) | 单据状态 |
| operator_id | bigint | 操作员ID |
| operator_name | varchar(50) | 操作员名称 |
| approver_id | bigint | 审核员ID |
| approver_name | varchar(50) | 审核员名称 |
| approve_date | datetime | 审核日期 |
| remark | varchar(500) | 备注 |
---
## 4. 基础数据模块
### 4.1 物料分类表 (erp_md_item_type)
> API路径: `/md/itemtype`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| item_type_id | bigint | - | N | AUTO | 分类ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| item_type_code | varchar | 32 | N | - | 分类编码 |
| item_type_name | varchar | 50 | N | - | 分类名称 |
| parent_type_id | bigint | - | Y | NULL | 父分类ID |
| ancestors | varchar | 500 | Y | NULL | 祖级列表 |
| order_num | int | - | Y | 0 | 排序号 |
| enable_flag | char | 1 | N | 'Y' | 启用状态 |
| del_flag | char | 1 | N | '0' | 删除标志 |
| create_by | varchar | 64 | Y | NULL | 创建者 |
| create_time | datetime | - | Y | NULL | 创建时间 |
| update_by | varchar | 64 | Y | NULL | 更新者 |
| update_time | datetime | - | Y | NULL | 更新时间 |
**索引设计:**
| 索引名 | 字段 | 类型 |
|--------|------|------|
| uk_item_type_code | item_type_code, tenant_id | UNIQUE |
| idx_item_type_parent | parent_type_id | INDEX |
| idx_item_type_tenant | tenant_id | INDEX |
---
### 4.2 物料档案表 (erp_md_item)
> API路径: `/md/item`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| item_id | bigint | - | N | AUTO | 物料ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| item_code | varchar | 32 | N | - | 物料编码 |
| item_name | varchar | 100 | N | - | 物料名称 |
| specification | varchar | 200 | Y | NULL | 规格型号 |
| unit_of_measure | varchar | 20 | Y | NULL | 主计量单位 |
| item_type_id | bigint | - | Y | NULL | 物料分类ID |
| item_type_code | varchar | 32 | Y | NULL | 物料分类编码 |
| item_type_name | varchar | 50 | Y | NULL | 物料分类名称 |
| item_sub_type_code | varchar | 32 | Y | NULL | 二级分类编码 |
| item_sub_type_name | varchar | 50 | Y | NULL | 二级分类名称 |
| item_or_product | varchar | 20 | Y | 'ITEM' | 物料/产品 |
| safe_stock_flag | char | 1 | Y | 'N' | 启用安全库存 |
| min_stock | decimal | 18,4 | Y | 0 | 最小库存 |
| max_stock | decimal | 18,4 | Y | 0 | 最大库存 |
| default_warehouse_id | bigint | - | Y | NULL | 默认仓库ID |
| default_warehouse_name | varchar | 50 | Y | NULL | 默认仓库名称 |
| weight | decimal | 18,6 | Y | NULL | 重量(kg) |
| volume | decimal | 18,6 | Y | NULL | 体积(m³) |
| enable_flag | char | 1 | N | 'Y' | 启用状态 |
| remark | varchar | 500 | Y | NULL | 备注 |
| del_flag | char | 1 | N | '0' | 删除标志 |
| create_by | varchar | 64 | Y | NULL | 创建者 |
| create_time | datetime | - | Y | NULL | 创建时间 |
| update_by | varchar | 64 | Y | NULL | 更新者 |
| update_time | datetime | - | Y | NULL | 更新时间 |
**索引设计:**
| 索引名 | 字段 | 类型 |
|--------|------|------|
| uk_item_code | item_code, tenant_id | UNIQUE |
| idx_item_type | item_type_id | INDEX |
| idx_item_name | item_name | INDEX |
| idx_item_tenant | tenant_id | INDEX |
---
### 4.3 BOM表头 (erp_md_bom)
> API路径: `/md/bom`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| bom_id | bigint | - | N | AUTO | BOM ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| bom_code | varchar | 32 | N | - | BOM编码 |
| bom_name | varchar | 100 | Y | NULL | BOM名称 |
| item_id | bigint | - | N | - | 产品物料ID |
| item_code | varchar | 32 | N | - | 产品物料编码 |
| item_name | varchar | 100 | N | - | 产品物料名称 |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| base_qty | decimal | 18,4 | N | 1 | 基本数量 |
| version | varchar | 20 | Y | NULL | 版本号 |
| version_desc | varchar | 200 | Y | NULL | 版本说明 |
| status | varchar | 20 | N | 'DRAFT' | 状态 |
| enable_flag | char | 1 | N | 'Y' | 启用状态 |
| remark | varchar | 500 | Y | NULL | 备注 |
| del_flag | char | 1 | N | '0' | 删除标志 |
### 4.4 BOM明细表 (erp_md_bom_line)
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| line_id | bigint | - | N | AUTO | 明细ID (主键) |
| bom_id | bigint | - | N | - | BOM ID (外键) |
| line_no | int | - | N | - | 行号 |
| item_id | bigint | - | N | - | 子件物料ID |
| item_code | varchar | 32 | N | - | 子件物料编码 |
| item_name | varchar | 100 | N | - | 子件物料名称 |
| specification | varchar | 200 | Y | NULL | 规格型号 |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| base_qty | decimal | 18,6 | N | 1 | 基本用量 |
| loss_rate | decimal | 5,2 | Y | 0 | 损耗率(%) |
| supply_type | varchar | 20 | Y | 'PURCHASE' | 供应方式 |
| remark | varchar | 200 | Y | NULL | 备注 |
| del_flag | char | 1 | N | '0' | 删除标志 |
| tenant_id | varchar | 20 | N | - | 租户ID |
---
## 5. 仓库管理模块
### 5.1 仓库表 (erp_wm_warehouse)
> API路径: `/wm/warehouse`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| warehouse_id | bigint | - | N | AUTO | 仓库ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| warehouse_code | varchar | 32 | N | - | 仓库编码 |
| warehouse_name | varchar | 50 | N | - | 仓库名称 |
| warehouse_type | varchar | 20 | Y | NULL | 仓库类型 |
| location | varchar | 100 | Y | NULL | 位置 |
| area | decimal | 10,2 | Y | NULL | 面积(m²) |
| charge | varchar | 50 | Y | NULL | 负责人 |
| charge_tel | varchar | 20 | Y | NULL | 负责人电话 |
| enable_flag | char | 1 | N | 'Y' | 启用状态 |
| remark | varchar | 500 | Y | NULL | 备注 |
| del_flag | char | 1 | N | '0' | 删除标志 |
### 5.2 库存表 (erp_wm_stock)
> API路径: `/wm/stock`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| stock_id | bigint | - | N | AUTO | 库存ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| item_id | bigint | - | N | - | 物料ID |
| item_code | varchar | 32 | Y | NULL | 物料编码 |
| item_name | varchar | 100 | Y | NULL | 物料名称 |
| specification | varchar | 200 | Y | NULL | 规格型号 |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| warehouse_id | bigint | - | N | - | 仓库ID |
| warehouse_code | varchar | 32 | Y | NULL | 仓库编码 |
| warehouse_name | varchar | 50 | Y | NULL | 仓库名称 |
| location_id | bigint | - | Y | NULL | 库区ID |
| area_id | bigint | - | Y | NULL | 库位ID |
| batch_no | varchar | 50 | Y | NULL | 批次号 |
| quantity_on_hand | decimal | 18,4 | N | 0 | 在库数量 |
| quantity_locked | decimal | 18,4 | N | 0 | 锁定数量 |
| quantity_available | decimal | 18,4 | N | 0 | 可用数量 |
| unit_cost | decimal | 18,4 | Y | 0 | 单位成本 |
| expire_date | date | - | Y | NULL | 有效期 |
| update_time | datetime | - | Y | NULL | 更新时间 |
**业务规则:**
- `quantity_available = quantity_on_hand - quantity_locked`
- 库存更新时自动计算可用数量
---
## 6. 销售管理模块
> 说明: 客户档案表使用 md_client基础数据模块已合并原 erp_sl_client 的所有字段
### 6.1 销售订单表头 (erp_sl_order)
> API路径: `/sl/order`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| order_id | bigint | - | N | AUTO | 订单ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| order_code | varchar | 32 | N | - | 订单编码 |
| order_name | varchar | 100 | Y | NULL | 订单名称 |
| order_date | date | - | N | - | 订单日期 |
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
| business_status | varchar | 20 | Y | 'NORMAL' | 业务状态 |
| order_type | varchar | 20 | Y | NULL | 订单类型 |
| contract_id | bigint | - | Y | NULL | 合同ID |
| contract_code | varchar | 32 | Y | NULL | 合同编码 |
| client_id | bigint | - | N | - | 客户ID |
| client_code | varchar | 32 | Y | NULL | 客户编码 |
| client_name | varchar | 100 | Y | NULL | 客户名称 |
| sales_user_id | bigint | - | Y | NULL | 销售员ID |
| sales_user_name | varchar | 50 | Y | NULL | 销售员名称 |
| dept_id | bigint | - | Y | NULL | 部门ID |
| dept_name | varchar | 50 | Y | NULL | 部门名称 |
| delivery_date | date | - | Y | NULL | 交货日期 |
| delivery_address | varchar | 200 | Y | NULL | 收货地址 |
| total_quantity | decimal | 18,4 | Y | 0 | 总数量 |
| total_amount | decimal | 18,2 | Y | 0 | 总金额 |
| delivered_quantity | decimal | 18,4 | Y | 0 | 已发货数量 |
| delivered_amount | decimal | 18,2 | Y | 0 | 已发货金额 |
| remark | varchar | 500 | Y | NULL | 备注 |
| operator_id | bigint | - | Y | NULL | 操作员ID |
| operator_name | varchar | 50 | Y | NULL | 操作员名称 |
| approver_id | bigint | - | Y | NULL | 审核员ID |
| approver_name | varchar | 50 | Y | NULL | 审核员名称 |
| approve_date | datetime | - | Y | NULL | 审核日期 |
| del_flag | char | 1 | N | '0' | 删除标志 |
### 6.2 销售订单明细 (erp_sl_order_line)
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| line_id | bigint | - | N | AUTO | 明细ID (主键) |
| order_id | bigint | - | N | - | 订单ID (外键) |
| order_code | varchar | 32 | N | - | 订单编码 |
| line_no | int | - | N | - | 行号 |
| track_code | varchar | 32 | Y | NULL | 跟单编号 |
| contract_line_id | bigint | - | Y | NULL | 合同明细ID |
| item_id | bigint | - | N | - | 物料ID |
| item_code | varchar | 32 | N | - | 物料编码 |
| item_name | varchar | 100 | N | - | 物料名称 |
| specification | varchar | 200 | Y | NULL | 规格型号 |
| unit_id | bigint | - | Y | NULL | 计量单位ID |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| quantity | decimal | 18,4 | N | 0 | 订单数量 |
| unit_price | decimal | 18,4 | Y | 0 | 单价 |
| amount | decimal | 18,2 | Y | 0 | 金额 |
| delivered_qty | decimal | 18,4 | Y | 0 | 已发货数量 |
| quality_req | varchar | 200 | Y | NULL | 质量要求 |
| remark | varchar | 200 | Y | NULL | 备注 |
| del_flag | char | 1 | N | '0' | 删除标志 |
| tenant_id | varchar | 20 | N | - | 租户ID |
### 6.4 发货单表头 (erp_sl_deliver)
> API路径: `/sl/deliver`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| deliver_id | bigint | - | N | AUTO | 发货单ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| deliver_code | varchar | 32 | N | - | 发货单编码 |
| deliver_name | varchar | 100 | Y | NULL | 发货单名称 |
| deliver_date | date | - | N | - | 发货日期 |
| status | varchar | 20 | N | 'DRAFT' | 状态 |
| order_id | bigint | - | Y | NULL | 销售订单ID |
| order_code | varchar | 32 | Y | NULL | 销售订单编码 |
| client_id | bigint | - | N | - | 客户ID |
| client_code | varchar | 32 | Y | NULL | 客户编码 |
| client_name | varchar | 100 | Y | NULL | 客户名称 |
| warehouse_id | bigint | - | Y | NULL | 发货仓库ID |
| warehouse_name | varchar | 50 | Y | NULL | 仓库名称 |
| delivery_address | varchar | 200 | Y | NULL | 收货地址 |
| total_quantity | decimal | 18,4 | Y | 0 | 总数量 |
| total_amount | decimal | 18,2 | Y | 0 | 总金额 |
| remark | varchar | 500 | Y | NULL | 备注 |
---
## 7. 采购管理模块
### 7.1 供应商档案表 (erp_po_supplier)
> API路径: `/po/supplier`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| supplier_id | bigint | - | N | AUTO | 供应商ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| supplier_code | varchar | 32 | N | - | 供应商编码 |
| supplier_name | varchar | 100 | N | - | 供应商名称 |
| supplier_alias | varchar | 100 | Y | NULL | 供应商别名 |
| supplier_nick | varchar | 50 | Y | NULL | 供应商简称 |
| supplier_type | varchar | 20 | Y | NULL | 供应商分类 |
| supplier_level | varchar | 10 | Y | 'B' | 供应商等级(A/B/C/D) |
| province | varchar | 50 | Y | NULL | 省份 |
| city | varchar | 50 | Y | NULL | 城市 |
| address | varchar | 200 | Y | NULL | 公司地址 |
| zip_code | varchar | 10 | Y | NULL | 邮编 |
| tel | varchar | 20 | Y | NULL | 电话 |
| fax | varchar | 20 | Y | NULL | 传真 |
| email | varchar | 100 | Y | NULL | 邮箱 |
| website | varchar | 200 | Y | NULL | 网址 |
| contact1 | varchar | 50 | Y | NULL | 业务联系人 |
| contact1_tel | varchar | 20 | Y | NULL | 业务联系人电话 |
| contact2 | varchar | 50 | Y | NULL | 财务联系人 |
| contact2_tel | varchar | 20 | Y | NULL | 财务联系人电话 |
| bank_name | varchar | 100 | Y | NULL | 开户银行 |
| bank_account | varchar | 30 | Y | NULL | 银行账号 |
| bank_address | varchar | 200 | Y | NULL | 开票地址电话 |
| tax_no | varchar | 30 | Y | NULL | 税号 |
| supply_items | varchar | 500 | Y | NULL | 供应料品 |
| enable_flag | char | 1 | N | 'Y' | 启用状态 |
| remark | varchar | 500 | Y | NULL | 备注 |
| del_flag | char | 1 | N | '0' | 删除标志 |
### 7.2 采购订单表头 (erp_po_order)
> API路径: `/po/order`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| order_id | bigint | - | N | AUTO | 订单ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| order_code | varchar | 32 | N | - | 订单编码 |
| order_date | date | - | N | - | 订单日期 |
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
| business_status | varchar | 20 | Y | 'NORMAL' | 业务状态 |
| business_type | varchar | 20 | Y | NULL | 业务类型 |
| order_type | varchar | 20 | Y | NULL | 单据类型 |
| material_need | varchar | 20 | Y | NULL | 用料需求 |
| supplier_id | bigint | - | Y | NULL | 供应商ID |
| supplier_code | varchar | 32 | Y | NULL | 供应商编码 |
| supplier_name | varchar | 100 | Y | NULL | 供应商名称 |
| dept_id | bigint | - | Y | NULL | 采购部门ID |
| dept_name | varchar | 50 | Y | NULL | 采购部门名称 |
| user_id | bigint | - | Y | NULL | 采购人员ID |
| user_name | varchar | 50 | Y | NULL | 采购人员名称 |
| delivery_date | date | - | Y | NULL | 到货日期 |
| contract_no | varchar | 50 | Y | NULL | 合同号 |
| contract_file | varchar | 500 | Y | NULL | 合同附件 |
| total_quantity | decimal | 18,4 | Y | 0 | 总数量 |
| total_amount | decimal | 18,2 | Y | 0 | 总金额 |
| arrived_quantity | decimal | 18,4 | Y | 0 | 已到货数量 |
| remark | varchar | 500 | Y | NULL | 备注 |
### 7.3 采购订单明细 (erp_po_order_line)
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| line_id | bigint | - | N | AUTO | 明细ID (主键) |
| order_id | bigint | - | N | - | 订单ID (外键) |
| order_code | varchar | 32 | N | - | 订单编码 |
| line_no | int | - | N | - | 行号 |
| track_code | varchar | 32 | Y | NULL | 跟单编号 |
| plan_code | varchar | 32 | Y | NULL | 计划单号 |
| plan_line_id | bigint | - | Y | NULL | 计划明细ID |
| item_id | bigint | - | N | - | 物料ID |
| item_code | varchar | 32 | N | - | 物料编码 |
| item_name | varchar | 100 | N | - | 物料名称 |
| specification | varchar | 200 | Y | NULL | 型号规格 |
| unit_id | bigint | - | Y | NULL | 计量单位ID |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| need_date | date | - | Y | NULL | 需求日期 |
| quantity | decimal | 18,4 | N | 0 | 采购数量 |
| unit_price | decimal | 18,4 | Y | 0 | 采购单价 |
| amount | decimal | 18,2 | Y | 0 | 金额 |
| arrived_quantity | decimal | 18,4 | Y | 0 | 已到货数量 |
| remark | varchar | 200 | Y | NULL | 采购说明 |
| del_flag | char | 1 | N | '0' | 删除标志 |
| tenant_id | varchar | 20 | N | - | 租户ID |
---
## 8. 生产计划模块
### 8.1 生产计划单表头 (erp_mp_plan)
> API路径: `/mp/plan/order`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| plan_id | bigint | - | N | AUTO | 计划ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| plan_code | varchar | 32 | N | - | 计划单编码 |
| plan_date | date | - | N | - | 计划日期 |
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
| business_status | varchar | 20 | Y | 'NORMAL' | 业务状态 |
| business_type | varchar | 20 | Y | NULL | 业务类型 |
| work_type | int | - | N | 0 | 工作类型 |
| sales_order_id | bigint | - | Y | NULL | 销售订单ID |
| sales_order_code | varchar | 32 | Y | NULL | 销售订单编码 |
| sales_user_id | bigint | - | Y | NULL | 销售员ID |
| sales_user_name | varchar | 50 | Y | NULL | 销售员名称 |
| delivery_date | date | - | Y | NULL | 订单交期 |
| bom_id | bigint | - | Y | NULL | BOM ID |
| bom_version | varchar | 20 | Y | NULL | BOM版本号 |
| bom_desc | varchar | 200 | Y | NULL | BOM版本说明 |
| total_quantity | decimal | 18,4 | Y | 0 | 生产总量 |
| remark | varchar | 500 | Y | NULL | 备注 |
### 8.2 物料清单表头 (erp_mp_mbom)
> API路径: `/mp/plan/mbom`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| mbom_id | bigint | - | N | AUTO | 物料清单ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| mbom_code | varchar | 32 | N | - | 物料清单编码 |
| mbom_date | date | - | N | - | 单据日期 |
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
| business_type | varchar | 20 | Y | NULL | 业务类型 |
| issue_status | varchar | 20 | Y | NULL | 下发状态 |
| plan_id | bigint | - | N | - | 生产计划ID |
| plan_code | varchar | 32 | N | - | 生产计划编码 |
| sales_order_id | bigint | - | Y | NULL | 销售订单ID |
| sales_order_code | varchar | 32 | Y | NULL | 销售订单编码 |
| delivery_date | date | - | Y | NULL | 订单交期 |
| item_id | bigint | - | N | - | 产品物料ID |
| item_code | varchar | 32 | N | - | 产品物料编码 |
| item_name | varchar | 100 | N | - | 产品物料名称 |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| supply_type | varchar | 20 | Y | NULL | 供应方式 |
| quantity | decimal | 18,4 | N | 0 | 生产数量 |
| workshop_id | bigint | - | Y | NULL | 下发车间ID |
| workshop_name | varchar | 50 | Y | NULL | 下发车间名称 |
| remark | varchar | 500 | Y | NULL | 备注 |
### 8.3 采购计划单表 (erp_mp_purchase)
> API路径: `/mp/plan/purchase`
| 字段名 | 类型 | 长度 | 允许空 | 默认值 | 说明 |
|--------|------|------|--------|--------|------|
| purchase_id | bigint | - | N | AUTO | 采购计划ID (主键) |
| tenant_id | varchar | 20 | N | - | 租户ID |
| purchase_code | varchar | 32 | N | - | 采购计划编码 |
| purchase_date | date | - | N | - | 计划日期 |
| status | varchar | 20 | N | 'DRAFT' | 单据状态 |
| need_type | int | - | N | 0 | 需求方式 |
| plan_id | bigint | - | Y | NULL | 生产计划ID |
| plan_code | varchar | 32 | Y | NULL | 生产计划编码 |
| sales_order_id | bigint | - | Y | NULL | 销售订单ID |
| sales_order_code | varchar | 32 | Y | NULL | 销售订单编码 |
| delivery_date | date | - | Y | NULL | 订单交期 |
| item_id | bigint | - | N | - | 物料ID |
| item_code | varchar | 32 | N | - | 物料编码 |
| item_name | varchar | 100 | N | - | 物料名称 |
| specification | varchar | 200 | Y | NULL | 型号规格 |
| unit_name | varchar | 20 | Y | NULL | 计量单位 |
| purchase_qty | decimal | 18,4 | N | 0 | 采购数量 |
| ordered_qty | decimal | 18,4 | Y | 0 | 已订数量 |
| remark | varchar | 500 | Y | NULL | 备注 |
---
## 9. 枚举值定义
### 9.1 通用单据状态 (status)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| DRAFT | 开立/草稿 | 可编辑状态 |
| SUBMITTED | 已提交 | 等待审核 |
| APPROVED | 已审核 | 审核通过,不可编辑 |
| REJECTED | 已驳回 | 审核驳回 |
| CLOSED | 已关闭 | 业务完结 |
| CANCELLED | 已取消 | 取消作废 |
### 9.2 业务状态 (business_status)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| NORMAL | 正常 | 正常执行 |
| PAUSE | 暂停 | 暂停执行 |
| CANCEL | 取消 | 已取消 |
### 9.3 启用状态 (enable_flag)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| Y | 启用 | 正常使用 |
| N | 停用 | 禁止使用 |
### 9.4 删除标志 (del_flag)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| 0 | 存在 | 正常数据 |
| 1 | 删除 | 逻辑删除 |
### 9.5 物料类型 (item_or_product)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| ITEM | 物料 | 原材料/零部件 |
| PRODUCT | 产品 | 成品 |
### 9.6 供应方式 (supply_type)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| PURCHASE | 采购 | 外部采购 |
| SELF_MADE | 自制 | 自己生产 |
| OUTSOURCE | 委外 | 委外加工 |
### 9.7 采购业务类型 (business_type)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| RAW_MATERIAL | 原材料 | 原材料采购 |
| PARTS | 零部件 | 零部件采购 |
| ASSEMBLY | 装配件 | 装配件采购 |
| FINISHED | 成品 | 成品采购 |
| HARDWARE | 五金件 | 五金件采购 |
| PACKAGING | 包装物 | 包装物采购 |
### 9.8 用料需求 (material_need)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| ORDER_USE | 订单用料 | 按订单需求采购 |
| STOCK_USE | 备库用料 | 备库采购 |
### 9.9 工作类型 (work_type)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| 0 | 生产计划单 | 主生产计划 |
| 1 | 零部件计划单 | 零部件生产计划 |
| 2 | 零部件订单 | 零部件加工订单 |
### 9.10 需求方式 (need_type)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| 0 | 订单用料 | 按订单需求采购 |
| 1 | 库存备料 | 备库采购 |
### 9.11 下发状态 (issue_status)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| NOT_ISSUED | 未下发 | 未下发到车间 |
| ISSUED | 已下发 | 已下发到车间 |
| COMPLETED | 已完成 | 生产完成 |
### 9.12 财务状态 (finance_status)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| RECORDED | 录入 | 已录入 |
| ENTERED | 入账 | 已入账 |
### 9.13 客户/供应商等级 (client_level / supplier_level)
| 枚举值 | 中文名 | 说明 |
|--------|--------|------|
| A | A级 | 核心客户/供应商 |
| B | B级 | 重要客户/供应商 |
| C | C级 | 一般客户/供应商 |
| D | D级 | 潜在客户/供应商 |
---
## 10. 索引设计规范
### 10.1 索引命名规范
| 索引类型 | 命名格式 | 示例 |
|----------|----------|------|
| 主键 | pk_表名 | pk_sl_order |
| 唯一索引 | uk_表名_字段 | uk_sl_order_code |
| 普通索引 | idx_表名_字段 | idx_sl_order_date |
| 组合索引 | idx_表名_字段1_字段2 | idx_sl_order_client_date |
### 10.2 必建索引
| 场景 | 索引字段 | 说明 |
|------|----------|------|
| 主键 | xxx_id | 主键自动创建 |
| 租户 | tenant_id | 多租户隔离 |
| 编码 | xxx_code + tenant_id | 编码唯一 |
| 外键 | 关联字段ID | 关联查询 |
| 日期 | xxx_date | 范围查询 |
| 状态 | status | 条件筛选 |
### 10.3 索引设计原则
1. **主键索引**: 使用自增bigint避免UUID
2. **唯一索引**: 编码字段 + tenant_id 组合唯一
3. **外键索引**: 所有外键字段必须建立索引
4. **组合索引**: 遵循最左前缀原则
5. **避免冗余**: 不要在已有索引字段上重复建索引
---
## 11. ER图
### 11.1 销售模块ER图
```
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ md_client │ │ erp_sl_contract │ │ erp_sl_order │
│ (客户档案) │<──│ (销售合同) │<──│ (销售订单) │
└──────────────────────┘ └──────────┬───────────┘ └──────────┬───────────┘
│ 1:N │ 1:N
▼ ▼
┌──────────────────────┐ ┌──────────────────────┐
│erp_sl_contract_line │ │ erp_sl_order_line │
│ (合同明细) │ │ (订单明细) │
└──────────────────────┘ └──────────────────────┘
┌──────────────────────────────────────────────────┤
│ │ │
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ erp_sl_deliver │ │ erp_sl_invoice │ │ erp_sl_saleback │
│ (发货单) │ │ (销售发票) │ │ (退货单) │
└──────────┬───────────┘ └──────────┬───────────┘ └──────────┬───────────┘
│ 1:N │ 1:N │ 1:N
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ erp_sl_deliver_line │ │erp_sl_invoice_line │ │erp_sl_saleback_line │
│ (发货明细) │ │ (发票明细) │ │ (退货明细) │
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
```
### 11.2 采购模块ER图
```
┌──────────────────────┐ 1:N ┌──────────────────────┐
│ erp_po_supplier │◄──────────────►│ erp_po_order │
│ (供应商) │ │ (采购订单) │
└──────────────────────┘ └──────────┬───────────┘
│ 1:N
┌──────────────────────┐
│ erp_po_order_line │
│ (采购明细) │
└──────────┬───────────┘
┌───────────────────────────────────────┼───────────────────────────────────────┐
│ │ │
▼ 1:N ▼ 1:N ▼ 1:N
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ erp_po_checkin │ │ erp_po_invoice │ │ erp_po_reject │
│ (采购到货) │ │ (采购发票) │ │ (采购退货) │
└──────────┬───────────┘ └──────────┬───────────┘ └──────────┬───────────┘
│ 1:N │ 1:N │ 1:N
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│erp_po_checkin_line │ │erp_po_invoice_line │ │ erp_po_reject_line │
│ (到货明细) │ │ (发票明细) │ │ (退货明细) │
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
```
### 11.3 生产计划模块ER图
```
┌──────────────────────┐ 1:N ┌──────────────────────┐
│ erp_sl_order │◄──────────────►│ erp_mp_plan │
│ (销售订单) │ │ (生产计划单) │
└──────────────────────┘ └──────────┬───────────┘
│ 1:N
┌──────────────────────┐
│ erp_mp_plan_line │
│ (生产计划明细) │
└──────────┬───────────┘
┌───────────────────────────────────────┼───────────────────────────────────────┐
│ │ │
▼ 1:N ▼ 1:N ▼ 1:N
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ erp_mp_mbom │ │ erp_mp_purchase │ │ erp_mp_parts │
│ (物料清单) │ │ (采购计划单) │ │ (零部件订单) │
└──────────┬───────────┘ └──────────────────────┘ └──────────────────────┘
│ 1:N
┌──────────────────────┐
│ erp_mp_mbom_line │
│ (物料清单明细) │
└──────────────────────┘
```
### 11.4 基础数据关联
```
┌──────────────────────┐
│ erp_md_item_type │
│ (物料分类) │
└──────────┬───────────┘
│ 1:N
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ erp_wm_warehouse │ │ erp_md_item │ │ erp_md_bom │
│ (仓库) │ │ (物料档案) │ │ (BOM档案) │
└──────────┬───────────┘ └──────────┬───────────┘ └──────────┬───────────┘
│ │ │
▼ │ ▼
┌──────────────────────┐ │ ┌──────────────────────┐
│ erp_wm_stock │◄────────────┘ │ erp_md_bom_line │
│ (库存) │ │ (BOM明细) │
└──────────────────────┘ └──────────────────────┘
```
---
## 附录A: API模块路径对照
| 模块 | API前缀 | 说明 |
|------|---------|------|
| 系统管理 | /system | 用户、角色、部门等 |
| 基础数据 | /md | 物料、BOM、单位等 |
| 仓库管理 | /wm | 仓库、库存、出入库等 |
| 销售管理 | /sl | 客户、订单、发货等 |
| 采购管理 | /po | 供应商、采购订单等 |
| 生产计划 | /mp | 生产计划、物料清单等 |
| 生产执行 | /pm | 工单、生产任务等 |
| 研发管理 | /rd | 研发BOM、样品等 |
| 委外管理 | /pu | 委外订单、委外加工等 |
| 财务管理 | /fd | 应收应付、凭证等 |
---
## 附录B: 数据权限说明
### B.1 租户隔离
所有业务表都包含 `tenant_id` 字段,用于多租户数据隔离。
**隔离规则:**
- 查询时自动追加租户条件
- 新增时自动填充租户ID
- 租户之间数据完全隔离
### B.2 数据权限范围
| 权限类型 | 说明 | 实现方式 |
|----------|------|----------|
| 全部数据 | 可查看所有数据 | 不追加条件 |
| 部门数据 | 只能查看本部门数据 | dept_id = 当前部门 |
| 部门及以下 | 可查看本部门及下级部门数据 | dept_id IN (部门树) |
| 仅本人数据 | 只能查看自己创建的数据 | create_by = 当前用户 |
---
## 附录C: 未覆盖模块说明
> 以下模块已通过Swagger API发现但尚未纳入本数据字典详见 `erp数据库设计-Swagger补充模块.md`
### C.1 未覆盖模块清单
| 模块 | API前缀 | Java包前缀 | 估计表数量 | 说明 |
|------|---------|-----------|-----------|------|
| 生产管理(车间) | /prs | Prs* | ~20 | 生产订单、领料、完工、入库、报工、指令单等 |
| 研发管理 | /rd | Rd* | ~10 | 产品BOM(EBOM)、样品配方、孪生物料、放量、设置 |
| 委外管理 | /pu | Pu* | ~14 | 委外商、委外订单、到货、入库、发料、退料、发票 |
| 财务管理 | /fd | Fd* | ~30+ | 期间、账套、科目、凭证、应收应付、收付款、成本核算等 |
| 车间设置 | /prs (基础) | Prs* | ~8 | 生产线、班组、工人、工种、工序段、工艺路线、设备 |
### C.2 Swagger API揭示的命名差异
目标ERP系统的实际API字段命名与本文档中基于行业惯例设计的字段命名存在差异
| 概念 | 本文档命名 | Swagger实际命名 | 差异说明 |
|------|-----------|---------------|---------|
| 主键 | xxx_id (如 order_id) | uniqueId | ERP统一使用uniqueId |
| 物料编码 | item_code | invCode | inv = Inventory |
| 物料名称 | item_name | invName | inv = Inventory |
| 物料分类ID | item_type_id | invSortId | sort = 分类 |
| 跟单编号 | track_code | ppNumber | 全局唯一 |
| 操作员 | operator_name | userOper | |
| 审核员 | approver_name | userCheck | |
| 审核日期 | approve_date | checkDate | |
| 业务状态 | business_status | workStatus | |
> **说明**: 本文档中的字段命名遵循行业通用规范便于理解和对接。实际集成时需根据API字段名进行映射转换。具体映射关系详见 `erp数据库设计-Swagger补充模块.md` 第1节。
### C.3 相关文档
| 文档 | 说明 |
|------|------|
| `erp数据库设计-Swagger补充模块.md` | Swagger API分析的完整报告含所有缺失模块的字段定义 |
| `目标erp系统接口文档Swagger-API.md` | 已整理的API接口文档含9个模块 |
| `ERP系统接口API文档.md` | API接口文档的引用版本 |
---
## 修订历史
| 版本 | 日期 | 修订内容 | 修订人 |
|------|------|----------|--------|
| 1.0.0 | 2026-01-25 | 初始版本 | System |
| 1.1.0 | 2026-02-06 | 增加附录C基于Swagger API分析的未覆盖模块说明和命名差异对照 | System |