今天要做什么
按节拍守账实:每天过昨夜流水与红色预警,每周循环盘点 + 过期批次,每月全仓盘点配合财务月结。
每日(开班 ~15 分钟)
- 打开库存总览,扫低于「补货点」的红标行,确认是否需要补货。
- 翻库存流水:核对昨夜 / 早班的「入库」「出库」「调拨」「调整」四类记录,看每条引用的上游单据类型是否对得上。
- 处理红色补货预警:点「生成采购单」转一张草稿采购单给采购。
- 推进在途调拨:昨日发起、今日应到仓的「在途」调拨单点「完成入库」。
- 扫销售预留池:状态为「可用」的预留对应订单该备货了就按 FIFO 分配批次。
/dashboard/inventory/stock、/dashboard/inventory/movements、/dashboard/inventory/reorder-alerts、/dashboard/inventory/transfers、/dashboard/inventory/reservations。
每周
- 循环盘点:对高周转 / 贵重 SKU 新建「草稿」盘点单,录入实盘数后提交,系统自动生成差异调整流水。
- 过期预警:看 30 天内到期批次清单,批量走异常出库(「赠品」 / 「内部领用」 / 「过期报废」)。
- 序列号抽盘:核对在库序列号与实物一致,状态为「在库」才可出。
每月
- 全仓盘点:每仓一张盘点单,提交后在估值报表核对账面价值变动。
- 配合财务月结:冻结期内不再做库存调整,差异留到下月走反向流水。
- 账实差异报告:按仓 / 按品类出汇总,交财务。
权限红线(先看这 5 条)
- 不能跨账套调拨——源仓与目的仓必须同属一个账套,否则系统拦截。
- 盘点中的仓位锁定——同一仓不能同时存在两张「草稿」盘点单;状态为「已提交」的盘点不能改项,只能新建反向盘点。
- 库存为正的批次 / 已售的序列号不能删——批次可用数量 > 0 或序列号状态为「已售」时直接删会被拒,必须走异常出库。
- 月结冻结期内禁手工调整——冻结期间做库存调整会破坏上月账面,差异留到下月反向入账。
- 销售 / 采购 / 会计的写入权限不给——销售订单、采购订单、发票等单据库管只读;库存流水只能通过上游单据触发,不能直接写库存流水表。
Quickstart — 日常核心任务
2.1 采购到货入库核对
采购在收货模块确认到货后,系统自动生成一条「入库」流水;库管负责核对数量、批次与 QC 状态是否与实物一致。
- 打开库存流水页,按类型筛选「入库」。(见图 ①)
- 逐行核对:产品、数量、仓库是否与采购单 / 送货单一致。
- 若仓库开启了「QC 冻结」,批次会自动进入「隔离中」——等 QC 放行前不可出库。
- 批次物料点进批次列表,确认新批次的效期、单位成本、批号都已录入。(见图 ②)
- 若数量对不上:先跟采购核实是否补发,再按差异走异常单(「损坏」 / 「质检不合格」),不手工调整。
- 流水页顶部出现新的「入库」行,引用对应收货单号。
- 库存总览对应 SKU 的「账面库存」列数字增加。
- 若 QC 开启,批次列表新批次状态显示「隔离中」徽标。
stock_movements.movement_type='receipt'、stock_movements.reference_type='goods_receipt';stock.quantity 等额增加;若 qc_hold_enabled=true,stock_batches.status='hold'。
getStockMovements、getBatches、createBatchAction、updateBatchAction
2.2 手工库存调整(单条盘盈 / 盘亏)
巡检发现账实不符、差异小(单条、数量 < 10)、不想开正式盘点单时用此入口。正式盘点见 2.4。
- 库存总览定位到目标 SKU + 仓库行,右侧点「调整」图标打开弹窗。(见图 ①)
- 选「增加」或「减少」;填数量(小数点后 3 位);填调整原因(必填,审计要查)。(见图 ②)
- 点「提交」——系统写一条「调整」流水,账面库存同步更新。
- 差异 > 10 件或涉及多 SKU:关闭弹窗,改走 2.4 正式盘点。
- 库存总览该行「账面库存」列数字更新。
- 流水页最顶部出现一条「调整」记录(绿色为入、红色为出),原因字段有值。
- 估值报表的账面价值按移动平均 / FIFO 重新计算。
stock_movements.movement_type='adjustment',quantity 可正可负;stock.quantity 同步更新;触发 revalidatePath('/dashboard/inventory/valuation')。
adjustStock、adjustStockById
2.3 多仓调拨(两步式在途)
总仓 → 展厅、跨城分仓补货。两步式:发起时源仓立即扣,货到目的仓再点「完成入库」;中间状态为「在途」。
- 调拨列表右上点「新建调拨」。(见图 ①)
- 弹窗选源仓 + 目的仓;两仓必须同一账套。(见图 ②)
- 加行:每行选产品 + 数量(可选单位成本用于账面估值)。
- 点「发起调拨」——源仓立即扣减,生成一条「出库」流水,状态变「在途」。
- 货到目的仓后,回列表找该单点「完成入库」——再写一条「入库」流水,状态推到「已完成」。
- 若途中货丢 / 单据作废,点「取消」回滚到源仓(仅「在途」可撤)。
- 调拨列表顶部出现新行,状态徽标从「在途」推进到「已完成」。
- 流水页按引用类型「调拨单」可查到成对的出 / 入流水。
- 库存总览源仓对应 SKU 账面减少、目的仓等额增加(完成后)。
stock_transfers.status ∈ {in_transit,completed,cancelled};stock_transfer_items.out_movement_id / in_movement_id 成对;stock_movements.movement_type='transfer'。
initiateTransferAction、completeTransferAction、cancelTransferAction
2.4 循环 / 全仓盘点
每周对高周转 SKU 抽盘、每月对每仓全盘。流程:建「草稿」盘点单 → 录入实盘数 → 提交,系统把差异写入「调整」流水。
- 盘点列表右上点「新建盘点」。(见图 ①)
- 弹窗选仓库、盘点日、用途(如「月末全盘」)、备注。(见图 ②)
- 提交后进盘点详情,按产品加行——系统自动带出账面数。(见图 ③)
- 逐行录入实盘数;差异数自动算出。
- 全部录完点「提交」——状态变「已提交」,每条差异行生成一条「调整」流水。
- 录错想重来:仅「草稿」可「取消」或「删除」;「已提交」后只能新建反向盘点。
- 盘点列表顶部出现新行,状态从「草稿」推到「已提交」。
- 每条差异行在流水页生成一条「调整」记录,引用该盘点单号。
- 估值报表的账面价值同步重算。
stock_reconciliations.status ∈ {draft,submitted,cancelled};stock_reconciliation_items.differenceQty / differenceValue;stock_movements.movement_type='adjustment'。
createReconciliationAction、addReconciliationItemAction、removeReconciliationItemAction、submitReconciliationAction、cancelReconciliationAction、deleteReconciliationAction
2.5 批次建档与过期清理
有效期敏感品类(板材、胶水、化工辅料)入库必须落批次,并定期扫 30 天内到期清单做异常出库。
- 批次列表右上点「新建批次」。(见图 ①)
- 弹窗选产品 + 仓库,填数量、生产日期、效期;批号留空则系统自动生成
BATCH-YYYYMM-NNNN。 - 若有 QC 单关联,在批次详情关联对应的质检单。
- 扫到期:切「即将过期」视图,看 30 天内到期批次。
- 过期批次按用途分流:样品 → 走「样品出库」异常单、内部领用 → 走「内部领用」、作废 → 走「过期报废」;提交异常单走审批。
- 批次列表顶部出现新批次,批号
BATCH-YYYYMM-前缀。 - 「即将过期」视图把 30 天内到期项高亮。
- 批次状态徽标按「可用 → 隔离中 → 已放行 → 已耗尽」推进。
stock_batches.batch_number、available_quantity、status ∈ {active,hold,released,depleted};stock_batches.expiry_date。
createBatchAction、updateBatchAction、updateBatchFromFormAction、deleteBatchAction、getExpiringBatchesAction
2.6 序列号批量录入 / 更新
贵重单件(家具成品、电子组件)需单件追溯——入库建序列号、出库标「已发货」、售后按序列号查保修期。
- 序列号列表右上点「批量导入」。(见图 ①)
- 弹窗选产品 + 仓库;粘贴多行序列号(每行一个或逗号分隔)。
- 点提交——系统批量建为「在库」状态。
- 改仓位或保修期:单行点编辑;售出时由销售发货流程自动标「已发货」。
- 序列号列表总数增加 N 条,状态全为「在库」。
- 按产品筛选后每条序列号的仓库、保修期、关联批次字段都有值。
- 销售发货后状态自动从「在库」→「已预留」→「已发货」。
serial_numbers.serial_no、serial_numbers.status ∈ {in_stock,reserved,sold,shipped,returned};serial_numbers.warranty_until。
createSerialNumberAction、createBulkSerialNumbersAction、updateSerialNumberAction、deleteSerialNumberAction
2.7 补货预警 → 生成采购单
早班看红色预警(账面库存 ≤ 补货点),按建议供应商一键生成草稿采购单交给采购。
- 补货预警页按「高优先级」过滤,看红色清单。(见图 ①)
- 勾选要补的多条预警——同供应商的可一次合单。
- 点「生成采购单」。(见图 ②)
- 弹窗里系统按产品→供应商映射推荐供应商,必要时改选。
- 确认后生成一张来源标记「补货预警」的草稿采购单,交给采购继续下单流程。
- 需求不急:保留预警不转单;AI 辅助决策点「预测」看下周 / 下月缺货趋势。
- 采购模块出现新草稿采购单,来源标记「补货预警」。
- 被勾选的预警条目从清单消失(或标「已转单」)。
- 采购收到企微 / 邮件推送「新补货采购单」。
purchase_orders.source='reorder_alert';stock.quantity ≤ stock.reorder_point(客户端过滤,PostgREST 不支持列比较)。
fetchReorderAlerts、fetchSuppliersForAlerts、createPurchaseOrderAction、getForecastAction、getAIForecastAction、getReorderRecommendationsAction、getInventoryHealthAction
2.8 库存异常单(损坏 / 赠品 / 报废 / 客退)
客诉退货、展厅样品、生产报废、搬运损坏、盘盈 —— 凡走审批的非正常出入库都开异常单,留完整审计链。
- 异常单列表右上点「新建异常」。(见图 ①)
- 弹窗选异常类型(损坏 / 客户退货 / 内部领用 等);系统按类型自动推断方向(盘盈 / 客户退货 → 入库,其余默认出库)。
- 选仓库、填备注,提交后进详情页加明细行:产品、数量、批次(可选)。
- 点「提交」→ 审批人「批准」或「驳回」→ 批准后点「完成」真实扣减 / 入库。
- 草稿态发现填错:直接「删除」;已提交用「撤销」;已完成不可撤。
- 异常单列表顶部出现新行,状态徽标按「草稿 → 已提交 → 已批准 → 已完成」推进。
- 完成后流水页生成一条「调整」(或对应方向的流水),引用异常单号。
- 库存总览对应 SKU 账面按入库 / 出库方向加 / 减。
stock_exceptions.status ∈ {draft,submitted,approved,rejected,completed,cancelled};exception_type ∈ {damage,theft,found,sample,return_to_supplier,customer_return,production_scrap,quality_reject,gift,internal_use,expired,other};direction ∈ {in,out}。
createExceptionAction、addExceptionItemAction、removeExceptionItemAction、submitExceptionAction、approveExceptionAction、rejectExceptionAction、completeExceptionAction、cancelExceptionAction、deleteExceptionAction
上下游交接契约
库管是账实一致的最后关口。每笔上游动作要核、每笔下游动作要对——字段缺失的后果都落在库管台账上。
采购 → 库管:收货入库核对
我做什么:采购在收货模块确认到货后,我在库存流水页按「入库」筛选,核对数量、批次、QC 状态;有批次物料的确认批次已建档;若仓库开启 QC,等批次从「隔离中」放行再算可售。
下游看到什么:库存总览 SKU 账面增加;有 QC 仓的批次显示「隔离中」;未建批次的有效期物料会进「风险清单」。
缺失会回来找我:数量对不上 → 采购找我核对要补发还是做差异。批次字段漏填 → 财务月末估值分不清批次成本。QC 未放行直接分配给销售 → 出货后品控回退。
技术字段(给 IT/采购交叉核对)
上游触发:采购模块 confirmReceipt*(purchasing/goods-receipts)→ 系统自动 adjust_stock_atomic(receipt)。
库管动作:createBatchAction(批次建档)、updateBatchAction(效期 / 成本 / 关联 inspection_id)。必传字段:productId, warehouseId, quantity, manufactureDate?, expiryDate?, unitCost?, batchNumber?。
销售 / 跟单 → 库管:订单预留 + 备货
我做什么:销售订单确认后看预留清单,对状态为「可用」的预留按 FIFO 分配批次;订单取消时释放预留;预留过期定时清理。
下游看到什么:跟单 / 销售在订单详情看到「已预留」数量;发货单生成时可发余量已扣完预留;物流接到发货单备货。
缺失会回来找我:没分配批次 → 跟单不知按哪批发,效期混乱。订单取消未释放预留 → 预留数量占着账面库存,别的订单看不到可售。过期预留不清 → 账面可用量永远偏少。
技术字段(给 IT/跟单交叉核对)
触发动作:createReservationAction、fulfillReservationAction、releaseReservationAction、releaseExpiredAction。
必传字段:salesOrderId, salesOrderItemId, productId, warehouseId, quantity, batchId?, expiresAt?。stock.reserved_qty 反向对应。
库管 → 采购:补货预警转采购单
我做什么:扫红色预警清单,勾选同供应商的可合单项,生成一张来源标记「补货预警」的草稿采购单,系统按产品→供应商映射自动带出推荐供应商。
下游看到什么:采购在采购列表看到新草稿采购单,来源标记「补货预警」;采购继续审批 + 下单流程。
缺失会回来找我:同 SKU 已有未结采购单我还转 → 采购拒单,浪费双方时间。勾错供应商 → 采购需改供应商再审批,周期拉长。需求量算错(没看周转) → 采购订多了占库存,订少了又缺货。
技术字段(给 IT/采购交叉核对)
触发动作:createPurchaseOrderAction。
必传字段:supplierId, alertIds[], expectedDeliveryDate?, notes?;生成的 purchase_orders.source='reorder_alert'。
库管 → 生产 / 物流:领料与发货
我做什么:生产按工单 BOM 领料走「内部领用」异常单(或生产模块直接扣料);销售发货时系统按预留自动扣减,序列号物料标「已发货」。
下游看到什么:生产拿到原料、成品仓的对应批次扣减;物流看到发货单有可发清单、序列号与批号可追溯。
缺失会回来找我:没按 FIFO 走批次 → 效期近的留仓过期,效期远的先出。序列号漏标 → 客户收货后售后查不到保修记录。异常单未完成就当已扣 → 下一单实际库存不够发。
技术字段(给 IT/生产交叉核对)
触发动作:createExceptionAction(exception_type='internal_use')→ submitExceptionAction → approveExceptionAction → completeExceptionAction。发货侧:销售建发货单时系统自动按预留扣减(由 fulfillReservationAction 关联完成)。
必传字段:warehouseId, exception_type, direction='out', items[].productId, items[].quantity, items[].batchId?。
库管 → 财务:月末估值与账实差异
我做什么:月末全仓盘点一次,提交后在估值报表核对账面价值变动(按「移动平均」或「先进先出」);按仓 / 按品类出差异报告交财务。
下游看到什么:财务拿到月末库存估值做资产负债表;差异报告反推成本归集是否正确;估值法切换影响下月成本结转。
缺失会回来找我:盘点未做 → 月末资产负债表的存货科目无依据。估值法中途切换没通知财务 → 上下月成本对不上。差异未报告 → 财务月结时被迫延期。
技术字段(给 IT/财务交叉核对)
触发动作:submitReconciliationAction(盘点)、getValuationReport / getWarehouseValuation / getCategoryValuation、updateValuationMethodAction(估值法切换)。
必传字段:reconciliationId, method ∈ {moving_average, fifo}。
异常回滚
误操作不要直接改 DB。按下表选对应入口按业务规则回滚——库存流水留审计轨迹比「干净账面」重要。
| 症状 | 做什么 | 前置条件 / 后果 |
|---|---|---|
| 调拨发起后发现填错 / 货丢 | 调拨详情点「取消」 | 仅「在途」可撤;源仓数量回滚;「已完成」后必须反向发一张新调拨 |
| 盘点单录错(草稿态) | 盘点详情点「取消」或「删除」 | 仅「草稿」可撤 / 删;「已提交」后只能新建反向盘点 |
| 盘点已提交但数字错 | 新建反向盘点,按差异把账调回 | 保留原审计轨迹;两张单的差异行合并看 |
| 异常单录错 | 「草稿」点「删除」;「已提交」/「已批准」点「撤销」 | 按状态机流转规则;「已完成」不可撤,需反向发新单(用「盘盈」类型做回补) |
| 预留错挂(订单已取消但未释放) | 预留列表行内点「释放」 | 仅「可用」可释放;「已履约」不可退;过期批量走「释放过期」 |
| 库存调整录错数量 / 方向 | 反向再做一次「调整库存」(数量取反) | 不支持「撤销」——保留审计轨迹,两条流水都留底 |
| 批次 / 序列号错建 | 批次:先把库存清零再删;序列号:单条点「删除」 | 批次可用数量 > 0 或序列号已售 / 已发货时系统直接拒;走异常单转走后再删 |
| 仓库停用误操作 | 仓库详情改「启用」状态恢复 | 删仓库会校验是否有库存或未释放预留,默认仓不可删 |
对应系统动作(IT 追溯)
cancelTransferAction— 撤销in_transit调拨,源仓数量回滚cancelReconciliationAction/deleteReconciliationAction— 仅 draft 可用cancelExceptionAction/deleteExceptionAction— 按状态机(draft删、submitted/approved撤)releaseReservationAction— 释放单条active预留;releaseExpiredAction批量清过期adjustStock/adjustStockById— 反向调整(数量取反)回滚错录,不支持撤销deleteBatchAction—available_quantity=0才可删deleteSerialNumberAction—in_stock状态可删;sold/shipped走customer_return异常单updateWarehouse/deleteWarehouse— 校验库存 / 预留 / 默认仓后允许操作
进阶功能
估值报表(Moving Average / FIFO 切换)
月末全盘后在估值报表核对账面价值。可按仓 / 按品类汇总,配合财务月结取数;估值法切换影响下月成本结转,必须与财务同步。
入口:/dashboard/inventory/valuation。系统动作:getValuationReport、getWarehouseValuation、getCategoryValuation、updateValuationMethodAction、getCurrentValuationMethod、getLowValueProducts、getHighValueProducts。
AI 补货预测与健康度
按销售历史 + 预计交期推测下周 / 下月缺货风险;适合季节性商品或新品铺货。输出给采购做下单决策,省去手工拉报表。
入口:补货预警页「AI 预测」区。系统动作:getForecastAction、getAIForecastAction、getReorderRecommendationsAction、getInventoryHealthAction。
仓库 CRUD 与默认仓设置
新建 / 停用仓库、切换默认仓(影响新建流水、预留、发货默认值)。仅管理员或库管主管执行,新仓上线前必须确认库位 / QC 配置。
入口:/dashboard/inventory/warehouses。系统动作:createWarehouse、updateWarehouse、updateWarehouseFromForm、deleteWarehouse、setDefaultWarehouseAction。
预留池高级操作
销售订单预留管理:手工创建预留(场景:VIP 客户先占货)、定时清理过期预留、批次级预留(指定 batchId)。
入口:/dashboard/inventory/reservations。系统动作:createReservationAction、fulfillReservationAction、releaseReservationAction、releaseExpiredAction、fetchReservationStats。
序列号生命周期追溯
单件追溯链:「在库 → 已预留 → 已售 → 已发货 → 已退回」(底层 enum:in_stock → reserved → sold → shipped → returned)。售后按序列号查保修期、历史仓库、关联批次。
入口:/dashboard/inventory/serial-numbers。系统动作:updateSerialNumberAction(改仓、状态、保修)。
流水筛选与追溯
流水页按流水类型(「入库」「出库」「调整」「调拨」「入库反冲」)+ 引用单据类型过滤,定位到上游单据。用于对账和审计。
入口:/dashboard/inventory/movements。
相关业务场景
库管参与 6 大场景中的 5 条——是销售 / 采购 / 生产 / 财务的账实接口;「报销审批流」作为申请人。
- 标准成单流(询盘 → 报价 → 订单 → 发货 → 开票): 库管在订单确认后管预留;销售创建发货单时按预留扣减;序列号 / 批次按 FIFO 分配。 → 场景详解
-
定制家具项目流:
库管管原料入库(板材 / 五金的批次建档),生产领料走
internal_use;成品入库再做序列号建档。 → 场景详解 - 回款流:库管不参与——由销售 / 出纳处理。库管只关心销售侧的预留与发货扣减是否按时完成。 → 场景(了解即可)
- 采购付款流(收货入库侧): 库管验收 + 触发「入库」流水,异常走「损坏」 / 「质检不合格」类型异常单;收货数量与采购单对不上要通知采购。 → 场景详解
- 月结流: 库管牵头全仓盘点 + 估值报表,把账实差异报告交财务;冻结期内禁手工调整,差异留下月反向。 → 场景详解
-
报销审批流:库管作为申请人走
/dashboard/expenses(搬运费 / 仓库杂支报销),非库管核心动作——不在 Quickstart 范围。 → 场景(作为申请人)
外部协作入口
/dashboard/purchasing/goods-receipts— 采购收货单,库管验收入口上游。/dashboard/sales/delivery-notes— 销售发货单,按预留扣减库存的下游。/dashboard/export/shipments— 物流装箱与报关,出货后接力。/dashboard/accounting— 会计月结 / 存货估值取数。/dashboard/wecom— 企微推送(红色预警、盘点提醒、异常审批)配置。/dashboard/reports— 库存 / 周转 / 账龄报表,月会用。/dashboard/manual— 系统内置使用手册(补充参考)。
权限与范围
看得到什么(RLS 边界)
- 当前
organization_id下的所有stock/stock_movements/stock_batches/stock_transfers/stock_reconciliations/stock_exceptions/stock_reservations/serial_numbers/warehouses。 - 当前
book_id下的库存数据——多账套下账本隔离,切账套后数据变;调拨不允许跨账套。 - 补货预警(
reorder_alerts)按仓 + SKU 维度,客户端过滤stock.quantity ≤ stock.reorder_point(PostgREST 不支持列比较)。 - 采购 PO / 销售订单 / 发票 只读——写入权限分别由采购 / 销售角色持有。
核心概念
book_id— 账套隔离键。所有库存相关表都带book_id,切账套后数据完全隔离;调拨源 / 目的仓必须同账套。organization_id— 租户隔离键。多租户场景下跨组织数据通过 RLS 隔离。- 库存原子 RPC:
adjust_stock_atomic、transfer_stock_atomic—— 所有 mutation 必经这两个 RPC,保证并发下数据一致。 - 库存状态机:
stock_movements.movement_type ∈ {receipt, shipment, adjustment, transfer, receipt_reversal};流水只增不改、不删。 - 估值法:组织级配置
moving_average(移动平均)/fifo(先进先出),影响月末成本结转,切换必须与财务同步。
术语表
- 账面库存 book_qty
stock.quantity(系统记录的数量)- 可用库存 available_qty
stock.quantity - stock.reserved_qty(前端计算列)- 预留库存 reserved_qty
stock.reserved_qty(销售订单 / 调拨锁定)- 在途 in_transit
stock_transfers.status='in_transit'(源仓已扣、目的仓未加)- 补货点 reorder_point
stock.reorder_point(触发红色预警阈值)- 库存流水
stock_movements.movement_type(receipt | shipment | adjustment | transfer | receipt_reversal)- 调拨单号
stock_transfers.transfer_reference- 盘点单号
stock_reconciliations.reconciliation_no;状态draft | submitted | cancelled- 异常单 enum
damage | theft | found | sample | return_to_supplier | customer_return | production_scrap | quality_reject | gift | internal_use | expired | other- 异常状态机
draft → submitted → approved / rejected → completed(或cancelled)- 批次 batch
stock_batches.batch_number(BATCH-YYYYMM-NNNN);状态active | hold | released | depleted- 序列号 serial_no
serial_numbers.serial_no;状态in_stock → reserved → sold / shipped → returned- 库位 warehouse
warehouses.id(当前仅支持仓库级,无库位细分字段)- 估值法 valuation_method
moving_average | fifo(组织级配置)- QC 冻结 qc_hold_enabled
warehouses.qc_hold_enabled;开启后批次入库默认status='hold'- 预留状态
stock_reservations.status ∈ {active, fulfilled, released}- 账套隔离键
book_id(所有库存表)- 原子 RPC
adjust_stock_atomic、transfer_stock_atomic(所有库存 mutation 必经)
常见问题
库存调整和盘点单什么区别?什么时候用哪个?
库存调整单条、快,适合差异小(< 10 件、一个 SKU)的微调;盘点单带审计链(reconciliation 号 + 差异明细),适合差异大 / 多 SKU / 月末。审计只认盘点单——大差异走手工调整会被回退。
盘点单提交后发现某行数字录错了怎么办?
不能改。只能新建一张反向盘点,把该 SKU 的差异调回。两张单都留档,审计可以看到整段修正轨迹。别走手工调整——绕过盘点单的修正没有关联号,月结对账对不上。
调拨发起后货还没发就发现选错目的仓了,怎么撤?
在调拨详情点「取消」,状态会变「已取消」,源仓数量立即回滚。注意:仅「在途」可撤;若已点「完成入库」变「已完成」,必须反向发一张新调拨(原目的仓 → 原源仓),两张单的审计轨迹都留底。
QC 仓批次一直是 hold,怎么放行?
放行由 QC 角色操作——他们在 QC 结论页批准后批次状态自动变「可用」。库管不手工切状态(会破坏质检轨迹)。若 QC 拒绝,批次走「质检不合格」异常单出库。
客户退货流程是什么?
销售开贷项单并勾选「退回库存」+ 选目的仓;库管在异常单列表看到「客户退货」类型单据,复核明细后点「完成」入库。方向自动识别为「入库」,做反向入库。
补货预警的数量建议是怎么算的?
基础算法:历史 30/60/90 天平均销量 × 供应商交期天数 + 安全库存。AI 预测在此基础上叠加季节性 / 趋势。实际下单前自己判断供应商 MOQ 和近期促销计划,不盲信推荐量。
批次库存为 0 但系统不让删?
删前先确认批次可用数量为 0(列表数量列)。若还是被拒,可能是预留占用未释放——去预留池释放对应批次,再删批次。
为什么预留释放后账面可用量还是没变?
先确认释放是否成功(预留详情状态变「已释放」)。若还未变,可能是客户端缓存——刷新列表或切仓库再切回。库存的预留数量和预留表双向同步,释放后实时减。
估值法切换有什么影响?需要通知谁?
切换「移动平均」↔「先进先出」后,下月成本结转按新方法算——上下月账面价值可能出现不连续。切换前必须与财务、总经理沟通;切换时机建议财务年度开始或系统初始化,不要年中乱切。