编辑 | blame | 历史 | 原始文档

MDM 主数据模块改造计划

一、改造背景

当前 ERP、MES、WMS 三个模块各自维护产品/物料数据,存在数据孤岛问题:
- ERP:维护产品数据(erp_product)、产品分类(erp_product_category)、计量单位(erp_product_unit)
- MES:维护物料数据(mes_md_item)、物料分类(mes_md_item_type)、计量单位(mes_md_unit_measure)
- WMS:维护商品数据(wms_item)、商品分类(wms_item_category)、品牌(wms_item_brand)、SKU(wms_item_sku)

改造目标:将基础产品数据统一到 MDM 模块管理,三个模块通过 API 调用获取数据。


二、改造阶段规划

第一阶段:基础数据迁移(预计 1 天)

目标:完成分类、单位、品牌等基础数据的迁移

序号 任务 模块 优先级
1.1 迁移 ERP 产品分类到 MDM 物料分类 ERP P0
1.2 迁移 MES 物料分类到 MDM 物料分类 MES P0
1.3 迁移 WMS 商品分类到 MDM 物料分类 WMS P0
1.4 迁移 ERP 计量单位到 MDM 计量单位 ERP P0
1.5 迁移 MES 计量单位到 MDM 计量单位 MES P0
1.6 迁移 WMS 商品品牌到 MDM 品牌 WMS P0

产出物
- SQL 数据迁移脚本
- 前端变更文档


第二阶段:物料数据迁移(预计 1 天)

目标:完成物料/产品主数据迁移

序号 任务 模块 优先级
2.1 迁移 MES 物料到 MDM(itemType=1 物料) MES P0
2.2 迁移 ERP 产品到 MDM(itemType=2 产品) ERP P0
2.3 迁移 WMS 商品到 MDM WMS P0
2.4 创建物料 SKU 数据 MDM P0

产出物
- SQL 数据迁移脚本
- 前端变更文档


第三阶段:模块适配改造(预计 4 天)

目标:ERP/MES/WMS 模块适配 MDM 数据源

序号 任务 模块 优先级
3.1 ERP 模块引用 MDM API,修改 Service 层 ERP P0
3.2 ERP 模块修改 Controller 层响应结构 ERP P1
3.3 MES 模块引用 MDM API,修改 Service 层 MES P0
3.4 MES 模块修改 Controller 层响应结构 MES P1
3.5 WMS 模块引用 MDM API,修改 Service 层 WMS P0
3.6 WMS 模块修改 Controller 层响应结构 WMS P1

产出物
- 后端代码改造
- 前端变更文档


第四阶段:前端适配(预计 3 天)

目标:前端页面适配新数据结构

序号 任务 模块 优先级
4.1 ERP 产品管理页面适配 ERP P1
4.2 MES 物料管理页面适配 MES P1
4.3 WMS 商品管理页面适配 WMS P1
4.4 各模块选择器组件适配 全部 P1

产出物
- 前端代码改造
- 前端变更文档


三、数据字段映射

3.1 ERP 产品 → MDM 物料

ERP 字段 MDM 字段 说明
id id 产品编号
name name 产品名称
barCode barCode 产品条码
categoryId categoryId 分类编号
unitId unitMeasureId 单位编号
standard specification 规格型号
status status 状态
purchasePrice purchasePrice 采购价格
salePrice salesPrice 销售价格
minPrice minPrice 最低价格
expiryDay expiryDay 保质期天数
weight weight 重量
remark remark 备注

| - | itemType = 2 | 产品类型 |

3.2 MES 物料 → MDM 物料

MES 字段 MDM 字段 说明
id id 物料编号
code code 物料编码
name name 物料名称
specification specification 规格型号
itemTypeId categoryId 分类编号
unitMeasureId unitMeasureId 单位编号
status status 状态
minStock minStock 最低库存
maxStock maxStock 最高库存
batchFlag isBatchManaged 是否批次管理
highValue highValue 是否高值物料

| safeStockFlag | - | 是否启用安全库存(转为 safetyStock 计算) |
| remark | remark | 备注 |
| - | itemType = 1 | 物料类型 |

3.3 WMS 商品 → MDM 物料

WMS 字段 MDM 字段 说明
id id 商品编号
code code 商品编码
name name 商品名称

| unit | - | 单位(需关联 MDM 单位) |
| categoryId | categoryId | 分类编号 |
| brandId | brandId | 品牌编号 |
| remark | remark | 备注 |
| - | itemType = 1 | 默认物料类型 |

3.4 WMS SKU → MDM SKU

