搜索
新增
{{ row.status === 1 ? '启用' : '禁用' }}
编辑
删除
启用
禁用
取消
确定
```
---
## 五、API接口
### 5.1 审批配置接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /mes/wms/approval/config/get | 获取单个审批配置 |
| GET | /mes/wms/approval/config/list | 获取仓库所有审批配置 |
| POST | /mes/wms/approval/config/save | 保存审批配置 |
| GET | /mes/wms/approval/process-list | 获取可用审批流程 |
**请求参数详情:**
#### GET /mes/wms/approval/config/get
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| warehouseId | Long | 是 | 仓库ID |
| bizType | String | 是 | 业务类型(INBOUND/OUTBOUND/TRANSFER/CHECK) |
**响应:**
```json
{
"code": 0,
"data": {
"id": 1,
"warehouseId": 100,
"bizType": "INBOUND",
"approvalEnabled": true,
"processDefinitionKey": "wms_inbound_approve",
"categoryCode": "wms_approve"
}
}
```
#### POST /mes/wms/approval/config/save
**请求体:**
```json
{
"warehouseId": 100,
"bizType": "INBOUND",
"approvalEnabled": true,
"processDefinitionKey": "wms_inbound_approve"
}
```
#### GET /mes/wms/approval/process-list
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| warehouseId | Long | 是 | 仓库ID |
| bizType | String | 是 | 业务类型 |
**响应:**
```json
{
"code": 0,
"data": [
{ "key": "wms_inbound_approve", "name": "入库审批流程" },
{ "key": "wms_common_approve", "name": "通用审批流程" }
]
}
```
### 5.2 仓库映射接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /erp/warehouse-mapping/page | 分页查询映射列表 |
| GET | /erp/warehouse-mapping/get | 获取单个映射 |
| POST | /erp/warehouse-mapping/create | 新增映射 |
| PUT | /erp/warehouse-mapping/update | 更新映射 |
| DELETE | /erp/warehouse-mapping/delete | 删除映射 |
**请求参数详情:**
#### GET /erp/warehouse-mapping/page
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| pageNo | Integer | 是 | 页码 |
| pageSize | Integer | 是 | 每页数量 |
| erpWarehouseId | Long | 否 | ERP仓库ID |
| mesWarehouseId | Long | 否 | MES仓库ID |
| status | Integer | 否 | 状态 |
**响应:**
```json
{
"code": 0,
"data": {
"list": [
{
"id": 1,
"erpWarehouseId": 1,
"erpWarehouseName": "主仓库",
"mesWarehouseId": 100,
"mesWarehouseName": "总仓",
"status": 1
}
],
"total": 1
}
}
```
#### POST /erp/warehouse-mapping/create
**请求体:**
```json
{
"erpWarehouseId": 1,
"mesWarehouseId": 100,
"status": 1
}
```
---
## 六、API文件创建
### 6.1 审批配置API
创建文件:`src/api/wms/approval/index.js`
```js
import request from '@/utils/request'
// 获取审批配置
export function getApprovalConfig(warehouseId, bizType) {
return request({
url: '/mes/wms/approval/config/get',
method: 'get',
params: { warehouseId, bizType }
})
}
// 获取仓库所有审批配置
export function getApprovalConfigList(warehouseId) {
return request({
url: '/mes/wms/approval/config/list',
method: 'get',
params: { warehouseId }
})
}
// 保存审批配置
export function saveApprovalConfig(data) {
return request({
url: '/mes/wms/approval/config/save',
method: 'post',
data: data
})
}
// 获取可用审批流程列表
export function getAvailableProcessList(warehouseId, bizType) {
return request({
url: '/mes/wms/approval/process-list',
method: 'get',
params: { warehouseId, bizType }
})
}
```
### 6.2 仓库映射API
创建文件:`src/api/erp/warehouseMapping/index.js`
```js
import request from '@/utils/request'
// 分页查询映射列表
export function getMappingPage(params) {
return request({
url: '/erp/warehouse-mapping/page',
method: 'get',
params: params
})
}
// 获取单个映射
export function getMapping(id) {
return request({
url: '/erp/warehouse-mapping/get',
method: 'get',
params: { id }
})
}
// 新增映射
export function createMapping(data) {
return request({
url: '/erp/warehouse-mapping/create',
method: 'post',
data: data
})
}
// 更新映射
export function updateMapping(data) {
return request({
url: '/erp/warehouse-mapping/update',
method: 'put',
data: data
})
}
// 删除映射
export function deleteMapping(id) {
return request({
url: '/erp/warehouse-mapping/delete',
method: 'delete',
params: { id }
})
}
```
---
## 七、数据映射配置
### 7.1 ERP产品与MDM物料
通过条码(barCode)关联:
- ERP产品的barCode字段值 = MDM物料的barCode字段值
- 系统自动通过barCode匹配,无需额外配置表
### 7.2 ERP仓库与MES仓库
需要在仓库映射页面配置映射关系:
| ERP仓库 | MES仓库 | 说明 |
|---------|---------|------|
| 主仓库(ID=1) | 总仓(ID=100) | 默认映射 |
**注意**:ERP仓库必须配置映射后,ERP采购入库/销售出库审核才能同步MES库存。
---
## 八、业务流程
### 8.1 采购入库流程(ERP → MES)
```
ERP采购入库单创建
↓
ERP采购入库单审核
↓
调用 WmsStockApi.purchaseInbound()
↓
查找ERP仓库 → MES仓库映射
↓
查找ERP产品(barCode) → MDM物料(barCode)
↓
创建MES库存事务记录
↓
MES库存增加
```
### 8.2 销售出库流程(ERP → MES)
```
ERP销售出库单创建
↓
ERP销售出库单审核
↓
调用 WmsStockApi.salesOutbound()
↓
查找仓库映射 + 产品映射
↓
创建MES库存事务记录(数量为负)
↓
MES库存减少
```
### 8.3 审批流程(可选)
```
MES入库单创建(草稿)
↓
检查仓库审批配置 → 是否需要审批?
↓ (需要审批)
提交审批 → BPM流程启动
↓
审批通过 → 单据状态更新 → 执行入库
↓ (不需要审批)
直接执行入库
```
---
## 九、注意事项
1. **执行顺序**:先执行SQL脚本,再部署后端,最后调整前端
2. **映射配置**:ERP仓库必须先配置映射才能同步MES库存
3. **权限前缀**:
- 审批配置:`mes:wm-warehouse:query`、`mes:wm-warehouse:update`
- 仓库映射:`erp:warehouse:query`、`erp:warehouse:update`、`erp:warehouse:delete`
4. **审批流程**:需在BPM管理后台创建"仓库审核(wms_approve)"分类下的流程
5. **物料条码**:MDM物料必须填写barCode,且与ERP产品barCode一致
---
## 十、测试验证
### 10.1 功能测试
1. **菜单验证**:登录系统,确认"仓储物流"作为一级菜单显示
2. **映射配置**:在ERP仓库管理下,配置ERP仓库与MES仓库映射
3. **采购入库**:
- ERP创建采购入库单 → 审核
- 查询MES库存现有量 → 确认库存增加
4. **销售出库**:
- ERP创建销售出库单 → 审核
- 查询MES库存现有量 → 确认库存减少
5. **审批流程**:
- 配置仓库入库审批 → 启用
- 创建MES入库单 → 提审批 → 审批通过 → 状态变更
### 10.2 异常场景
1. 未配置仓库映射 → ERP审核时报错提示"仓库映射不存在"
2. 物料条码不匹配 → ERP审核时报错提示"物料不存在"
3. 库存不足 → 销售出库时报错提示"库存不足"