| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /mes/wm/product-sales/scan |
扫描袋码或托盘码并生成销售出库明细 |
| PUT | /mes/wm/product-sales/stock?id={id} |
执行拣货并创建库存占用 |
| PUT | /mes/wm/product-sales/finish?id={id} |
完成出库并扣减库存 |
扫码请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| salesId | Long | 是 | 销售出库单 ID,单据必须处于待拣货状态 |
| scanContent | String | 是 | 袋码或托盘码 |
| quantity | BigDecimal | 否 | 本次拣货数量,不填时使用销售行数量 |
扫码响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| scanType | String | BAG 袋码,PALLET 托盘码 |
| codeId | Long | 码记录 ID |
| itemId、batchId、batchCode | Long/Long/String | 物料和批次信息 |
| materialStockId | Long | 关联库存记录 ID |
| availableQuantity | BigDecimal | 当前库存数量 |
| scanQuantity、outboundQuantity | BigDecimal | 本次扫描数量和出库数量 |
| detailId | Long | 生成的销售出库明细 ID |
| warehouseId、locationId、areaId | Long | 库存所在仓库、库区、库位 |
| alreadyScanned | Boolean | 重复扫描时为 true,并返回已有明细 ID |
| palletExpanded | Boolean | 托盘展开标识 |
| bagCount、inboundBagCount | Integer | 托盘袋码总数、已累计袋码数 |
| message | String | 操作提示 |
| 字段 | 展示位置 | 说明 |
|---|---|---|
| scanType、scanContent | 扫码结果区 | 显示识别类型和原始码值 |
| itemCode、itemName、batchCode | 明细表 | 从扫码结果带入,不允许前端自行改写 |
| materialStockId、仓库、库区、库位 | 明细数据 | 保存库存关联,用于拣货和出库校验 |
| availableQuantity | 扫码结果区 | 用于提示当前库存数量 |
| stockState | 库存台账 | 10 暂存库、20 合格库、30 已出库 |
| 场景 | 规则 |
|---|---|
| 袋码扫描 | 按袋码关联批次和物料,并生成带 bagCodeId 的明细 |
| 托盘扫描 | 关联托盘及其袋码,生成带 palletCodeId 的明细,并返回展开统计 |
| 重复扫描 | 同一销售出库单重复扫描同一码时不重复生成明细,返回已有明细 |
| 数量超限 | 扫描数量不得超过库存可用数量,也不得超过销售行剩余数量 |
| 库存变更 | 扫码只生成明细;拣货时占用,完成出库时扣减库存 |
| 库存状态 | 新建库存为暂存库;入库后有数量为合格库;数量扣减至零为已出库 |
bagCount 和 inboundBagCount 为准。detailId 查询已有明细。mom-pro2-before 前端项目。