在 MDM 物料「新增 / 编辑」时,新增「同步到 MES」开关。勾选后,MDM 物料保存成功的同时,会自动在 MES 侧创建/更新一条对应的物料产品(mes_md_item),实现主数据向 MES 的同步。
syncMes=false:仅操作 MDM,不影响 MES。接口路径不变,仅在请求体新增 syncMes 字段。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /admin-api/mdm/item/create | 创建物料(可同步 MES) |
| PUT | /admin-api/mdm/item/update | 更新物料(可同步 MES) |
请求参数(仅列出新增/相关字段):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| syncMes | Boolean | 否 | 是否同步到 MES,默认 false。勾选时触发 MES 同步 |
| code | String | 是 | 物料编码(MDM/MES 关联键,两边须一致) |
| name | String | 是 | 物料名称 |
| unitMeasureId | Long | 是 | MDM 计量单位 id(同步时按 code 映射到 MES 单位) |
| categoryId | Long | 是 | MDM 物料分类 id(同步时按 code 映射到 MES 物料分类) |
响应: 创建返回 { "code": 200, "data": <物料id> };更新返回 { "code": 200, "data": true }(与原接口一致)。
注意:同步失败时(如 MES 侧找不到对应 code 的单位/分类、或 MES 名称重复等),接口会返回错误,且 MDM 的创建/更新会一并回滚(同一事务)。
在物料新增/编辑表单(mes/pd/... 或 mdm/item 对应表单组件)中新增一个开关:
<el-form-item label="同步到 MES">
<el-switch v-model="formData.syncMes" />
</el-form-item>
data() {
return {
formData: {
// ... 原有字段
syncMes: false, // 是否同步到 MES,默认不勾选
},
}
}
编辑回显时,
syncMes默认置为false(不同步)即可,由用户按需勾选。
无需改动提交逻辑,syncMes 随表单一并提交即可:
submitForm() {
this.$refs['form'].validate(valid => {
if (!valid) return
// formData 中已包含 syncMes,正常调用 create / update 接口
if (this.formData.id) {
updateItem(this.formData).then(...)
} else {
createItem(this.formData).then(...)
}
})
}
code 映射——MDM 的计量单位 code 必须在 MES mes_md_unit_measure 中存在,MDM 的物料分类 code 必须在 MES mes_md_item_type 中存在(且为叶子分类),否则同步报错回滚。请确保两边主数据编码已对齐。isHighValue→MES highValue,MDM isBatchManaged→MES batchFlag,minStock/maxStock/specification/remark 直传;MES safeStockFlag 固定为 true 以保留库存上下限。