首页 产品功能 审核驱动业务流

功能详情 · 审核驱动业务流

每一笔库存变动,
都经过一次签字

入库、出库、盘点、调拨 —— 统一状态机,统一审批界面。审批不仅是一个按钮,是一笔事务:库存动了,账款也跟着动,全程留痕。

审批延迟
≤ 1s
审计字段
14
回滚机制
红冲
RK20260523000007
入库审核 · A 仓 · 茅台经销华东
已审批
茅台飞天 53° · 500ml×6
4
¥8,000
五粮液第八代 52°
20
¥18,400
剑南春水晶剑 52°
2
¥4,200
拉菲传奇波尔多
10
¥17,800
合计
36
¥48,400
审批人 李建国 · 2026-05-23 14:32:08
岩美 · 审批通过 · APPROVED · 岩美 ·
通过
APPROVED
2026.05.23
统一状态机

四种状态,
覆盖所有业务单据

入库、出库、盘点、调拨 —— 全部走同一套状态:草稿 → 待审核 → 已审批 / 已拒绝。员工学一次,全员通用。

  • 提交后即锁定 从「草稿」进入「待审核」即不可编辑,避免审批人看到的与录入人提交的不一致。
  • 状态机由后端事务驱动 状态变更与库存 / 账款变更在同一事务内,要么都成功,要么都回滚。
  • 一套界面,四种单据复用 前端审批界面统一,节省培训成本,避免分模块状态差异。
入库单
出库单
盘点单
调拨单
stock_in_orders.status
草稿
draft
提交
待审核
pending
审批
已审批
approved
已拒绝
rejected
同一状态机适用于: 入库单 出库单 盘点单 调拨单
自动联动

按一次"通过",
库存与账款都跟着动

审批通过不是一个"标记",而是一组真实的数据库写入。库存增减、应付应收、批次创建 —— 在同一事务内完成。

  • 事务级一致性 底层用 FOR UPDATE 锁住库存行,杜绝并发超卖。
  • 账款自动落地 入库审批 → 自动生成应付;出库审批 → 自动生成应收。挂在对应往来单位名下,可逐月对账。
  • 批次自动建立 每笔入库审批通过即创建一个新批次,后续出库按 FIFO 自动扣减。
RK20260523000007
36 瓶 · ¥48,400 · 待审核
事务内同步执行
库存
+36 瓶
A 仓 · 2,780 → 2,816
应付账款
+¥48,400
茅台经销华东 · 新增 1 笔
批次
+4 个
L-2026-05-001 ~ L-2026-05-004
库存流水
+4 条
逐 SKU 写入 inventory_logs
出库库存校验

库存不足,
审批直接被拦下

出库单审批前,系统按 SKU 实时核对库存。任一行不足,整单审批失败、库存与账款均不变。永远不会超卖。

  • 逐行校验 按出库单每一行的 商品 × 仓库 × 数量 校验,失败明确指出是哪一行。
  • 整单回滚 校验失败时单据状态回到「待审核」,无需重新录入。
  • 可配置宽松模式 系统设置中可开启「允许超量出库」(备货场景使用),缺省关闭。
出库单 CK20260523000012 · 审批前校验
客户 北辰大酒店 · B 仓
商品
需出
库存
状态
茅台飞天 53° · 500ml×6
24
148
充足
剑南春水晶剑 52°
20
12
短缺 8
拉菲传奇波尔多 · 750ml
6
64
充足
审批已拒绝 · 库存不足
第 2 行「剑南春水晶剑」B 仓库存仅 12 瓶,本单需 20 瓶,短缺 8 瓶。请补足库存后重新提交,或修改出库数量。
// HTTP/1.1 422 Unprocessable Entity
{
  "ok": false,
  "error": "insufficient_inventory",
  "items": [
    { "sku": "XJ-330-024", "required": 20, "available": 12 }
  ]
}
审计留痕

每一步操作,
都签着人名、贴着时间