WMS SKU 字段 MDM SKU 字段 说明
id id SKU 编号
itemId itemId 物料编号
code code SKU 编码
name name SKU 名称
barCode barCode SKU 条码
length length 长度
width width 宽度
height height 高度
grossWeight grossWeight 毛重
netWeight netWeight 净重
costPrice costPrice 成本价
sellingPrice salePrice 销售价

四、注意事项

  1. 数据合并策略:分类、单位等基础数据可能存在重复,需按编码去重合并
  2. ID 兼容:迁移后保持原 ID 不变,避免关联失效
  3. 向后兼容:原模块 API 保留,内部调用 MDM API 实现
  4. 数据验证:每阶段完成后进行数据完整性验证

五、风险评估

风险项 风险等级 应对措施
数据合并冲突 制定合并规则,人工审核冲突数据
前端适配遗漏 编写详细变更文档,逐页面核对
性能下降 MDM API 增加缓存机制

六、产出物清单

文件 说明 路径
mdm_migration_plan.md 改造计划总文档 docs/
mdm_migration_01_basic_data.sql 第一阶段 SQL:基础数据迁移 docs/sql/
mdm_migration_02_item_data.sql 第二阶段 SQL:物料数据迁移 docs/sql/
mdm_frontend_change_phase1.md 第一阶段前端变更文档 docs/
mdm_frontend_change_phase2.md 第二阶段前端变更文档 docs/
mdm_frontend_change.md MDM API 总览文档 docs/

七、进度跟踪

阶段 开始日期 结束日期 状态 完成率

| 第一阶段 | SQL脚本已准备 | - | ✅ 已完成(需手动执行SQL) | 100% |
| 第二阶段 | SQL脚本已准备 | - | ✅ 已完成(需手动执行SQL) | 100% |
| 第三阶段 | 后端代码改造完成 | - | ✅ 已完成 | 100% |
| 第四阶段 | - | - | ❌ 未开始(需前端开发) | 0% |


八、改造详情

第一阶段完成情况

序号 任务 状态
1.1 迁移 ERP 产品分类到 MDM 物料分类 ✅ SQL脚本已准备
1.2 迁移 MES 物料分类到 MDM 物料分类 ✅ SQL脚本已准备
1.3 迁移 WMS 商品分类到 MDM 物料分类 ✅ SQL脚本已准备
1.4 迁移 ERP 计量单位到 MDM 计量单位 ✅ SQL脚本已准备
1.5 迁移 MES 计量单位到 MDM 计量单位 ✅ SQL脚本已准备
1.6 迁移 WMS 商品品牌到 MDM 品牌 ✅ SQL脚本已准备

产出物docs/sql/mdm_migration_01_basic_data.sql

第二阶段完成情况

序号 任务 状态
2.1 迁移 MES 物料到 MDM(itemType=1 物料) ✅ SQL脚本已准备
2.2 迁移 ERP 产品到 MDM(itemType=2 产品) ✅ SQL脚本已准备
2.3 迁移 WMS 商品到 MDM ✅ SQL脚本已准备
2.4 创建物料 SKU 数据 ✅ SQL脚本已准备

产出物docs/sql/mdm_migration_02_item_data.sql

第三阶段完成情况

序号 任务 状态
3.1 ERP 模块引用 MDM API,修改 Service 层 ✅ 已完成
3.2 ERP 模块修改 Controller 层响应结构 ✅ 保持原结构,无需修改
3.3 MES 模块引用 MDM API,修改 Service 层 ✅ 已完成
3.4 MES 模块修改 Controller 层响应结构 ✅ 保持原结构,无需修改
3.5 WMS 模块引用 MDM API,修改 Service 层 ✅ 已完成
3.6 WMS 模块修改 Controller 层响应结构 ✅ 保持原结构,无需修改

改动文件
- yudao-module-erp/pom.xml - 添加 MDM 依赖
- yudao-module-erp/.../ErpProductServiceImpl.java - 改为调用 MDM API
- yudao-module-mes/pom.xml - 添加 MDM 依赖
- yudao-module-mes/.../MesMdItemServiceImpl.java - 改为调用 MDM API
- yudao-module-wms/pom.xml - 添加 MDM 依赖
- yudao-module-wms/.../WmsItemServiceImpl.java - 改为调用 MDM API
- yudao-module-mdm/.../MdmItemRespDTO.java - 添加 minStock、maxStock 字段

第四阶段待办事项

序号 任务 状态 备注
4.1 ERP 产品管理页面适配 ❌ 待开始 需前端开发
4.2 MES 物料管理页面适配 ❌ 待开始 需前端开发
4.3 WMS 商品管理页面适配 ❌ 待开始 需前端开发
4.4 各模块选择器组件适配 ❌ 待开始 需前端开发

前端变更文档
- docs/mdm_frontend_change_phase1.md
- docs/mdm_frontend_change_phase2.md