当前 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 | 迁移 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 数据迁移脚本
- 前端变更文档
目标:完成物料/产品主数据迁移
| 序号 | 任务 | 模块 | 优先级 |
|---|---|---|---|
| 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 数据迁移脚本
- 前端变更文档
目标: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 |
产出物:
- 后端代码改造
- 前端变更文档
目标:前端页面适配新数据结构
| 序号 | 任务 | 模块 | 优先级 |
|---|---|---|---|
| 4.1 | ERP 产品管理页面适配 | ERP | P1 |
| 4.2 | MES 物料管理页面适配 | MES | P1 |
| 4.3 | WMS 商品管理页面适配 | WMS | P1 |
| 4.4 | 各模块选择器组件适配 | 全部 | P1 |
产出物:
- 前端代码改造
- 前端变更文档
| 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 | 产品类型 |
| 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 | 物料类型 |
| WMS 字段 | MDM 字段 | 说明 |
|---|---|---|
| id | id | 商品编号 |
| code | code | 商品编码 |
| name | name | 商品名称 |
| unit | - | 单位(需关联 MDM 单位) |
| categoryId | categoryId | 分类编号 |
| brandId | brandId | 品牌编号 |
| remark | remark | 备注 |
| - | itemType = 1 | 默认物料类型 |
| 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 | 销售价 |
| 风险项 | 风险等级 | 应对措施 |
|---|---|---|
| 数据合并冲突 | 中 | 制定合并规则,人工审核冲突数据 |
| 前端适配遗漏 | 中 | 编写详细变更文档,逐页面核对 |
| 性能下降 | 低 | 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