64 lines
2.5 KiB
JavaScript
64 lines
2.5 KiB
JavaScript
import { CODE_STATUS, IO_TYPE } from '@/constants/wms';
|
||
|
||
/**
|
||
* 扫码确认操作的策略配置:key = "状态-IO类型",value = 策略函数/配置
|
||
* 每个策略包含:
|
||
* - getAddParams:组装addStockIoDetail的参数
|
||
* - getUpdateStatus:扫码后需更新的二维码状态
|
||
*/
|
||
export const SCAN_OPERATION_STRATEGIES = {
|
||
// 场景1:状态0(未使用)+ 入库 → 正常入库,状态改为1(已入库)
|
||
[`${CODE_STATUS.UNUSED}-${IO_TYPE.IN}`]: {
|
||
getAddParams: (scanResult, remark) => ({
|
||
quantity: scanResult.quantity,
|
||
ioType: scanResult.ioType,
|
||
batchNo: scanResult.batchNo,
|
||
itemType: scanResult.itemType,
|
||
stockIoId: scanResult.stockIoId, // 用原始库存单ID
|
||
warehouseId: scanResult.warehouseId,
|
||
fromWarehouseId: scanResult.fromWarehouseId,
|
||
itemId: scanResult.itemId,
|
||
remark: remark,
|
||
recordType: 1 // 扫码录入标识
|
||
}),
|
||
getUpdateStatus: () => CODE_STATUS.IN_STOCK // 更新为“已入库”
|
||
},
|
||
|
||
// 场景2:状态0(未使用)+ 出库 → 正常出库,状态改为2(已出库)
|
||
[`${CODE_STATUS.UNUSED}-${IO_TYPE.OUT}`]: {
|
||
getAddParams: (scanResult, remark) => ({
|
||
quantity: scanResult.quantity,
|
||
ioType: scanResult.ioType,
|
||
batchNo: scanResult.batchNo,
|
||
itemType: scanResult.itemType,
|
||
stockIoId: scanResult.stockIoId,
|
||
warehouseId: scanResult.warehouseId,
|
||
fromWarehouseId: scanResult.fromWarehouseId,
|
||
itemId: scanResult.itemId,
|
||
remark: remark,
|
||
recordType: 1
|
||
}),
|
||
getUpdateStatus: () => CODE_STATUS.OUT_STOCK // 更新为“已出库”
|
||
},
|
||
|
||
// 场景3:状态1(已入库)+ 入库 → 实际为出库,用备用库存单ID,状态改为2
|
||
[`${CODE_STATUS.IN_STOCK}-${IO_TYPE.IN}`]: {
|
||
getAddParams: (scanResult, remark) => ({
|
||
quantity: scanResult.quantity,
|
||
ioType: IO_TYPE.OUT, // 强制改为出库
|
||
batchNo: scanResult.batchNo,
|
||
itemType: scanResult.itemType,
|
||
stockIoId: scanResult.stockIoWaitId, // 用备用库存单ID
|
||
warehouseId: scanResult.warehouseId,
|
||
fromWarehouseId: scanResult.fromWarehouseId,
|
||
itemId: scanResult.itemId,
|
||
remark: remark,
|
||
recordType: 1
|
||
}),
|
||
getUpdateStatus: () => CODE_STATUS.OUT_STOCK // 更新为“已出库”
|
||
}
|
||
|
||
// 新增场景:直接在这里加新的key和策略,无需修改父组件逻辑
|
||
// 示例:场景4:状态0+移库 → ...
|
||
// [`${CODE_STATUS.UNUSED}-${IO_TYPE.TRANSFER}`]: { ... },
|
||
}; |