销售订单 → 发货通知单 → 销售出库单 → 出库完成
↓ ↓ ↓ ↓
出库状态同步 出库状态同步 执行出库 状态回写上游
状态同步规则:
| 触发动作 | 上游单据 | 更新内容 |
|---|---|---|
| 销售出库单执行出库 | 发货通知单行 | 累加 outCount(已出库数量) |
| 销售出库单执行出库 | 发货通知单 | 更新 outStatus(出库状态),全部出库时 status 变为"已完成" |
| 销售出库单执行出库 | ERP销售订单行 | 累加 outCount(出库数量) |
| 销售出库单执行出库 | ERP销售订单 | 更新 outStatus(出库状态) |
数据带入规则:
| 源单据 | 目标单据 | 带入字段 |
|---|---|---|
| 发货通知单 | 销售出库单 | 客户、销售订单号、收货人、联系电话、收货地址 |
| 发货通知单行 | 销售出库单行 | 物料、数量、批次、是否检验 |
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /mes/wm/sales-notice/generate-product-sales | 从发货通知单生成销售出库单 |
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 发货通知单ID(Query参数) |
响应:
{
"code": 0,
"data": 123, // 新生成的销售出库单ID
"msg": "操作成功"
}
| 字段 | 类型 | 说明 |
|---|---|---|
| outStatus | Integer | 出库状态:0-未出库,1-部分出库,2-全部出库 |
| 字段 | 类型 | 说明 |
|---|---|---|
| outCount | Decimal | 已出库数量 |
在"待出库"状态的发货通知单上添加"生成出库单"按钮:
按钮显示条件:
- 单据状态 = 待出库(status = 20)
按钮点击逻辑:
1. 调用 API /mes/wm/sales-notice/generate-product-sales?id={noticeId}
2. 成功后提示"生成成功",跳转到销售出库单详情页
3. 失败时显示错误信息
列表显示新增:
- 出库状态列:显示"未出库"/"部分出库"/"全部出库"
显示新增:
- 已出库数量列:显示每行的已出库数量
- 出库进度列:显示 已出库数量/总数量 的进度条或文字
从发货通知单生成的销售出库单,以下字段已自动填充:
- 基本信息:出库单号、客户、销售订单号、出库日期
- 收货信息:联系人、联系电话、收货地址
- 行信息:物料、数量、批次、是否检验
注意: 拣货明细需要手动添加
| 发货通知单字段 | 销售出库单字段 | 说明 |
|---|---|---|
| clientId | clientId | 客户ID |
| saleOrderId | saleOrderId | 销售订单ID |
| saleOrderCode | salesOrderCode | 销售订单号 |
| salesDate | salesDate | 出库日期 |
| recipientName | contactName | 收货人 → 联系人 |
| recipientTelephone | contactTelephone | 联系电话 |
| recipientAddress | contactAddress | 收货地址 |
| 发货通知单行字段 | 销售出库单行字段 | 说明 |
|---|---|---|
| saleOrderItemId | saleOrderItemId | 销售订单明细ID |
| itemId | itemId | 物料ID |
| quantity | quantity | 出库数量 |
| batchId | batchId | 批次ID |
| batchCode | batchCode | 批次号 |
| oqcCheckFlag | oqcCheckFlag | 是否检验 |
| 场景 | 规则 |
|---|---|
| 生成条件 | 发货通知单状态必须为"待出库" |
| 生成后状态 | 销售出库单状态为"草稿" |
| 关联关系 | 销售出库单的 noticeId 关联发货通知单的 id |
| 出库完成 | 累加发货通知单行的 outCount,计算主单 outStatus |
| 全部出库 | 发货通知单 outStatus=2 时,status 自动变为"已完成" |
| 值 | 名称 | 说明 |
|---|---|---|
| 0 | 未出库 | 所有行的 outCount = 0 |
| 1 | 部分出库 | 部分行已出库,或部分数量已出库 |
| 2 | 全部出库 | 所有行的 outCount >= quantity |