# 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 |