MCP for ERP — 数据表结构与种子数据说明文档
数据库:PostgreSQL 15+,库 smart_quotation_auto(与 CRM 服务共库不同表)
建表/种子脚本:sql/init.sql(v3,幂等可重跑);执行入口:cd src && python3 seed.py
版本:v1.0(2026-08-09)
1 概览
| # |
表名 |
用途 |
主键 |
种子行数 |
| 1 |
material_master |
物料主数据(体积/密度/吨位/后处理) |
material_code |
16 |
| 2 |
material_grade_mapping |
五标准体系牌号对照 |
id(SERIAL) |
13 |
| 3 |
die_casting_params |
压铸参数(吨位→固化节拍/费率/模穴) |
tonnage |
9 |
| 4 |
machining_cycle |
机加工固化工装节拍 |
id(SERIAL) |
26 |
| 5 |
post_process_rate |
后处理费率(¥/kg) |
id(SERIAL) |
10 |
| 6 |
material_price_history |
月度材料价格留痕 |
id(SERIAL) |
260(13 牌号×20 月) |
| 7 |
machining_rate |
材质族机加工费率 |
grade_group |
4 |
表关系:material_master.material_grade →(经 match_material_grade 模糊对照)→ material_grade_mapping(internal_code/grade_group)→ material_price_history(按 internal_code 取最新月价)、machining_rate(按 grade_group 取费率);material_master.die_casting_ton → die_casting_params.tonnage;机加工工时查 machining_cycle(operation_type+spec);后处理查 post_process_rate(process_type = material_master.surface_treatment)。
2 表结构详解
2.1 material_master — 物料主数据
| 列 |
类型 |
约束/默认 |
说明 |
material_code |
VARCHAR(50) |
PRIMARY KEY |
物料编码,如 VHB-AT-001 |
part_name |
VARCHAR(200) |
NOT NULL |
零件名称 |
part_category |
VARCHAR(50) |
NOT NULL |
零件类别(种子全为「阀体外壳」) |
material_grade |
VARCHAR(50) |
NOT NULL |
客户材质牌号(对照表输入) |
density |
DECIMAL(6,3) |
NOT NULL DEFAULT 2.700 |
密度 g/cm³ |
volume_cc |
DECIMAL(10,2) |
NOT NULL |
零件体积 cm³(算铝水重量的依据) |
net_weight_kg |
DECIMAL(8,3) |
NOT NULL |
净重 kg(算后处理成本的依据) |
die_casting_ton |
INTEGER |
NOT NULL |
压铸机吨位(关联 die_casting_params) |
surface_treatment |
VARCHAR(50) |
— |
表面处理(关联 post_process_rate) |
unit |
VARCHAR(10) |
DEFAULT '件' |
计量单位 |
created_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP |
建档时间 |
2.2 material_grade_mapping — 材质牌号对照表
| 列 |
类型 |
约束/默认 |
说明 |
id |
SERIAL |
PRIMARY KEY |
自增主键 |
grade_group |
VARCHAR(50) |
NOT NULL |
材质族:铝合金/铸铝/铸铁/球墨铸铁(决定机加工费率) |
gb_code |
VARCHAR(80) |
— |
GB 牌号 |
astm_code |
VARCHAR(80) |
— |
ASTM 牌号 |
jis_code |
VARCHAR(80) |
— |
JIS 牌号 |
en_code |
VARCHAR(80) |
— |
EN 牌号 |
iso_code |
VARCHAR(80) |
— |
ISO 牌号 |
internal_code |
VARCHAR(50) |
NOT NULL,UNIQUE(uq_grade_mapping) |
内部等效牌号 |
density |
DECIMAL(6,3) |
NOT NULL |
密度 g/cm³ |
price_per_kg |
DECIMAL(10,2) |
NOT NULL |
铝锭/材料参考价 ¥/kg(兜底价) |
对照匹配对六列码值做大小写不敏感 LIKE 模糊匹配;带热处理后缀(如 A356-T6)自动剥后缀重试。
2.3 die_casting_params — 压铸参数表
| 列 |
类型 |
约束/默认 |
说明 |
tonnage |
INTEGER |
PRIMARY KEY |
压铸机吨位 |
shot_weight_kg |
DECIMAL(8,3) |
NOT NULL |
射出重量 kg(参考值) |
cycle_time_sec |
DECIMAL(8,2) |
NOT NULL |
模次节拍 秒/模(吨位固化) |
machine_rate |
DECIMAL(10,2) |
NOT NULL |
机台费率 ¥/小时 |
mold_cavities |
INTEGER |
DEFAULT 1 |
模穴数(压铸成本按穴分摊) |
2.4 machining_cycle — 机加工节拍表(固化工装节拍)
| 列 |
类型 |
约束/默认 |
说明 |
id |
SERIAL |
PRIMARY KEY |
自增主键 |
operation_type |
VARCHAR(30) |
NOT NULL |
drill 钻孔 / tap 攻丝 / ream 铰孔 / mill 铣面 |
spec |
VARCHAR(50) |
NOT NULL |
规格:Φ6、M6×1.0、Φ8H7、face;UNIQUE(operation_type, spec) |
cycle_time_sec |
DECIMAL(8,2) |
NOT NULL |
单件固化节拍(秒) |
tool_rate |
DECIMAL(8,4) |
DEFAULT 0 |
单件刀具成本 ¥ |
notes |
VARCHAR(200) |
— |
备注(通孔/盲孔等) |
2.5 post_process_rate — 后处理费率表
| 列 |
类型 |
约束/默认 |
说明 |
id |
SERIAL |
PRIMARY KEY |
自增主键 |
process_type |
VARCHAR(50) |
NOT NULL,UNIQUE(uq_post_process) |
工艺名(与物料 surface_treatment 对应) |
unit |
VARCHAR(10) |
DEFAULT 'kg' |
计价单位 |
rate |
DECIMAL(10,2) |
NOT NULL |
费率 ¥/kg |
currency |
VARCHAR(10) |
DEFAULT 'CNY' |
币种 |
2.6 material_price_history — 材料价格历史表
| 列 |
类型 |
约束/默认 |
说明 |
id |
SERIAL |
PRIMARY KEY |
自增主键 |
internal_code |
VARCHAR(50) |
NOT NULL |
内部牌号;UNIQUE(internal_code, price_date) |
price_date |
DATE |
NOT NULL |
价格月份(每月 1 日) |
price_per_kg |
DECIMAL(10,2) |
NOT NULL |
当月参考价 ¥/kg |
source |
VARCHAR(100) |
DEFAULT '市场参考价' |
数据来源留痕 |
核价取法:ORDER BY price_date DESC LIMIT 1(最新月),并在返回中带 price_basis_month 留痕。
2.7 machining_rate — 机加工费率表
| 列 |
类型 |
约束/默认 |
说明 |
grade_group |
VARCHAR(50) |
PRIMARY KEY |
材质族 |
rate_per_hour |
DECIMAL(10,2) |
NOT NULL |
费率 ¥/小时 |
notes |
VARCHAR(200) |
— |
备注 |
3 种子数据详解
3.1 material_master — 16 种阀体外壳
覆盖设计:铝合金 12 / 灰铸铁 2(HT250、HT300)/ 球墨铸铁 1(QT500-7)/ 铸铝 1(ZL101);吨位 1601000T 全谱系;体积 96.31037 cm³。
| 物料编码 |
零件名称 |
牌号 |
密度 |
体积cm³ |
净重kg |
吨位 |
后处理 |
| VHB-AT-001 |
变速箱阀体外壳 |
ADC12 |
2.700 |
444.44 |
1.200 |
400 |
阳极氧化 |
| VHB-BK-002 |
制动阀体壳 |
HT250 |
7.200 |
388.89 |
2.800 |
630 |
电泳涂装 |
| VHB-SP-003 |
转向器阀体壳 |
A356-T6 |
2.650 |
296.30 |
0.785 |
280 |
钝化 |
| VHB-EG-004 |
发动机油路阀体壳 |
EN AC-4600 |
2.700 |
555.56 |
1.500 |
400 |
阳极氧化 |
| VHB-CL-005 |
离合器控制阀体壳 |
ADC10 |
2.700 |
480.00 |
1.300 |
400 |
阳极氧化 |
| VHB-TR-006 |
变速箱液压控制阀体 |
AlSi9Cu3 |
2.700 |
620.00 |
1.670 |
630 |
电泳涂装 |
| VHB-EB-007 |
电子制动阀体壳 |
AlSi10MnMg |
2.650 |
350.00 |
0.930 |
400 |
钝化 |
| VHB-QT-008 |
悬架阻尼阀体壳 |
QT500-7 |
7.100 |
520.00 |
3.690 |
630 |
喷涂 |
| VHB-MN-009 |
微型泵阀体壳 |
ADC12 |
2.700 |
96.30 |
0.260 |
160 |
钝化 |
| VHB-LG-010 |
大型主阀体壳 |
ADC12 |
2.700 |
1037.00 |
2.800 |
800 |
电泳涂装 |
| VHB-TC-011 |
涡轮增压控制阀体壳 |
ADC12 |
2.700 |
320.00 |
0.860 |
350 |
钝化 |
| VHB-EG-012 |
EGR阀体壳 |
ADC10 |
2.700 |
265.00 |
0.720 |
280 |
钝化 |
| VHB-WP-013 |
水泵阀体壳 |
AlSi12 |
2.650 |
380.00 |
1.010 |
400 |
阳极氧化 |
| VHB-TM-014 |
热管理阀体壳(新能源) |
AlSi10MnMg |
2.650 |
505.00 |
1.340 |
500 |
钝化 |
| VHB-OP-015 |
机油泵阀体壳 |
ZL101 |
2.650 |
210.00 |
0.560 |
200 |
钝化 |
| VHB-HD-016 |
重卡制动阀体壳 |
HT300 |
7.250 |
850.00 |
6.160 |
1000 |
达克罗 |
3.2 material_grade_mapping — 13 条牌号对照
覆盖设计:铝合金 7 / 铸铝 1 / 铸铁 3 / 球墨铸铁 2;每条六码齐全(GB/ASTM/JIS/EN/ISO/内部码)。
| 材质族 |
GB |
ASTM |
JIS |
EN |
ISO |
内部码 |
密度 |
参考价¥/kg |
| 铝合金 |
ZAlSi10Cu(ADC12) |
A380 |
ADC12 |
EN AC-4600 |
AlSi9Cu3 |
AL-ADC12 |
2.700 |
18.50 |
| 铝合金 |
ZAlSi7Mg(A356) |
A356 |
AC4C-T6 |
EN AC-4210 |
AlSi7Mg |
AL-A356 |
2.650 |
20.00 |
| 铝合金 |
ZAlSi9Cu(AlSi9Cu) |
B443 |
AC4B |
EN AC-4600 |
AlSi9Cu |
AL-4600 |
2.700 |
18.00 |
| 铸铝 |
ZL101 |
356.0 |
AC4C |
EN AC-4200 |
AlSi7 |
AL-ZL101 |
2.650 |
19.00 |
| 铸铁 |
HT250 |
G2500 |
FC250 |
EN-GJL-250 |
GJL-250 |
IR-HT250 |
7.200 |
6.50 |
| 球墨铸铁 |
QT500-7 |
D5007 |
FCD500 |
EN-GJS-500 |
GJS-500 |
IR-QT500 |
7.100 |
7.20 |
| 铝合金 |
ZAlSi8Cu(ADC10) |
A384 |
ADC10 |
EN AC-4650 |
AlSi8Cu |
AL-ADC10 |
2.700 |
18.20 |
| 铝合金 |
ZAlSi10MnMg |
— |
— |
AlSi10MnMg |
AlSi10MnMg |
AL-S10MM |
2.650 |
22.00 |
| 铝合金 |
ZAlSi12 |
413.0 |
AC3A |
EN AC-4420 |
AlSi12 |
AL-S12 |
2.650 |
17.80 |
| 铸铁 |
HT200 |
G3000 |
FC200 |
EN-GJL-200 |
GJL-200 |
IR-HT200 |
7.200 |
6.00 |
| 铸铁 |
HT300 |
G3500 |
FC300 |
EN-GJL-300 |
GJL-300 |
IR-HT300 |
7.250 |
6.80 |
| 球墨铸铁 |
QT450-10 |
D4510 |
FCD450 |
EN-GJS-450 |
GJS-450 |
IR-QT450 |
7.100 |
7.00 |
| 球墨铸铁 |
QT600-3 |
D6003 |
FCD600 |
EN-GJS-600 |
GJS-600 |
IR-QT600 |
7.100 |
7.50 |
脚本含修正语句:IR-QT% 组别归位「球墨铸铁」(历史数据曾误归「铸铁」)。
3.3 die_casting_params — 9 档吨位
| 吨位 |
射出重量kg |
节拍秒/模 |
机台费率¥/h |
模穴数 |
| 160 |
0.50 |
15.00 |
120.00 |
2(一模两腔) |
| 200 |
0.80 |
18.00 |
140.00 |
2 |
| 280 |
1.20 |
22.00 |
180.00 |
1 |
| 350 |
1.80 |
26.00 |
220.00 |
1 |
| 400 |
2.50 |
30.00 |
260.00 |
1 |
| 500 |
3.20 |
36.00 |
320.00 |
1 |
| 630 |
4.00 |
42.00 |
380.00 |
1 |
| 800 |
6.50 |
55.00 |
520.00 |
1 |
| 1000 |
8.50 |
65.00 |
650.00 |
1 |
故意不含 1250T:用于回退测试(未命中吨位场景)。
3.4 machining_cycle — 26 条固化节拍
| 工序 |
规格谱系 |
条数 |
节拍范围(秒) |
刀具费范围(¥) |
| drill 钻孔 |
Φ3 / Φ4 / Φ5 / Φ6 / Φ8 / Φ10 / Φ12 / Φ14 / Φ16 / Φ20 / Φ24 |
11 |
2.00~12.00 |
0.10~0.60 |
| tap 攻丝 |
M4×0.7 / M5×0.8 / M6×1.0 / M8×1.25 / M10×1.5 / M12×1.75 / M14×2.0 / M16×2.0 |
8 |
3.00~9.00 |
0.15~0.45 |
| ream 铰孔 |
Φ6H7 / Φ8H7 / Φ10H7 / Φ12H7 / Φ16H7 / Φ20H7 |
6 |
5.00~12.00 |
0.45~1.10 |
| mill 铣面 |
face(单面) |
1 |
12.00 |
0.80 |
故意不含 Φ25 钻孔 / M18 攻丝:用于回退测试(未知规格静默跳过场景)。
3.5 post_process_rate — 10 种后处理
| 工艺 |
费率¥/kg |
工艺 |
费率¥/kg |
| 喷砂 |
1.50 |
粉末喷涂 |
3.00 |
| 钝化 |
2.00 |
磷化 |
1.80 |
| 阳极氧化 |
5.00 |
达克罗 |
4.00 |
| 电泳涂装 |
3.50 |
硬质阳极氧化 |
8.00 |
| 喷涂 |
2.50 |
化学镀镍 |
9.00 |
故意不含「镀铬」:用于回退测试(未命中后处理场景,成本计 0)。
3.6 material_price_history — 260 行月度价格(2025-01 ~ 2026-08)
生成规则(脚本内 CTE 批量生成,非手工录入):
- 13 个内部牌号 × 20 个月 = 260 行,
source='市场参考价'。
- 每月价格 = 对照表参考价 × 月份系数;铝系用
al_factor(0.921.02 波动),铁系(铸铁/球墨铸铁)用 ir_factor(0.951.01 波动)。
- 最新月(2026-08)系数 = 1.00,即与对照表
price_per_kg 完全一致——保证核价结果与静态对照表口径可对账(如 AL-ADC12 当月价 18.50)。
3.7 machining_rate — 4 条材质族费率
| 材质族 |
费率¥/h |
备注 |
| 铝合金 |
60.00 |
常规机加工费率 |
| 铸铝 |
60.00 |
同铝合金 |
| 铸铁 |
75.00 |
刀具损耗高,费率上浮 |
| 球墨铸铁 |
80.00 |
强度高,费率最高 |
4 幂等性与重跑机制
init.sql 整体可重复执行,无副作用(NF-3):
- 建表:
CREATE TABLE IF NOT EXISTS。
- 历史去重:对 SERIAL 表先按业务键删除重复行(保留最小 id)。
- 补唯一约束:
DO $$ ... ADD CONSTRAINT ... EXCEPTION WHEN duplicate_table 幂等加约束(uq_machining_cycle / uq_grade_mapping / uq_post_process)。
- 种子写入:全部
ON CONFLICT (...) DO NOTHING。
- 月度价格:
UNIQUE(internal_code, price_date) + ON CONFLICT DO NOTHING,重跑不翻倍。
5 数据维护约定
| 场景 |
操作 |
约束 |
| 月度铝价更新 |
material_price_history 追加新月行 |
核价自动取最新月并留痕 price_basis_month |
| 新增机加工规格 |
machining_cycle 增行 |
不改旧行(历史报价可复算) |
| 新增吨位 |
die_casting_params 增行 |
同上 |
| 新增物料 |
material_master 增行 |
material_grade 须能命中对照表,否则走回退 |
ERP 侧全部为只读基础数据:无 MCP 写工具,数据变更仅通过 SQL/脚本进行。