2026-07-01 6b5f7c66fc40d7f6099d561e31a34fbd50dd20d3
docs/mdm_frontend_change.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,241 @@
# MDM ç‰©æ–™ä¸»æ•°æ®æ¨¡å—改造 - å‰ç«¯å˜æ›´æ–‡æ¡£
## æ¦‚è¿°
本次改造将 ERP、MES、WMS ä¸‰ä¸ªæ¨¡å—的物料/产品数据统一到 MDM(主数据管理)模块,消除数据孤岛。
## æ¨¡å—变更
### 1. MDM æ¨¡å—(新增)
新增 MDM ç‰©æ–™ä¸»æ•°æ®ç®¡ç†æ¨¡å—,包含以下页面:
| é¡µé¢ | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| ç‰©æ–™ç®¡ç† | /mdm/item | ç‰©æ–™ä¸»æ•°æ®ç®¡ç† |
| ç‰©æ–™åˆ†ç±» | /mdm/category | ç‰©æ–™åˆ†ç±»ç®¡ç† |
| è®¡é‡å•位 | /mdm/unit | è®¡é‡å•位管理 |
| å“ç‰Œç®¡ç† | /mdm/brand | å“ç‰Œç®¡ç† |
| ä»“库管理 | /mdm/warehouse | ä»“库主数据管理 |
### 2. ERP æ¨¡å—
ERP äº§å“æ•°æ®æ¥æºäºŽ MDM,变更如下:
| åŽŸé¡µé¢ | å˜åŒ– |
|--------|------|
| /erp/product | äº§å“æ•°æ®ä»Ž MDM èŽ·å–ï¼Œé¡µé¢ä¿ç•™ä½†æ•°æ®æºå˜æ›´ |
### 3. MES æ¨¡å—
MES ç‰©æ–™æ•°æ®æ¥æºäºŽ MDM,变更如下:
| åŽŸé¡µé¢ | å˜åŒ– |
|--------|------|
| /mes/md/item | ç‰©æ–™æ•°æ®ä»Ž MDM èŽ·å–ï¼Œé¡µé¢ä¿ç•™ä½†æ•°æ®æºå˜æ›´ |
### 4. WMS æ¨¡å—
WMS å•†å“å’Œ SKU æ•°æ®æ¥æºäºŽ MDM,变更如下:
| åŽŸé¡µé¢ | å˜åŒ– |
|--------|------|
| /wms/item | å•†å“æ•°æ®ä»Ž MDM èŽ·å–ï¼Œé¡µé¢ä¿ç•™ä½†æ•°æ®æºå˜æ›´ |
| /wms/item-sku | SKU æ•°æ®ä»Ž MDM èŽ·å–ï¼Œé¡µé¢ä¿ç•™ä½†æ•°æ®æºå˜æ›´ |
---
## API å˜æ›´è¯´æ˜Ž
### MDM ç‰©æ–™ API
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /mdm/item/create | åˆ›å»ºç‰©æ–™ |
| PUT | /mdm/item/update | æ›´æ–°ç‰©æ–™ |
| PUT | /mdm/item/update-status | æ›´æ–°ç‰©æ–™çŠ¶æ€ |
| DELETE | /mdm/item/delete | åˆ é™¤ç‰©æ–™ï¼ˆå®žé™…为禁用) |
| GET | /mdm/item/get | èŽ·å–ç‰©æ–™ |
| GET | /mdm/item/page | èŽ·å–ç‰©æ–™åˆ†é¡µ |
| GET | /mdm/item/list-by-ids | èŽ·å–ç‰©æ–™åˆ—è¡¨ |
**请求参数(创建):**
| å‚æ•° | ç±»åž‹ | å¿…å¡« | è¯´æ˜Ž |
|------|------|------|------|
| code | String | æ˜¯ | ç‰©æ–™ç¼–码 |
| name | String | æ˜¯ | ç‰©æ–™åç§° |
| barCode | String | å¦ | ç‰©æ–™æ¡ç  |
| specification | String | å¦ | è§„格型号 |
| categoryId | Long | æ˜¯ | ç‰©æ–™åˆ†ç±»ç¼–号 |
| unitMeasureId | Long | æ˜¯ | è®¡é‡å•位编号 |
| brandId | Long | å¦ | å“ç‰Œç¼–号 |
| itemType | Integer | æ˜¯ | ç‰©æ–™ç±»åž‹ï¼ˆ1:物料, 2:产品, 3:半成品) |
| status | Integer | å¦ | çŠ¶æ€ï¼ˆ0:启用, 1:禁用) |
| purchasePrice | BigDecimal | å¦ | é‡‡è´­ä»·æ ¼ |
| salesPrice | BigDecimal | å¦ | é”€å”®ä»·æ ¼ |
| costPrice | BigDecimal | å¦ | æˆæœ¬ä»·æ ¼ |
| safetyStock | BigDecimal | å¦ | å®‰å…¨åº“å­˜ |
| expiryDays | Integer | å¦ | ä¿è´¨æœŸå¤©æ•° |
| isBatchManaged | Boolean | å¦ | æ˜¯å¦æ‰¹æ¬¡ç®¡ç† |
| remark | String | å¦ | å¤‡æ³¨ |
**响应:**
```json
{
  "code": 0,
  "data": 1,
  "msg": "操作成功"
}
```
### MDM ç‰©æ–™åˆ†ç±» API
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /mdm/category/create | åˆ›å»ºåˆ†ç±» |
| PUT | /mdm/category/update | æ›´æ–°åˆ†ç±» |
| DELETE | /mdm/category/delete | åˆ é™¤åˆ†ç±» |
| GET | /mdm/category/get | èŽ·å–åˆ†ç±» |
| GET | /mdm/category/list | èŽ·å–åˆ†ç±»åˆ—è¡¨ |
| GET | /mdm/category/list-all-simple | èŽ·å–å¯ç”¨çš„åˆ†ç±»åˆ—è¡¨ |
### MDM è®¡é‡å•位 API
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /mdm/unit/create | åˆ›å»ºå•位 |
| PUT | /mdm/unit/update | æ›´æ–°å•位 |
| DELETE | /mdm/unit/delete | åˆ é™¤å•位 |
| GET | /mdm/unit/get | èŽ·å–å•ä½ |
| GET | /mdm/unit/page | èŽ·å–å•ä½åˆ†é¡µ |
| GET | /mdm/unit/list-by-ids | èŽ·å–å•ä½åˆ—è¡¨ |
### MDM å“ç‰Œ API
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /mdm/brand/create | åˆ›å»ºå“ç‰Œ |
| PUT | /mdm/brand/update | æ›´æ–°å“ç‰Œ |
| DELETE | /mdm/brand/delete | åˆ é™¤å“ç‰Œ |
| GET | /mdm/brand/get | èŽ·å–å“ç‰Œ |
| GET | /mdm/brand/page | èŽ·å–å“ç‰Œåˆ†é¡µ |
| GET | /mdm/brand/list-by-ids | èŽ·å–å“ç‰Œåˆ—è¡¨ |
### MDM ä»“库 API
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /mdm/warehouse/create | åˆ›å»ºä»“库 |
| PUT | /mdm/warehouse/update | æ›´æ–°ä»“库 |
| PUT | /mdm/warehouse/update-status | æ›´æ–°ä»“库状态 |
| DELETE | /mdm/warehouse/delete | åˆ é™¤ä»“库 |
| GET | /mdm/warehouse/get | èŽ·å–ä»“åº“ |
| GET | /mdm/warehouse/page | èŽ·å–ä»“åº“åˆ†é¡µ |
| GET | /mdm/warehouse/list-by-ids | èŽ·å–ä»“åº“åˆ—è¡¨ |
---
## å‰ç«¯ä¿®æ”¹ç‚¹
### 1. ERP äº§å“é¡µé¢
ERP äº§å“é¡µé¢æ”¹ä¸ºä»Ž MDM èŽ·å–æ•°æ®ï¼Œå‰ç«¯éœ€è¦ä¿®æ”¹ï¼š
**API è°ƒç”¨å˜æ›´ï¼š**
```js
// åŽŸè°ƒç”¨ ERP äº§å“ API
import { getProductPage, getProduct } from '@/api/erp/product'
// æ”¹ä¸ºè°ƒç”¨ MDM ç‰©æ–™ API(itemType=2 äº§å“ï¼‰
import { getItemPage, getItem } from '@/api/mdm/item'
// æŸ¥è¯¢æ—¶éœ€è¦ä¼ å…¥ itemType=2(产品类型)
getItemPage({ itemType: 2, pageNo: 1, pageSize: 10 })
```
**字段映射:**
| ERP å­—段 | MDM å­—段 | è¯´æ˜Ž |
|----------|----------|------|
| id | id | ç¼–号 |
| barCode | code | ç¼–码(原条码改为编码) |
| name | name | åç§° |
| spec | specification | è§„格型号 |
| categoryId | categoryId | åˆ†ç±»ç¼–号 |
| unitId | unitMeasureId | å•位编号 |
| brandId | brandId | å“ç‰Œç¼–号 |
| status | status | çŠ¶æ€ |
| purchasePrice | purchasePrice | é‡‡è´­ä»·æ ¼ |
| salePrice | salesPrice | é”€å”®ä»·æ ¼ |
| minPrice | costPrice | æœ€ä½Žä»·æ ¼æ”¹ä¸ºæˆæœ¬ä»· |
### 2. MES ç‰©æ–™é¡µé¢
MES ç‰©æ–™é¡µé¢æ”¹ä¸ºä»Ž MDM èŽ·å–æ•°æ®ï¼š
**API è°ƒç”¨å˜æ›´ï¼š**
```js
// åŽŸè°ƒç”¨ MES ç‰©æ–™ API
import { getItemPage, getItem } from '@/api/mes/md/item'
// æ”¹ä¸ºè°ƒç”¨ MDM ç‰©æ–™ API(itemType=1 ç‰©æ–™ï¼‰
import { getItemPage, getItem } from '@/api/mdm/item'
// æŸ¥è¯¢æ—¶éœ€è¦ä¼ å…¥ itemType=1(物料类型)
getItemPage({ itemType: 1, pageNo: 1, pageSize: 10 })
```
**MES ç‰¹æœ‰åŠŸèƒ½ä¿ç•™ï¼š**
- æ‰¹æ¬¡å±žæ€§é…ç½®ï¼šä»ç”± MES æ¨¡å—管理
- BOM é…ç½®ï¼šä»ç”± MES æ¨¡å—管理
- SOP/SIP é…ç½®ï¼šä»ç”± MES æ¨¡å—管理
### 3. WMS å•†å“/SKU é¡µé¢
WMS å•†å“å’Œ SKU é¡µé¢æ”¹ä¸ºä»Ž MDM èŽ·å–æ•°æ®ï¼š
**API è°ƒç”¨å˜æ›´ï¼š**
```js
// åŽŸè°ƒç”¨ WMS å•†å“ API
import { getItemPage, getItem } from '@/api/wms/item'
// æ”¹ä¸ºè°ƒç”¨ MDM ç‰©æ–™ API
import { getItemPage, getItem } from '@/api/mdm/item'
// SKU æ•°æ®
import { getItemSkuList } from '@/api/mdm/item-sku'
```
---
## æ³¨æ„äº‹é¡¹
1. **物料类型区分**:
   - itemType=1:物料(MES ä½¿ç”¨ï¼‰
   - itemType=2:产品(ERP ä½¿ç”¨ï¼‰
   - itemType=3:半成品
2. **删除操作**:MDM ç‰©æ–™åˆ é™¤å®žé™…为禁用操作,不做物理删除
3. **SKU æ¨¡å¼**:所有物料必须配置 SKU,ERP/MES æ•°æ®è¿ç§»æ—¶è‡ªåŠ¨åˆ›å»ºé»˜è®¤ SKU
4. **向后兼容**:原模块的 API æŽ¥å£ä¿ç•™ï¼Œå†…部调用 MDM API
---
## æ•°æ®åº“表
| è¡¨å | è¯´æ˜Ž |
|------|------|
| mdm_item | ç‰©æ–™ä¸»æ•°æ®è¡¨ |
| mdm_item_sku | ç‰©æ–™ SKU è¡¨ |
| mdm_item_category | ç‰©æ–™åˆ†ç±»è¡¨ |
| mdm_unit_measure | è®¡é‡å•位表 |
| mdm_brand | å“ç‰Œè¡¨ |
| mdm_warehouse | ä»“库表 |
| mdm_item_batch_config | æ‰¹æ¬¡å±žæ€§é…ç½®è¡¨ |