# MDM 产品数据一体化改造 - 前端文档 ## 概述 本次改造将 MDM 物料作为统一产品主数据,CRM 和 ERP 模块的产品数据统一使用 MDM 物料(itemType=2 产品类型)。 --- ## 一、改造清单 ### 后端改造(已完成) | 文件 | 改动说明 | |------|----------| | `yudao-module-mdm-api/` | MDM 物料 API 模块 | | `MdmItemApi.java` | 物料 API 接口 | | `MdmItemRespDTO.java` | 物料响应 DTO | | `MdmItemCreateReqDTO.java` | 物料创建请求 DTO | | `MdmItemUpdateReqDTO.java` | 物料更新请求 DTO | | `MdmItemTypeEnum.java` | 物料类型枚举 | | `ErpProductServiceImpl.java` | 使用 MDM 物料 API | | `CrmProductServiceImpl.java` | 使用 MDM 物料 API | --- ## 二、涉及页面 ### ERP 产品管理 | 页面 | 路径 | 改动说明 | |------|------|----------| | 产品列表 | `/erp/product/index` | 无需改动,接口兼容 | | 产品表单 | `/erp/product/form` | 无需改动,接口兼容 | ### CRM 产品管理 | 页面 | 路径 | 改动说明 | |------|------|----------| | 产品列表 | `/crm/product/index` | 无需改动,接口兼容 | | 产品表单 | `/crm/product/form` | 无需改动,接口兼容 | ### MDM 物料管理 | 页面 | 路径 | 说明 | |------|------|------| | 物料列表 | `/mdm/item/index` | 统一产品主数据入口 | | 物料表单 | `/mdm/item/form` | 创建/编辑物料 | --- ## 三、数据模型映射 ### MDM 物料类型 | 类型值 | 说明 | 用途 | |--------|------|------| | 1 | 物料 | 原材料、辅料等 | | 2 | 产品 | 销售产品(CRM、ERP 使用) | | 3 | 半成品 | 生产中间件 | ### 字段映射(MDM -> ERP) | MDM 字段 | ERP 字段 | 说明 | |----------|----------|------| | id | id | 编号 | | name | name | 名称 | | barCode | barCode | 条码 | | specification | standard | 规格 | | categoryId | categoryId | 分类编号 | | unitMeasureId | unitId | 单位编号 | | status | status | 状态 | | purchasePrice | purchasePrice | 采购价格 | | salesPrice | salePrice | 销售价格 | | costPrice | minPrice | 成本价 -> 最低价 | | expiryDay | expiryDay | 保质期 | | weight | weight | 重量 | | remark | remark | 备注 | ### 字段映射(MDM -> CRM) | MDM 字段 | CRM 字段 | 说明 | |----------|----------|------| | id | id | 编号 | | code | no | 编码 | | name | name | 名称 | | unitMeasureId | unit | 单位 | | salesPrice | price | 价格 | | status | status | 状态 | | categoryId | categoryId | 分类编号 | | remark | description | 描述 | --- ## 四、API 接口 ### MDM 物料 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /rpc-api/mdm/item/create | 创建物料 | | PUT | /rpc-api/mdm/item/update | 更新物料 | | GET | /rpc-api/mdm/item/get | 获取物料 | | POST | /rpc-api/mdm/item/list | 获取物料列表 | | POST | /rpc-api/mdm/item/page | 获取物料分页 | | GET | /rpc-api/mdm/item/validate-exists | 校验物料存在 | | GET | /rpc-api/mdm/item/get-by-code | 根据编码获取物料 | | GET | /rpc-api/mdm/item/get-by-bar-code | 根据条码获取物料 | ### ERP 产品 API(保持不变) | 方法 | 路径 | 说明 | |------|------|------| | POST | /erp/product/create | 创建产品 | | PUT | /erp/product/update | 更新产品 | | DELETE | /erp/product/delete | 删除产品 | | GET | /erp/product/get | 获取产品 | | GET | /erp/product/page | 获取产品分页 | | GET | /erp/product/simple-list | 获取产品精简列表 | ### CRM 产品 API(保持不变) | 方法 | 路径 | 说明 | |------|------|------| | POST | /crm/product/create | 创建产品 | | PUT | /crm/product/update | 更新产品 | | DELETE | /crm/product/delete | 删除产品 | | GET | /crm/product/get | 获取产品 | | GET | /crm/product/page | 获取产品分页 | | GET | /crm/product/simple-list | 获取产品精简列表 | --- ## 五、前端修改点 ### 5.1 产品选择组件(可选优化) 如果需要统一产品选择体验,可以创建 MDM 物料选择组件: ```html ``` ### 5.2 使用方式 ```html ``` --- ## 六、注意事项 ### 6.1 数据迁移 如果已有 ERP 或 CRM 产品数据,需要迁移到 MDM 物料表: ```sql -- 迁移 ERP 产品到 MDM 物料(示例) INSERT INTO mdm_item (id, code, name, bar_code, specification, category_id, unit_measure_id, item_type, status, purchase_price, sales_price, cost_price, expiry_day, weight, remark, creator, create_time, updater, update_time, deleted, tenant_id) SELECT id, bar_code AS code, name, bar_code, standard AS specification, category_id, unit_id AS unit_measure_id, 2 AS item_type, -- 产品类型 status, purchase_price, sale_price AS sales_price, min_price AS cost_price, expiry_day, weight, remark, creator, create_time, updater, update_time, deleted, tenant_id FROM erp_product WHERE deleted = 0; -- 迁移 CRM 产品到 MDM 物料(需要处理 ID 冲突) -- 注意:如果 ID 与 ERP 产品冲突,需要重新分配 ID 并更新关联数据 ``` ### 6.2 接口兼容性 - ERP 和 CRM 的产品接口保持不变,前端无需修改 - 数据实际从 MDM 获取,对前端透明 - 创建/更新操作通过 MDM API 执行 ### 6.3 权限管理 - CRM 产品保留本地记录用于权限管理 - 产品 ID 与 MDM 物料 ID 保持一致 - 权限验证仍然通过 CRM 权限系统 ### 6.4 废弃说明 - `erp_product` 表:保留但不再作为主数据源 - `crm_product` 表:保留用于权限管理,数据同步自 MDM - 建议后续版本在前端菜单中统一使用 MDM 物料管理 --- ## 七、后续计划 | Phase | 内容 | 状态 | |-------|------|------| | Phase 1 | 客户数据统一 - ERP 使用 CRM 客户 | **已完成** | | Phase 2 | 产品数据统一 - CRM/ERP 使用 MDM 物料 | **已完成** | | Phase 3 | 合同生成销售订单 | 待开始 | | Phase 4 | 销售全流程追溯 | 待开始 | | Phase 5 | 营销数据报表 | 待开始 | | Phase 6 | 数据迁移与清理 | 待开始 |