| | |
| | | # 物料分类统一使用 mes_md_item_type - 前端联调方案 |
| | | # 物料分类统一使用 mdm_item_category - 前端联调方案 |
| | | |
| | | ## 变更说明 |
| | | |
| | | 物料分类已从 MES 模块迁移到 MDM 模块统一管理: |
| | | - 原 MES 分类表 `mes_md_item_type` 保留但不再维护 |
| | | - 统一使用 MDM 分类表 `mdm_item_category` |
| | | - MES 模块通过兼容层读取 MDM 分类数据 |
| | | |
| | | ## 涉及页面 |
| | | |
| | | - MDM 物料管理页面(新增/编辑物料) |
| | | - MES 物料管理页面(新增/编辑物料) |
| | | - MDM 物料分类管理页面(主要维护入口) |
| | | - MDM 物料管理页面(新增/编辑物料选择分类) |
| | | - MES 物料管理页面(新增/编辑物料选择分类) |
| | | |
| | | ## 业务流程与数据带入 |
| | | |
| | | 1. 物料分类统一使用 `mes_md_item_type` 表,MDM 和 MES 模块共用同一套分类数据 |
| | | 2. 物料类型字段 `itemType` 用于快速选择:1原料、2半成品、3成品、4辅料 |
| | | 3. 当选择 `categoryId` 时,直接关联分类 ID;当只选择 `itemType` 时,系统自动匹配对应名称的分类 |
| | | 1. 物料分类统一使用 `mdm_item_category` 表,MDM 和 MES 模块共用同一套分类数据 |
| | | 2. 分类新增 `itemOrProduct` 字段兼容 MES 的 ITEM/PRODUCT 标识 |
| | | 3. 物料类型字段 `itemType` 用于快速选择:1原料、2半成品、3成品、4辅料 |
| | | |
| | | ## 字段映射 |
| | | |
| | | | MDM 字段 (mdm_item_category) | MES 字段 (mes_md_item_type) | 说明 | |
| | | |------------------------------|----------------------------|------| |
| | | | id | id | 分类编号 | |
| | | | code | code | 分类编码 | |
| | | | name | name | 分类名称 | |
| | | | parentId | parentId | 父分类编号 | |
| | | | itemType (Integer) | itemOrProduct (String) | 类型标识 | |
| | | | sort | sort | 排序 | |
| | | | status | status | 状态 | |
| | | | remark | remark | 备注 | |
| | | |
| | | ### itemType 与 itemOrProduct 映射关系 |
| | | |
| | | | itemType | 说明 | itemOrProduct | |
| | | |----------|------|---------------| |
| | | | 1 | 物料 | ITEM | |
| | | | 2 | 产品 | PRODUCT | |
| | | | 3 | 半成品 | ITEM | |
| | | | NULL | 全部 | - | |
| | | |
| | | ## API |
| | | |
| | | ### 获取物料分类列表 |
| | | ### MDM 分类管理(主要接口) |
| | | |
| | | | 方法 | 路径 | 说明 | |
| | | |------|------|------| |
| | | | GET | /admin-api/mes/md/item-type/list | 获取物料分类列表 | |
| | | | POST | /admin-api/mdm/category/create | 创建物料分类 | |
| | | | PUT | /admin-api/mdm/category/update | 更新物料分类 | |
| | | | DELETE | /admin-api/mdm/category/delete | 删除物料分类 | |
| | | | GET | /admin-api/mdm/category/get | 获取单个分类 | |
| | | | GET | /admin-api/mdm/category/list | 获取分类列表 | |
| | | | GET | /admin-api/mdm/category/list-all-simple | 获取启用的分类列表(下拉框) | |
| | | |
| | | **请求参数:** |
| | | **请求参数(MdmItemCategorySaveReqVO):** |
| | | |
| | | | 参数 | 类型 | 必填 | 说明 | |
| | | |------|------|------|------| |
| | | | status | Integer | 否 | 状态筛选 | |
| | | |
| | | **响应字段:** |
| | | |
| | | | 字段 | 类型 | 说明 | |
| | | |------|------|------| |
| | | | id | Long | 分类编号 | |
| | | | code | String | 分类编码 | |
| | | | name | String | 分类名称 | |
| | | | parentId | Long | 父分类编号 | |
| | | | itemOrProduct | String | 物料/产品标识 | |
| | | | sort | Integer | 排序 | |
| | | | status | Integer | 状态 | |
| | | | id | Long | 否 | 分类编号(更新时必填) | |
| | | | parentId | Long | 否 | 父分类编号 | |
| | | | code | String | 是 | 分类编码 | |
| | | | name | String | 是 | 分类名称 | |
| | | | itemType | Integer | 否 | 适用物料类型:1物料、2产品、3半成品、NULL全部 | |
| | | | itemOrProduct | String | 否 | 物料/产品标识:ITEM、PRODUCT(兼容MES) | |
| | | | sort | Integer | 否 | 排序 | |
| | | | status | Integer | 是 | 状态:0启用、1禁用 | |
| | | | remark | String | 否 | 备注 | |
| | | |
| | | **响应示例:** |
| | | |
| | | ```json |
| | | { |
| | | "code": 0, |
| | | "data": [ |
| | | { |
| | | "id": 1, |
| | | "code": "RAW001", |
| | | "name": "原料", |
| | | "parentId": 0, |
| | | "itemOrProduct": "1", |
| | | "sort": 1, |
| | | "status": 0 |
| | | } |
| | | ] |
| | | "data": { |
| | | "id": 1, |
| | | "parentId": 0, |
| | | "code": "RAW001", |
| | | "name": "原料", |
| | | "itemType": 1, |
| | | "itemOrProduct": "ITEM", |
| | | "sort": 0, |
| | | "status": 0 |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### 获取物料分类详情 |
| | | ### MES 分类接口(兼容保留) |
| | | |
| | | | 方法 | 路径 | 说明 | |
| | | |------|------|------| |
| | | | GET | /admin-api/mes/md/item-type/get | 获取物料分类详情 | |
| | | | GET | /admin-api/mes/md/item-type/list | 获取物料分类列表 | |
| | | | GET | /admin-api/mes/md/item-type/simple-list | 获取精简列表(下拉框) | |
| | | |
| | | **请求参数:** |
| | | |
| | | | 参数 | 类型 | 必填 | 说明 | |
| | | |------|------|------|------| |
| | | | id | Long | 是 | 分类编号 | |
| | | |
| | | ### 保存物料分类 |
| | | |
| | | | 方法 | 路径 | 说明 | |
| | | |------|------|------| |
| | | | POST | /admin-api/mes/md/item-type/create | 创建物料分类 | |
| | | | PUT | /admin-api/mes/md/item-type/update | 更新物料分类 | |
| | | |
| | | **请求参数:** |
| | | |
| | | | 参数 | 类型 | 必填 | 说明 | |
| | | |------|------|------|------| |
| | | | id | Long | 否 | 分类编号(更新时必填) | |
| | | | code | String | 是 | 分类编码 | |
| | | | name | String | 是 | 分类名称 | |
| | | | parentId | Long | 否 | 父分类编号 | |
| | | | itemOrProduct | String | 否 | 物料/产品标识 | |
| | | | sort | Integer | 否 | 排序 | |
| | | | status | Integer | 否 | 状态 | |
| | | > 注意:MES 分类接口底层已改为读取 MDM 分类数据,建议前端统一使用 MDM 分类接口。 |
| | | |
| | | ## 字段展示规则 |
| | | |
| | | | 字段 | 展示位置 | 说明 | |
| | | |------|----------|------| |
| | | | categoryId | 新增/编辑表单 | 物料分类下拉框,数据来源:mes_md_item_type | |
| | | | categoryId / itemTypeId | 新增/编辑表单 | 物料分类下拉框,数据来源:mdm_item_category | |
| | | | itemType | 新增/编辑表单 | 物料类型快捷选择:1原料、2半成品、3成品、4辅料 | |
| | | | itemOrProduct | 分类表单 | 物料/产品标识,用于 MES 兼容 | |
| | | |
| | | ## 业务规则说明 |
| | | |
| | | | 场景 | 规则 | |
| | | |------|------| |
| | | | 物料分类选择 | 使用 `mes_md_item_type` 表,MDM 和 MES 共用同一套分类数据 | |
| | | | itemType 与 categoryId 关系 | 当 categoryId 为空时,可根据 itemType 自动匹配对应名称的分类 | |
| | | | itemType 映射 | 1→原料,2→半成品,3→成品,4→辅料 | |
| | | | 分类校验 | 保存物料时,会通过 RPC API 校验分类是否存在 | |
| | | | 分类管理 | 统一在 MDM 模块管理,MES 模块只读 | |
| | | | 分类删除 | 有子分类或有物料引用时不可删除 | |
| | | | 物料同步 | MDM 物料同步到 MES 时,分类 ID 保持一致 | |
| | | | 兼容性 | MES 分类服务优先从 MDM 获取,本地表作为回退 | |
| | | |
| | | ## 注意事项 |
| | | |
| | | - 物料分类数据在 MES 模块管理,MDM 模块通过 RPC API 调用获取 |
| | | - `itemType` 是快捷选择字段,最终会转换为对应的分类编码 |
| | | - 如果同时设置了 `categoryId` 和 `itemType`,优先使用 `categoryId` |
| | | - 分类支持树形结构,可通过 `parentId` 构建层级关系 |
| | | 1. **菜单变更**:MES 的"物料产品分类"菜单已禁用,统一使用 MDM 的"物料分类"菜单 |
| | | 2. **数据一致性**:两表数据已同步,后续维护只需操作 MDM 分类 |
| | | 3. **API 兼容**:MES 分类接口保留,底层读取 MDM 数据,前端可继续使用 |
| | | 4. **字段转换**:前端展示时,`itemOrProduct` 值需转换为中文(ITEM=物料,PRODUCT=产品) |