✅ 生产加工模块(Manufacturing Domain / md)
全量数据表清单(最终版)
一、BOM 与结构定义(主数据)
1️⃣ 商品 BOM
| 表名 | 说明 |
|---|---|
md_bom |
商品 BOM 主表 |
md_bom_item |
商品 BOM 明细(原料项) |
2️⃣ 商品拆分(结构型加工)
| 表名 | 说明 |
|---|---|
md_bom_split_template |
商品拆分模板主表 |
md_bom_split_template_item |
商品拆分模板明细 |
md_bom_split_record |
商品拆分执行记录主表 |
md_bom_split_record_item |
商品拆分执行记录明细 |
用于:整转零、组合拆分、轻加工
二、生产加工单据(核心业务单据)
3️⃣ 生产加工工单
| 表名 | 说明 |
|---|---|
md_production_order |
生产加工单主表 |
md_production_order_item |
生产加工单明细(成品项) |
三、生产用料(事实表 + 追溯核心)
4️⃣ 生产用料事实
| 表名 | 说明 |
|---|---|
md_production_material |
生产用料事实表(已是最小 item 粒度) |
说明:
每一行 = 一种原料在一次生产中的实际用量
可直接用于:库存、成本、追溯、报表
5️⃣ 生产用料批次锁定
| 表名 | 说明 |
|---|---|
md_production_material_lot |
生产用料批次锁定表 |
6️⃣ 批次 ↔ 领料出库绑定
| 表名 | 说明 |
|---|---|
md_production_picking_item |
生产领料出库批次绑定明细 |
用于:
审核前强校验
批次追溯
成本精确回溯
四、生产基础资料(主数据)
7️⃣ 人员与组织
| 表名 | 说明 |
|---|---|
md_production_worker |
生产工人 |
md_production_workshop |
生产车间 |
8️⃣ 工序定义(加工过程)
| 表名 | 说明 |
|---|---|
md_process |
工序主表 |
md_process_item |
工序步骤 / 明细 |
五、生产分析与报表(可选 / 只读)
⚠️ 以下一般是 视图(VIEW)或报表 SQL,不强制落表
| 名称 | 建议形式 |
|---|---|
| 加工销售汇总 | md_rpt_processing_sales_summary(VIEW) |
| 生产加工报表 | md_rpt_production_summary(VIEW) |
| 出成率报表 | md_rpt_production_yield(VIEW) |
六、生产加工模块【不包含但强关联的表】
⚠️ 这些 不属于 md 域,但在业务上强相关(必须认清边界)
WMS(公司仓)
-
wms_stock_out_*(领料出库) -
wms_stock_in_*(完工入库 / 退料)
成本域
-
公司仓:
cost_* -
门店仓:
hcost_*
溯源域
-
ts_lot -
ts_trace_source_*
七、最终汇总(一眼版本)
✅ md 域最终表总数(不含报表 VIEW)
md_bom md_bom_item md_bom_split_template md_bom_split_template_item md_bom_split_record md_bom_split_record_item md_production_order md_production_order_item md_production_material md_production_material_lot md_production_picking_item md_production_worker md_production_workshop md_process md_process_item
👉 共 15 张核心表
生产加工(md / Manufacturing Domain)15 张核心表的【完整 DDL】,全部已经:
-
✅ 按
md_域前缀 -
✅ 明细表统一
item结尾 -
✅ 统一
audit_state / posting_state / enabled / del_flag -
✅ 索引、唯一键、COMMENT 全补齐
-
✅ 直接支持 生产 → 用料 → 批次 → 库存 → 成本
数据库假设:MySQL 8.x / InnoDB / utf8mb4
一、BOM 与结构定义(2 张)
1️⃣ md_bom(商品 BOM 主表)
|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | CREATE TABLE md_bom ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``bom_code ``VARCHAR``(100) ``NOT NULL COMMENT ``'BOM编码'``, ``product_sku_id ``BIGINT NOT NULL COMMENT ``'成品SKU'``, ``unit_id ``BIGINT NOT NULL COMMENT ``'成品单位'``, ``bom_version ``INT NOT NULL COMMENT ``'BOM版本'``, ``base_quantity ``DECIMAL``(12, 4) ``NOT NULL DEFAULT 1 COMMENT ``'基准产出数量'``, ``remark ``VARCHAR``(250) ``DEFAULT NULL COMMENT ``'备注'``, ``audit_state TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'审核状态 0待审 1已审 -1作废'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``creator ``BIGINT NOT NULL DEFAULT 0 COMMENT ``'创建人'``, ``create_date ``BIGINT DEFAULT NULL COMMENT ``'创建时间'``, ``updater ``BIGINT NOT NULL DEFAULT 0 COMMENT ``'修改人'``, ``update_date ``BIGINT DEFAULT NULL COMMENT ``'修改时间'``, ``UNIQUE KEY uk_bom (product_sku_id, unit_id, bom_version, del_flag), ``KEY idx_bom_code (bom_code) ) COMMENT = ``'商品BOM主表'``; |
2️⃣ md_bom_item(商品 BOM 明细)
|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | CREATE TABLE md_bom_item ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``bom_id ``BIGINT NOT NULL COMMENT ``'BOM主表ID'``, ``material_sku_id ``BIGINT NOT NULL COMMENT ``'原料SKU'``, ``unit_id ``BIGINT NOT NULL COMMENT ``'原料单位'``, ``net_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'净用量'``, ``loss_rate ``DECIMAL``(5, 2) ``NOT NULL DEFAULT 0 COMMENT ``'损耗率%'``, ``plan_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'计划用量'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``sort_code ``INT NOT NULL DEFAULT 0 COMMENT ``'排序编码'``, ``KEY idx_bom_item (bom_id), ``KEY idx_material (material_sku_id, unit_id) ) COMMENT = ``'商品BOM明细项'``; |
二、商品拆分(4 张)
3️⃣ md_bom_split_template
|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | CREATE TABLE md_bom_split_template ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``template_code ``VARCHAR``(50) ``NOT NULL COMMENT ``'模板编码'``, ``template_name ``VARCHAR``(200) ``NOT NULL COMMENT ``'模板名称'``, ``audit_state TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'审核状态'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``creator ``BIGINT DEFAULT NULL COMMENT ``'创建人'``, ``create_date ``BIGINT DEFAULT NULL COMMENT ``'创建时间'``, ``updater ``BIGINT DEFAULT NULL COMMENT ``'修改人'``, ``update_date ``BIGINT DEFAULT NULL COMMENT ``'修改时间'``, ``UNIQUE KEY uk_tpl (template_code, del_flag) ) COMMENT = ``'商品拆分模板主表'``; |
4️⃣ md_bom_split_template_item
|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 | CREATE TABLE md_bom_split_template_item ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``template_id ``BIGINT NOT NULL COMMENT ``'模板ID'``, ``product_sku_id ``BIGINT NOT NULL COMMENT ``'拆分后SKU'``, ``unit_id ``BIGINT NOT NULL COMMENT ``'单位'``, ``quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'数量'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``KEY idx_tpl_item (template_id) ) COMMENT = ``'商品拆分模板明细'``; |
5️⃣ md_bom_split_record
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 | CREATE TABLE md_bom_split_record ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``record_code ``VARCHAR``(100) ``NOT NULL COMMENT ``'拆分单号'``, ``template_id ``BIGINT NOT NULL COMMENT ``'模板ID'``, ``audit_state TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'审核状态'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``creator ``BIGINT DEFAULT NULL COMMENT ``'创建人'``, ``create_date ``BIGINT DEFAULT NULL COMMENT ``'创建时间'``, ``UNIQUE KEY uk_split_record (record_code, del_flag) ) COMMENT = ``'商品拆分执行记录主表'``; |
6️⃣ md_bom_split_record_item
|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | CREATE TABLE md_bom_split_record_item ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``record_id ``BIGINT NOT NULL COMMENT ``'拆分记录ID'``, ``product_sku_id ``BIGINT NOT NULL COMMENT ``'SKU'``, ``unit_id ``BIGINT NOT NULL COMMENT ``'单位'``, ``quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'数量'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``KEY idx_split_item (record_id) ) COMMENT = ``'商品拆分执行明细'``; |
三、生产加工单(2 张)
7️⃣ md_production_order
|-------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | CREATE TABLE md_production_order ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``order_code ``VARCHAR``(100) ``NOT NULL COMMENT ``'生产加工单号'``, ``workshop_id ``BIGINT DEFAULT NULL COMMENT ``'生产车间'``, ``production_date ``BIGINT DEFAULT NULL COMMENT ``'生产日期'``, ``audit_state TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'审核状态'``, ``posting_state TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'过账状态'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``creator ``BIGINT DEFAULT NULL COMMENT ``'创建人'``, ``create_date ``BIGINT DEFAULT NULL COMMENT ``'创建时间'``, ``UNIQUE KEY uk_prod_order (order_code, del_flag) ) COMMENT = ``'生产加工单主表'``; |
8️⃣ md_production_order_item
|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 | CREATE TABLE md_production_order_item ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``order_id ``BIGINT NOT NULL COMMENT ``'生产单ID'``, ``product_sku_id ``BIGINT NOT NULL COMMENT ``'成品SKU'``, ``unit_id ``BIGINT NOT NULL COMMENT ``'单位'``, ``bom_version ``INT NOT NULL COMMENT ``'BOM版本'``, ``plan_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'计划数量'``, ``complete_quantity ``DECIMAL``(12, 4) ``NOT NULL DEFAULT 0 COMMENT ``'完工数量'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``KEY idx_prod_item (order_id) ) COMMENT = ``'生产加工单明细项'``; |
四、生产用料 & 批次(3 张)
9️⃣ md_production_material
|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE md_production_material ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``order_id ``BIGINT NOT NULL COMMENT ``'生产单ID'``, ``order_item_id ``BIGINT NOT NULL COMMENT ``'生产明细ID'``, ``sku_unit_id ``BIGINT NOT NULL COMMENT ``'原料sku_unit_id'``, ``net_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'净用量'``, ``plan_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'计划用量'``, ``actual_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'实际用量'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``KEY idx_material_order (order_id), ``KEY idx_material_sku (sku_unit_id) ) COMMENT = ``'生产用料事实表'``; |
🔟 md_production_material_lot
|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 | CREATE TABLE md_production_material_lot ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``material_id ``BIGINT NOT NULL COMMENT ``'用料ID'``, ``sku_unit_id ``BIGINT NOT NULL COMMENT ``'sku_unit_id'``, ``lot_no ``VARCHAR``(100) ``NOT NULL COMMENT ``'批次号'``, ``lock_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'锁定数量'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``KEY idx_material_lot (material_id), ``KEY idx_lot (sku_unit_id, lot_no) ) COMMENT = ``'生产用料批次锁定'``; |
1️⃣1️⃣ md_production_picking_item
|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE md_production_picking_item ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``order_id ``BIGINT NOT NULL COMMENT ``'生产单ID'``, ``picking_code ``VARCHAR``(100) ``NOT NULL COMMENT ``'领料出库单号'``, ``material_lot_id ``BIGINT NOT NULL COMMENT ``'批次锁定ID'``, ``sku_unit_id ``BIGINT NOT NULL COMMENT ``'sku_unit_id'``, ``lot_no ``VARCHAR``(100) ``NOT NULL COMMENT ``'批次号'``, ``out_quantity ``DECIMAL``(12, 4) ``NOT NULL COMMENT ``'出库数量'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``UNIQUE KEY uk_pick_bind (picking_code, material_lot_id, del_flag), ``KEY idx_pick (picking_code) ) COMMENT = ``'生产领料出库绑定项'``; |
五、基础资料(4 张)
1️⃣2️⃣ md_production_worker
|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | CREATE TABLE md_production_worker ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``worker_code ``VARCHAR``(50) ``NOT NULL COMMENT ``'工人编码'``, ``worker_name ``VARCHAR``(100) ``NOT NULL COMMENT ``'工人姓名'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记' ) COMMENT = ``'生产工人'``; |
1️⃣3️⃣ md_production_workshop
|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 | CREATE TABLE md_production_workshop ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``workshop_name ``VARCHAR``(100) ``NOT NULL COMMENT ``'车间名称'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记' ) COMMENT = ``'生产车间'``; |
1️⃣4️⃣ md_process
|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | CREATE TABLE md_process ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``process_code ``VARCHAR``(50) ``NOT NULL COMMENT ``'工序编码'``, ``process_name ``VARCHAR``(100) ``NOT NULL COMMENT ``'工序名称'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记' ) COMMENT = ``'工序定义'``; |
1️⃣5️⃣ md_process_item
|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | CREATE TABLE md_process_item ( ``id ``BIGINT PRIMARY KEY COMMENT ``'主键ID'``, ``process_id ``BIGINT NOT NULL COMMENT ``'工序ID'``, ``step_name ``VARCHAR``(100) ``NOT NULL COMMENT ``'步骤名称'``, ``sort_code ``INT NOT NULL DEFAULT 0 COMMENT ``'排序编码'``, ``enabled TINYINT ``NOT NULL DEFAULT 1 COMMENT ``'启用状态'``, ``del_flag TINYINT ``NOT NULL DEFAULT 0 COMMENT ``'删除标记'``, ``KEY idx_process_item (process_id) ) COMMENT = ``'工序步骤明细'``; |
✅ 结果总结
-
共 15 张表
-
命名:
md_+ 业务语义 +item -
可直接:
-
建库
-
写 Mapper
-
接 WMS / cost / hcost
-
做审核 / 反审核 / 追溯
-