编辑 | blame | 历史 | 原始文档

MDM 物料同步 MES 优化 - 前端联调方案

涉及页面

  • 基础数据 > MDM > 物料管理(列表页)
  • 基础数据 > MDM > 物料管理(新增/编辑弹窗)

变更概述

  1. 移除 syncMes 复选框:创建/编辑物料时不再需要手动勾选"同步到 MES",后端自动同步
  2. 列表新增同步状态列:显示物料是否已同步到 MES
  3. 状态/删除实时同步:MDM 侧更新状态或删除物料时,自动同步到 MES

API 变更

1. GET /mdm/item/page - 响应新增字段

响应字段新增:

字段 类型 说明
syncedMes Boolean 是否已同步到 MES。true=已同步,false/null=未同步

响应示例:

{
  "code": 0,
  "data": {
    "list": [
      {
        "id": 1,
        "code": "ITEM001",
        "name": "螺丝",
        "syncedMes": true,
        "...": "..."
      },
      {
        "id": 2,
        "code": "ITEM002",
        "name": "螺母",
        "syncedMes": false,
        "...": "..."
      }
    ],
    "total": 100
  }
}

2. GET /mdm/item/get - 响应新增字段

同上,syncedMes 表示该物料是否已同步到 MES。

字段展示规则

字段 展示位置 说明
syncedMes 列表新增列 true 时显示绿色"已同步"标签,false 时显示灰色"未同步"标签

业务规则说明

场景 规则
新增物料 后端自动同步到 MES,列表中 syncedMes 为 true
编辑物料 后端自动同步到 MES
更新物料状态 后端自动同步状态到 MES(启用/禁用)
删除物料 后端自动同步删除 MES 中的对应记录(如存在)
表单中的 syncMes 字段 前端可保留但不再生效,建议隐藏"同步到 MES"开关

前端修改点

1. TypeScript 类型定义

src/api/mdm/item/index.tsMdmItemApi.Item 接口新增 syncedMes?: boolean 字段。

2. 列表新增同步状态列

src/views/basicData/mdm/data.tsuseGridColumns() 新增一列:

  • field: syncedMes
  • title: "同步状态"
  • 使用插槽渲染 Tag 组件

3. 列表页模板

src/views/basicData/mdm/index.vue 中新增 syncedMes 插槽模板,展示同步状态标签。

4. 表单移除 syncMes 开关(可选)

src/views/basicData/mdm/data.tsuseFormSchema() 可隐藏或移除 syncMes 表单项,后端已忽略此参数。

注意事项

  • 历史数据中未同步到 MES 的物料,syncedMes 为 false;可通过编辑物料触发自动同步
  • MES 同步失败会回滚 MDM 操作(保持数据一致性),前端需关注接口返回的错误信息
  • syncedMes 字段在详情页(getItem)也会返回,可用于详情页显示同步状态