MDM 物料 ←――――――→ MES 物料
↑ ↑
| syncMes=true | syncMdm=true
└──────────────────┘
| 操作端 | 同步触发条件 | 同步目标 |
|---|---|---|
| MDM 新增/编辑物料 | syncMes = true |
MES mes_md_item + mes_md_item_batch_config |
| MES 新增/编辑物料 | syncMdm = true |
MDM mdm_item + mdm_item_batch_config |
| 字段 | 中文名 | 说明 |
|---|---|---|
| produceDateFlag | 生产日期必填 | 入库时是否必填生产日期 |
| expireDateFlag | 有效期必填 | 入库时是否必填有效期 |
| receiptDateFlag | 入库日期必填 | 入库时是否必填入库日期 |
| vendorFlag | 供应商必填 | 入库时是否必填供应商 |
| purchaseOrderCodeFlag | 采购订单号必填 | 入库时是否必填采购订单号 |
| lotNumberFlag | 生产批号必填 | 入库时是否必填生产批号 |
| qualityStatusFlag | 质量状态必填 | 入库时是否必填质量状态 |
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /admin-api/mdm/item/create |
新增 MDM 物料 |
| PUT | /admin-api/mdm/item/update |
编辑 MDM 物料 |
请求参数(MdmItemSaveReqVO):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 否 | 物料编号(编辑时必填) |
| code | String | 是 | 物料编码 |
| name | String | 是 | 物料名称 |
| specification | String | 否 | 规格型号 |
| categoryId | Long | 否 | 分类ID(关联 MES 物料分类) |
| unitMeasureId | Long | 否 | 计量单位ID |
| itemType | Integer | 是 | 物料类型:1原料, 2半成品, 3成品, 4辅料 |
| status | Integer | 是 | 状态:0启用, 1禁用 |
| minStock | BigDecimal | 否 | 最低库存 |
| maxStock | BigDecimal | 否 | 最高库存 |
| isBatchManaged | Boolean | 否 | 是否批次管理 |
| isHighValue | Boolean | 否 | 是否高值物料 |
| remark | String | 否 | 备注 |
| syncMes | Boolean | 否 | 是否同步到 MES |
| produceDateFlag | Boolean | 否 | 生产日期必填 |
| expireDateFlag | Boolean | 否 | 有效期必填 |
| receiptDateFlag | Boolean | 否 | 入库日期必填 |
| vendorFlag | Boolean | 否 | 供应商必填 |
| purchaseOrderCodeFlag | Boolean | 否 | 采购订单号必填 |
| lotNumberFlag | Boolean | 否 | 生产批号必填 |
| qualityStatusFlag | Boolean | 否 | 质量状态必填 |
响应:
{
"code": 0,
"msg": "操作成功",
"data": 123 // 物料ID
}
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /admin-api/mes/md-item/create |
新增 MES 物料 |
| PUT | /admin-api/mes/md-item/update |
编辑 MES 物料 |
请求参数(MesMdItemSaveReqVO):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 否 | 物料编号(编辑时必填) |
| code | String | 是 | 物料编码 |
| name | String | 是 | 物料名称 |
| specification | String | 否 | 规格型号 |
| unitMeasureId | Long | 是 | 计量单位ID |
| itemTypeId | Long | 是 | 物料分类ID |
| safeStockFlag | Boolean | 否 | 是否启用安全库存 |
| minStock | BigDecimal | 否 | 最低库存 |
| maxStock | BigDecimal | 否 | 最高库存 |
| highValue | Boolean | 否 | 是否高值物料 |
| batchFlag | Boolean | 否 | 是否批次管理 |
| remark | String | 否 | 备注 |
| syncMdm | Boolean | 否 | 是否同步到 MDM |
响应:
{
"code": 0,
"msg": "操作成功",
"data": 456 // 物料ID
}
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /admin-api/mes/md-item-batch-config/create |
新增批次配置 |
| PUT | /admin-api/mes/md-item-batch-config/update |
编辑批次配置 |
请求参数(MesMdItemBatchConfigSaveReqVO):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 否 | 配置ID(编辑时必填) |
| itemId | Long | 是 | 物料ID |
| produceDateFlag | Boolean | 否 | 生产日期必填 |
| expireDateFlag | Boolean | 否 | 有效期必填 |
| receiptDateFlag | Boolean | 否 | 入库日期必填 |
| vendorFlag | Boolean | 否 | 供应商必填 |
| purchaseOrderCodeFlag | Boolean | 否 | 采购订单号必填 |
| lotNumberFlag | Boolean | 否 | 生产批号必填 |
| qualityStatusFlag | Boolean | 否 | 质量状态必填 |
响应:
{
"code": 0,
"msg": "操作成功",
"data": 789 // 配置ID
}
在物料表单中新增以下字段:
| 字段 | 控件类型 | 展示条件 | 说明 |
|---|---|---|---|
| syncMes | Switch 开关 | 始终显示 | 是否同步到 MES |
| 批次属性配置 | 分组标题 | isBatchManaged = true 时显示 |
批次属性必填配置 |
| produceDateFlag | Switch 开关 | isBatchManaged = true 时显示 |
生产日期必填 |
| expireDateFlag | Switch 开关 | isBatchManaged = true 时显示 |
有效期必填 |
| receiptDateFlag | Switch 开关 | isBatchManaged = true 时显示 |
入库日期必填 |
| vendorFlag | Switch 开关 | isBatchManaged = true 时显示 |
供应商必填 |
| purchaseOrderCodeFlag | Switch 开关 | isBatchManaged = true 时显示 |
采购订单号必填 |
| lotNumberFlag | Switch 开关 | isBatchManaged = true 时显示 |
生产批号必填 |
| qualityStatusFlag | Switch 开关 | isBatchManaged = true 时显示 |
质量状态必填 |
data() {
return {
form: {
// 原有字段...
syncMes: false,
// 批次属性配置
produceDateFlag: false,
expireDateFlag: false,
receiptDateFlag: false,
vendorFlag: false,
purchaseOrderCodeFlag: false,
lotNumberFlag: false,
qualityStatusFlag: false
}
}
}
提交时将所有字段一起提交到 /admin-api/mdm/item/create 或 /admin-api/mdm/item/update。
注意事项:
- 当 isBatchManaged = true 时,显示批次属性配置区域
- 后端会自动将批次配置保存到 mdm_item_batch_config 表
- 当 syncMes = true 时,后端会同步物料和批次配置到 MES
在物料表单中新增以下字段:
| 字段 | 控件类型 | 展示条件 | 说明 |
|---|---|---|---|
| syncMdm | Switch 开关 | 始终显示 | 是否同步到 MDM |
data() {
return {
form: {
// 原有字段...
syncMdm: false
}
}
}
提交时将 syncMdm 字段一起提交。
注意事项:
- 当 syncMdm = true 时,后端会同步物料和批次配置到 MDM
- MES 的批次配置通过单独的批次配置页面维护(已有功能)
该页面已有,用于配置 MES 物料的批次属性必填项。当 MES 物料同步到 MDM 时,会自动带上这些配置。
| 字段 | 展示位置 | 说明 |
|---|---|---|
| code | 列表、详情 | 物料编码 |
| name | 列表、详情 | 物料名称 |
| specification | 列表、详情 | 规格型号 |
| itemType | 列表、详情 | 物料类型(需转换显示:1原料, 2半成品, 3成品, 4辅料) |
| status | 列表、详情 | 状态 |
| isBatchManaged | 列表、详情 | 是否批次管理 |
| syncMes | 详情 | 是否已同步到 MES(根据是否有对应 MES 物料判断) |
| 字段 | 展示位置 | 说明 |
|---|---|---|
| code | 列表、详情 | 物料编码 |
| name | 列表、详情 | 物料名称 |
| specification | 列表、详情 | 规格型号 |
| itemTypeName | 列表、详情 | 物料分类名称 |
| batchFlag | 列表、详情 | 是否批次管理 |
| syncMdm | 详情 | 是否已同步到 MDM(根据是否有对应 MDM 物料判断) |
| 场景 | 规则 |
|---|---|
| MDM 新增物料 + syncMes=true | 创建 MDM 物料 → 同步创建 MES 物料和批次配置 |
| MDM 编辑物料 + syncMes=true | 更新 MDM 物料 → 同步更新 MES 物料和批次配置(按 code 匹配) |
| MES 新增物料 + syncMdm=true | 创建 MES 物料 → 同步创建 MDM 物料和批次配置 |
| MES 编辑物料 + syncMdm=true | 更新 MES 物料 → 同步更新 MDM 物料和批次配置(按 code 匹配) |
| 场景 | 规则 |
|---|---|
| MDM → MES 同步 | 将 MDM 的 mdm_item_batch_config 同步到 MES 的 mes_md_item_batch_config |
| MES → MDM 同步 | 将 MES 的 mes_md_item_batch_config 同步到 MDM 的 mdm_item_batch_config |
| MDM 字段 | MES 字段 | 说明 |
|---|---|---|
| code | code | 物料编码,唯一标识 |
| name | name | 物料名称 |
| specification | specification | 规格型号 |
| unitMeasureId (MDM 单位ID) | unitMeasureId (MES 单位ID) | 通过单位编码转换 |
| categoryId (MDM 分类ID) | itemTypeId (MES 分类ID) | 通过分类编码转换 |
| itemType | itemOrProduct | 1/2/4→ITEM, 3→PRODUCT |
| isBatchManaged | batchFlag | 是否批次管理 |
| isHighValue | highValue | 是否高值物料 |
| minStock | minStock | 最低库存 |
| maxStock | maxStock | 最高库存 |
| MDM itemType | MDM 说明 | MES itemOrProduct | MES 说明 |
|---|---|---|---|
| 1 | 原料 | ITEM | 物料 |
| 2 | 半成品 | ITEM | 物料 |
| 3 | 成品 | PRODUCT | 产品 |
| 4 | 辅料 | ITEM | 物料 |
同步失败处理:同步操作与物料保存是同一事务,如果同步失败,整个保存操作会回滚。
编码唯一性:物料编码(code)在 MDM 和 MES 中都必须唯一,同步时按 code 进行匹配(存在则更新,不存在则新增)。
单位/分类映射:MDM 和 MES 的单位、分类是两套独立的主数据,同步时通过编码(code)进行映射,确保两边有相同的编码数据。
批次配置同步时机:
mdm_item_batch_config 表syncMes=true,同时同步到 MES 的 mes_md_item_batch_config 表mdm_item、mdm_item_batch_configmes_md_item、mes_md_item_batch_config