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

品种管理去掉「品种分类」「采购价」 - 前端联调方案

背景

基础数据-品种管理不再维护「品种分类」和「采购价」两个字段:

  • 数据库列 mdm_item.category_id、mdm_item.purchase_price 保留(历史数据不删),但接口层不再接收和返回。
  • MDM→MES 同步不再传品种分类,同步生成的 MES 物料「物料分类」为空,可在 MES 物料产品页面手工补填。
  • MES→MDM 反向同步(MES 物料勾选「同步到 MDM」回写分类)保持不变。

API 变化

方法 路径 变化
POST /mdm/item/create 请求体不再接收 categoryId、purchasePrice(传入将被忽略)
PUT /mdm/item/update 同上
GET /mdm/item/get 响应不再返回 categoryId、categoryName、purchasePrice
GET /mdm/item/page 响应不再返回上述三字段;不再支持 categoryId 查询参数
GET /mdm/item/simple-list 响应不再返回上述三字段
GET /mdm/item/list-by-ids 响应不再返回上述三字段

响应示例(节选):

{
  "code": 0,
  "data": {
    "list": [
      {
        "id": 1,
        "code": "PZ0001",
        "name": "水稻品种A",
        "specification": "500g/袋",
        "unitMeasureId": 2,
        "unitMeasureName": "袋",
        "salesPrice": 15.00,
        "syncedMes": true
      }
    ],
    "total": 1
  }
}

前端修改点(本批已同步修改,供前端团队复核)

1. 品种管理页面(src/views/basicData/mdm/)

文件 修改内容
data.ts 删除表单「品种分类」TreeSelect、「采购价」InputNumber;删除列表「品种分类」「采购价」列;删除 buildCategoryTree 及 MES 物料分类接口 import
index.vue 删除分类列表缓存、分类名称/颜色工具函数、#categoryName 插槽及分类加载逻辑
modules/form.vue 删除打开表单时加载分类树的逻辑
components/data.ts 品种选择弹窗删除「品种分类」搜索项与列
components/select-dialog.vue 删除分类缓存、名称/颜色函数、#categoryId 插槽及分类加载逻辑

2. API 类型(src/api/mdm/item/index.ts)

  • MdmItemApi.Item 删除 categoryId、categoryName、purchasePrice。
  • MdmItemApi.PageParams 删除 categoryId。

3. 依赖采购价自动算价的单据页(行为变化,重点复核)

品种不再有采购价,以下两处选品后「单价」不再自动带入,改为默认 0、由用户手工填写:

文件 修改内容
src/views/erp/purchase/order/modules/item-form.vue 选择品种后 productPrice 不再取采购价,置 0 手工填写
src/views/erp/purchase/request/modules/item-form.vue 同上

其余单据(销售、库存等)使用的是 ERP 产品(erp_product)自身价格或销售价,不受影响。

业务规则说明

场景 规则
新增/编辑品种 无分类、无采购价字段;保存接口忽略这两个入参
编辑历史品种 历史已填的分类/采购价在更新时不会被清空(仅不再回显),也不会被覆盖
品种同步到 MES 生成的 MES 物料产品「物料分类」为空;MES 物料产品页面仍可手工补填分类
MES 物料勾选同步到 MDM 分类回写 mdm_item.category_id 保持原逻辑(品种管理页面不展示该值)
品种分类管理模块 不改动,分类数据仍供 MES 物料分类等场景使用

注意事项

  • 销售价、成本价未下线,表单与列表保持原样。
  • 列表删除两列后列宽自行微调。
  • 品种选择弹窗(MdmItemSelect/MdmItemSelectDialog)被采购、库存等多处业务页复用,删除分类列后请回归验证选品带入(编码/名称/单位/条码)是否正常。