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

MDM 物料批次属性配置 - 前端联调方案

涉及页面

  • 基础数据 - 物料产品列表页
  • 物料详情/编辑页
  • MES 生产 - 物料产品详情页

业务场景

当物料启用批次管理(isBatchManaged = true)时,需要配置批次属性,定义创建批次时哪些字段是必填的。

批次属性字段(仅保留以下7个):

字段 说明
生产日期 批次的生产日期
有效期 批次的失效日期
入库日期 批次的入库日期
供应商 批次的供应商
采购订单编号 批次的采购订单号
生产批号 批次的批号
质量状态 批次的质量状态

双向同步说明

┌─────────────────────────────────────────────────────────────┐
│                    批次配置双向同步                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   MDM 物料页面  ←────────────────→  MES 物料页面             │
│        │                                  │                 │
│        ▼                                  ▼                 │
│   mdm_item_batch_config  ←─────────→  mes_md_item_batch_config │
│        │                                  │                 │
│        └──────────主存储──────────────────┘                 │
│                                                             │
│   说明:                                                    │
│   - MDM 表是主存储,MES 表是镜像                            │
│   - 任意一方修改,自动同步到另一方                           │
│   - 查询时优先从 MDM 表获取                                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

API

获取物料批次配置

方法 路径 说明
GET /mes/md/item-batch-config/get-by-item-id 根据物料ID获取批次配置

请求参数:

参数 类型 必填 说明
itemId Long 物料ID

响应:

{
  "code": 0,
  "data": {
    "id": 1,
    "itemId": 8,
    "produceDateFlag": true,
    "expireDateFlag": true,
    "receiptDateFlag": false,
    "vendorFlag": true,
    "purchaseOrderCodeFlag": false,
    "lotNumberFlag": true,
    "qualityStatusFlag": false
  },
  "msg": "操作成功"
}

响应字段说明:

字段 类型 说明
id Long 配置ID
itemId Long 物料ID
produceDateFlag Boolean 生产日期必填
expireDateFlag Boolean 有效期必填
receiptDateFlag Boolean 入库日期必填
vendorFlag Boolean 供应商必填
purchaseOrderCodeFlag Boolean 采购订单号必填
lotNumberFlag Boolean 生产批号必填
qualityStatusFlag Boolean 质量状态必填

保存物料批次配置

方法 路径 说明
POST /mes/md/item-batch-config/save 保存批次配置(新增/更新)

请求参数:

{
  "itemId": 8,
  "produceDateFlag": true,
  "expireDateFlag": true,
  "receiptDateFlag": false,
  "vendorFlag": true,
  "purchaseOrderCodeFlag": false,
  "lotNumberFlag": true,
  "qualityStatusFlag": false
}
参数 类型 必填 说明
itemId Long 物料ID
produceDateFlag Boolean 生产日期必填,默认 false
expireDateFlag Boolean 有效期必填,默认 false
receiptDateFlag Boolean 入库日期必填,默认 false
vendorFlag Boolean 供应商必填,默认 false
purchaseOrderCodeFlag Boolean 采购订单号必填,默认 false
lotNumberFlag Boolean 生产批号必填,默认 false
qualityStatusFlag Boolean 质量状态必填,默认 false

响应:

{
  "code": 0,
  "data": 1,
  "msg": "操作成功"
}

前端修改点

1. 物料详情/编辑页

在物料详情页增加"批次属性配置"区块。

展示条件:
- 当物料的 isBatchManaged = true 时显示该配置区块
- 当物料的 isBatchManaged = false 时隐藏该配置区块

2. 批次属性配置表单

表单字段(仅7个):

字段 控件类型 说明
生产日期 el-checkbox 勾选表示创建批次时必填
有效期 el-checkbox 勾选表示创建批次时必填
入库日期 el-checkbox 勾选表示创建批次时必填
供应商 el-checkbox 勾选表示创建批次时必填
采购订单号 el-checkbox 勾选表示创建批次时必填
生产批号 el-checkbox 勾选表示创建批次时必填
质量状态 el-checkbox 勾选表示创建批次时必填

建议布局:

┌─────────────────────────────────────────────────────────────┐
│ 批次属性配置                                                  │
├─────────────────────────────────────────────────────────────┤
│  ☑ 生产日期    ☑ 有效期      ☐ 入库日期    ☑ 供应商         │
│  ☐ 采购订单号   ☑ 生产批号    ☐ 质量状态                    │
└─────────────────────────────────────────────────────────────┘

3. 数据加载逻辑

进入物料详情页时:

  1. 加载物料基本信息
  2. 判断 isBatchManaged 是否为 true
  3. 如果是,调用 GET /mes/md/item-batch-config/get-by-item-id?itemId={物料ID} 获取配置
  4. 渲染配置表单,将返回的配置数据绑定到表单

保存物料时:

  1. 先保存物料基本信息
  2. 如果 isBatchManaged = true,调用 POST /mes/md/item-batch-config/save 保存批次配置

4. 推荐默认配置

对于常见的采购物料,推荐默认配置:

字段 推荐 说明
生产日期 追溯生产时间
有效期 有保质期的物料
入库日期 通常自动记录
供应商 采购物料需要追溯来源
采购订单号 可选
生产批号 批次追溯
质量状态 需要质检时使用

业务规则说明

场景 规则
物料未启用批次管理 不显示批次属性配置区块
物料启用批次管理但无配置 创建批次时允许任意字段(宽松模式)
物料启用批次管理且有配置 创建批次时校验必填字段
MDM 修改批次配置 自动同步到 MES 表
MES 修改批次配置 自动同步到 MDM 表

注意事项

  • 批次配置是物料级别的,每个物料独立配置
  • 修改批次配置不会影响已创建的批次,只影响后续新创建的批次
  • MDM 和 MES 的批次配置会自动双向同步
  • 只保留必要的7个批次属性字段,其他字段不再使用