# MDM 物料主数据模块改造 - 前端变更文档 ## 概述 本次改造将 ERP、MES、WMS 三个模块的物料/产品数据统一到 MDM(主数据管理)模块,消除数据孤岛。 ## 模块变更 ### 1. MDM 模块(新增) 新增 MDM 物料主数据管理模块,包含以下页面: | 页面 | 路径 | 说明 | |------|------|------| | 物料管理 | /mdm/item | 物料主数据管理 | | 物料分类 | /mdm/category | 物料分类管理 | | 计量单位 | /mdm/unit | 计量单位管理 | | 品牌管理 | /mdm/brand | 品牌管理 | | 仓库管理 | /mdm/warehouse | 仓库主数据管理 | ### 2. ERP 模块 ERP 产品数据来源于 MDM,变更如下: | 原页面 | 变化 | |--------|------| | /erp/product | 产品数据从 MDM 获取,页面保留但数据源变更 | ### 3. MES 模块 MES 物料数据来源于 MDM,变更如下: | 原页面 | 变化 | |--------|------| | /mes/md/item | 物料数据从 MDM 获取,页面保留但数据源变更 | ### 4. WMS 模块 WMS 商品和 SKU 数据来源于 MDM,变更如下: | 原页面 | 变化 | |--------|------| | /wms/item | 商品数据从 MDM 获取,页面保留但数据源变更 | | /wms/item-sku | SKU 数据从 MDM 获取,页面保留但数据源变更 | --- ## API 变更说明 ### MDM 物料 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /mdm/item/create | 创建物料 | | PUT | /mdm/item/update | 更新物料 | | PUT | /mdm/item/update-status | 更新物料状态 | | DELETE | /mdm/item/delete | 删除物料(实际为禁用) | | GET | /mdm/item/get | 获取物料 | | GET | /mdm/item/page | 获取物料分页 | | GET | /mdm/item/list-by-ids | 获取物料列表 | **请求参数(创建):** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | code | String | 是 | 物料编码 | | name | String | 是 | 物料名称 | | barCode | String | 否 | 物料条码 | | specification | String | 否 | 规格型号 | | categoryId | Long | 是 | 物料分类编号 | | unitMeasureId | Long | 是 | 计量单位编号 | | brandId | Long | 否 | 品牌编号 | | itemType | Integer | 是 | 物料类型(1:物料, 2:产品, 3:半成品) | | status | Integer | 否 | 状态(0:启用, 1:禁用) | | purchasePrice | BigDecimal | 否 | 采购价格 | | salesPrice | BigDecimal | 否 | 销售价格 | | costPrice | BigDecimal | 否 | 成本价格 | | safetyStock | BigDecimal | 否 | 安全库存 | | expiryDays | Integer | 否 | 保质期天数 | | isBatchManaged | Boolean | 否 | 是否批次管理 | | remark | String | 否 | 备注 | **响应:** ```json { "code": 0, "data": 1, "msg": "操作成功" } ``` ### MDM 物料分类 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /mdm/category/create | 创建分类 | | PUT | /mdm/category/update | 更新分类 | | DELETE | /mdm/category/delete | 删除分类 | | GET | /mdm/category/get | 获取分类 | | GET | /mdm/category/list | 获取分类列表 | | GET | /mdm/category/list-all-simple | 获取启用的分类列表 | ### MDM 计量单位 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /mdm/unit/create | 创建单位 | | PUT | /mdm/unit/update | 更新单位 | | DELETE | /mdm/unit/delete | 删除单位 | | GET | /mdm/unit/get | 获取单位 | | GET | /mdm/unit/page | 获取单位分页 | | GET | /mdm/unit/list-by-ids | 获取单位列表 | ### MDM 品牌 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /mdm/brand/create | 创建品牌 | | PUT | /mdm/brand/update | 更新品牌 | | DELETE | /mdm/brand/delete | 删除品牌 | | GET | /mdm/brand/get | 获取品牌 | | GET | /mdm/brand/page | 获取品牌分页 | | GET | /mdm/brand/list-by-ids | 获取品牌列表 | ### MDM 仓库 API | 方法 | 路径 | 说明 | |------|------|------| | POST | /mdm/warehouse/create | 创建仓库 | | PUT | /mdm/warehouse/update | 更新仓库 | | PUT | /mdm/warehouse/update-status | 更新仓库状态 | | DELETE | /mdm/warehouse/delete | 删除仓库 | | GET | /mdm/warehouse/get | 获取仓库 | | GET | /mdm/warehouse/page | 获取仓库分页 | | GET | /mdm/warehouse/list-by-ids | 获取仓库列表 | --- ## 前端修改点 ### 1. ERP 产品页面 ERP 产品页面改为从 MDM 获取数据,前端需要修改: **API 调用变更:** ```js // 原调用 ERP 产品 API import { getProductPage, getProduct } from '@/api/erp/product' // 改为调用 MDM 物料 API(itemType=2 产品) import { getItemPage, getItem } from '@/api/mdm/item' // 查询时需要传入 itemType=2(产品类型) getItemPage({ itemType: 2, pageNo: 1, pageSize: 10 }) ``` **字段映射:** | ERP 字段 | MDM 字段 | 说明 | |----------|----------|------| | id | id | 编号 | | barCode | code | 编码(原条码改为编码) | | name | name | 名称 | | spec | specification | 规格型号 | | categoryId | categoryId | 分类编号 | | unitId | unitMeasureId | 单位编号 | | brandId | brandId | 品牌编号 | | status | status | 状态 | | purchasePrice | purchasePrice | 采购价格 | | salePrice | salesPrice | 销售价格 | | minPrice | costPrice | 最低价格改为成本价 | ### 2. MES 物料页面 MES 物料页面改为从 MDM 获取数据: **API 调用变更:** ```js // 原调用 MES 物料 API import { getItemPage, getItem } from '@/api/mes/md/item' // 改为调用 MDM 物料 API(itemType=1 物料) import { getItemPage, getItem } from '@/api/mdm/item' // 查询时需要传入 itemType=1(物料类型) getItemPage({ itemType: 1, pageNo: 1, pageSize: 10 }) ``` **MES 特有功能保留:** - 批次属性配置:仍由 MES 模块管理 - BOM 配置:仍由 MES 模块管理 - SOP/SIP 配置:仍由 MES 模块管理 ### 3. WMS 商品/SKU 页面 WMS 商品和 SKU 页面改为从 MDM 获取数据: **API 调用变更:** ```js // 原调用 WMS 商品 API import { getItemPage, getItem } from '@/api/wms/item' // 改为调用 MDM 物料 API import { getItemPage, getItem } from '@/api/mdm/item' // SKU 数据 import { getItemSkuList } from '@/api/mdm/item-sku' ``` --- ## 注意事项 1. **物料类型区分**: - itemType=1:物料(MES 使用) - itemType=2:产品(ERP 使用) - itemType=3:半成品 2. **删除操作**:MDM 物料删除实际为禁用操作,不做物理删除 3. **SKU 模式**:所有物料必须配置 SKU,ERP/MES 数据迁移时自动创建默认 SKU 4. **向后兼容**:原模块的 API 接口保留,内部调用 MDM API --- ## 数据库表 | 表名 | 说明 | |------|------| | mdm_item | 物料主数据表 | | mdm_item_sku | 物料 SKU 表 | | mdm_item_category | 物料分类表 | | mdm_unit_measure | 计量单位表 | | mdm_brand | 品牌表 | | mdm_warehouse | 仓库表 | | mdm_item_batch_config | 批次属性配置表 |