同一批货,两套数字
业务在群里报“发了 300”,仓库在本子上写“300 件”,等月底有人把两处抄进 Excel, 已经没人记得哪一条是改过的。
仓簿把入库、出库、库存、对账、产值做成一套系统。 装在自己电脑上,是一个 exe,双击就跑; 不想碰服务器,就直接开云端账号,浏览器打开就能用。 库管在货架边扫码录单,月底按客户对账,按未税单价算产值。
小微贸易公司的账,通常散在三个地方:微信里报的数、Excel 里的表、仓库里的实物。 三份各自都对,合起来永远差几件。
业务在群里报“发了 300”,仓库在本子上写“300 件”,等月底有人把两处抄进 Excel, 已经没人记得哪一条是改过的。
盘完发现少了 12 件,往前翻三个月找不到是哪一笔错了。没有货位、没有流水, 只能“调平”,调完还是不知道为什么。
客户说这个月只收到 127 件,你说发了 130。差的 3 件是补发的瑕疵品—— 库存确实走了,但它不是卖出去的。
九个模块覆盖「收货—发货—盘点—对账—算产值」的完整闭环。 每个模块只做一件事,按钮都在它该在的位置。
日期、商品、数量、货位,回车即存。到货单拍照可挂在单据上,事后有据可查。
客户、货位、业务性质一屏选定。发货计划可以先生成,再一键落成出库单。
期初 / 入库 / 出库 / 调整 / 期末五列并排,可按商品看,也可按货位展开看。
入、出、调三类单据同屏检索。录错不删单——开一张反向单冲销,原单标红留底。
月度报表按客户分列;对账单把「已发 / 其中售后 / 已确认」分开列,导出就能盖章。
数量 × 未税单价算产值。单价按「商品 × 客户 × 生效月」存历史,调价不回头改写旧报表。
先有计划再发货。批次号、日期码、每箱数量随计划走,外贴标签在出库页直接打印。
库管只录单、财务只看数、主管才能关账。权限落到按钮,录单的人改不了价,也改不了账。
登录、录单、冲销、导出、关账都留痕。关账后当期数字冻结成快照,事后改不动。
下面六件事,是这个系统和 Excel 真正的分界线。
后端 Go + 纯 Go 的 SQLite,前端是一个不用构建的单页应用,全部编译进同一个可执行文件。 客户机上不需要装数据库、不需要装 Node、不需要配环境变量。
127.0.0.1:8080 即可data/ 下,拷走这个文件夹就是完整备份C:\仓簿> inventory.exe
2026-11-03 09:37:32 启动 · 监听 :8080 · 数据库 data/inventory.db
[bootstrap] 账号 admin 初始口令:••••••••(首次登录必须修改)
→ http://127.0.0.1:8080
仓库现场没有桌子,只有手。仓簿的手机外壳把最常用的五件事放在底部: 首页、入库、出库、库存、我的账号——拇指够得着,不用横向滑表格。
账本的可信度来自「改不动」。仓簿在数据库层就挡住了对单据的删除与改数量—— 不是靠界面藏按钮,而是触发器直接拒绝。录错了,只能开一张反向单冲销。
售后补发的瑕疵品,货是真的走了,但它不是卖出去的。很多表格把这两件事混在一起, 于是库存对得上、产值却虚高,或者反过来。
仓簿把口径写进结构里:库存口径含售后件,销售口径不含, 报表里再单独列出「其中售后」,对账时一眼能解释那 3 件的差。
只回答“总共有多少”不够。现场要的是“这垛还剩多少”。仓簿把货位做成一本独立的账: 期初落位、每张单据写货位明细、按货位汇总,而不是给商品加一个备注字段。
关账不是打个勾。关账时会把当期每个商品的期初、入、出、调、期末写成快照, 之后所有历史报表都读快照——即便有人拿到了数据库写权限,也改不动已经关账的数字。
下面每一张都来自一套正在运行的仓簿演示账套:24 个商品、4 条业务线、 两个仓库、八个货位,2026 年 1 月至今的出入库流水。



仓簿不追求功能大而全。它服务的是那些 SKU 不算多、客户不算多, 但每一笔都必须说得清的小微贸易团队。
按图号管货、按客户分账,外贴标签有批次与日期码要求。
SKU 多、单价低、按件计,进出频繁,最怕月底对不上量。
一个仓、两三个人用,没有 IT,也不想养一台服务器。
同一图号卖给不同客户不同价,要能按客户算产值、按客户对账。
功能、表结构、报表口径完全一样。区别只有一件:服务器由谁管。
一次交付 · 数据在自己机器里
按年订阅 · 免运维
es.aily.uno。不用装任何东西,出差在酒店也能查库存。云端版不是精简版 —— 同一个程序、同一套表、同一份报表口径。
想搬回自己机器,把 data/ 目录拿走就行。
没有安装向导,也没有「请联系实施顾问配置数据库」这一步。
约 20 MB,Windows 64 位。放进任意目录,不需要管理员权限安装。
控制台打印初始口令。首次登录会强制改成自己的口令,出厂口令一次性作废。
本机用 127.0.0.1:8080;局域网内其他人用这台机器的 IP 访问。
给库管、主管、财务各开一个账号,导入商品与期初,就可以开始录第一单。
data/ 目录复制走,就等于把账本、附件、
登录密钥一起备份了。换电脑时把 exe 和 data 目录一起拷过去,双击即恢复。
都不需要。本地版的数据库是内嵌在程序里的 SQLite,随 exe 一起跑, 一台普通办公电脑就能当主机;云端版更省事,服务器、数据库、证书全由我们管, 你只要一个浏览器和账号。
同一套程序、同一套表结构、同一份报表口径,不是两个产品。区别只在谁管服务器:
本地版数据在你自己机器上,断网也能录单;云端版由我们托管,打开 es.aily.uno
就能用,升级和备份不用你操心。哪天想把数据搬回自己机器,把 data/ 目录取走即可。
放在我们境内的服务器上。每个账套的数据互相隔离,账号按角色分权限 —— 库管看不到单价,也进不了别人的账套。登录、改单、删改价目都记审计日志。 备份由我们定时做,你也可以随时把库存和单据导出成 Excel。
来信说三件事:公司名称、大约几个人用、要不要管到货位。 我们把账套建好,把登录地址、企业编码和初始账号发给你,通常当天就能开始录单。 想先看看效果,也可以申请演示账套。
小团队(十来人)同时在线没有问题。库管录单、主管看报表、财务关账可以并行, 不会互相锁住。账号按需开,库管、主管、财务各一个就够;授权按到期日计算, 具体以交付时的授权文件为准。
全部在程序目录的 data/ 下,一个数据库文件加附件目录。
备份就是复制这个目录;建议放在有定时备份的机器或 NAS 上。
没有,这是刻意的。仓簿只解决库存数量与产值口径, 应收应付和总账请交给财务软件。两套系统各管一段,比一套半成品都管不好要稳。
不用装。手机浏览器打开地址后「添加到主屏幕」,就会像 App 一样有图标、 全屏打开。录单页针对单手操作做过排版,底部五个入口都是拇指够得着的位置。
不能直接改,也不需要。开一张冲销单把原单抵掉,再录正确的那张。 原单会保留并标记「已冲销」——这样月底回看时,能看见「当时发生了什么」, 而不是一张被悄悄改过的数字。
不会。单价按「商品 × 客户 × 生效月份」保存,某个月的产值用的是那个月生效的价。 9 月调价不会改写 1–8 月的产值。