从录入到结清,每一次状态变更都记录经办人、时间、决策、备注。是单据的完整生命周期,也是合规审计的完整证据。

  • 谁动的、什么时候动的 14 个字段:actor / role / device / IP / 时间 / 备注 / 旧值 / 新值 / 原因 …
  • 永久保留 审计日志不会被任何角色(含超级管理员)删除或修改。
  • 可导出 按单据 / 时间段 / 经办人 任意组合筛选导出,应对税务、内审、合规检查。
RK20260523000007
已审批
创建草稿
王芳 · 操作员 2026-05-23 11:24:08 192.168.10.42 · 入库 PC
编辑明细
王芳 2026-05-23 13:02:51 修改 4 项 · 新增 1 项
提交审核
王芳 2026-05-23 13:15:22 状态 · 草稿 → 待审核
审批通过
李建国 · 管理员 2026-05-23 14:32:08 库存 +36 · 应付 +¥48,400
已核对数量与单价,可入库。
应付结清
张磊 · 财务 2026-05-26 10:08:33 AP20260523000012 · 全额结清
红冲机制

审批不可撤销,
但错误可以修正

审批一旦通过,原单据永远是历史的真实记录。如有错误,只能通过红冲(反向调整单)来修正 —— 既保留审计链,又能纠正库存与账款。

  • 原单不动 原始单据完整保留,不被覆盖、不被删除,永久可查。
  • 反向调整自动生成 点击「红冲」一键生成反向单据,数量取反、关联原单据 ID、状态自动进入「待审核」。
  • 净库存为零 红冲单审批通过后,库存与账款回到红冲前的状态,但审计链上多了两笔记录而非清除。
已审批
RK20260523000007
2026-05-23 · 入库 · 茅台经销华东
茅台飞天 53°
+4
五粮液第八代
+20
剑南春水晶剑
+2
拉菲传奇
+10
合计
+36 · ¥48,400
红冲
红 冲
RK20260524000001
2026-05-24 · 反向调整 · 关联 ...000007
茅台飞天 53°
−4
五粮液第八代
−20
剑南春水晶剑
−2
拉菲传奇
−10
合计
−36 · −¥48,400
原单库存影响
+36 瓶
红冲库存影响
−36 瓶
净影响
0
权限矩阵

四级角色,
各干各的事

系统内置四个角色,按岗位职责拆分审批权。最小权限原则 —— 不该看的看不到,不该签的签不了。

  • 角色绑定门店 一个用户只属于一个门店(shop_id),跨店访问数据天然隔离。
  • 角色升降随时生效 管理员调整角色后,下一次请求即按新权限校验,无需重新登录。
  • 只读角色可看不可改 适合财务、税务、内审岗位 —— 看见全部数据,但不能产生任何变更。
角色
查看
录入
审批
设置
超级管理员superadmin · 系统最高
管理员admin · 门店负责人
操作员operator · 日常录入
只读readonly · 财务 / 内审
允许 禁止

典型场景

审核驱动业务流,落到实际操作里是什么样

三个常见门店场景,看审核流如何把日常工作中的失误拦在事前。

避免超卖发不了货

大客户来订 24 瓶飞天,操作员录了出库单。审批时系统提示某 SKU 库存只剩 12 瓶 —— 提前发现,先补货后出库。

"以前是发了货才发现没库存,半夜紧急调货。现在审批就拦下,省事多了。"

财务来对账,3 秒定位

财务问"这批拉菲是哪个供应商进的,谁审的",打开单据点击「审计链」,从草稿、提交、审批到结清的每一步都列得清清楚楚。

"以前要翻三个 Excel 表对照,现在一张图就讲完了。"

录错了不慌

新员工录错入库单一次性多写了 10 瓶,审批通过后才发现。点击「红冲」,反向调整单一键生成,1 分钟修正库存与账款。

"原始数据保留,红冲也留痕,内审完全不会有问题。"

每一笔库存变动都有人负责,
就从一次审批开始。

30 天免费试用,无需绑定支付方式。所有审批与审计数据可随时导出。