使用与测试指南

怎么用、怎么测,都在这一页。不用再找文件。

最后更新 2026-09-17 · 网页后台第二版 · 安卓端首版

开始之前

三个地址、两个账号,记不住就回这儿看

网页后台(电脑)
手机端下载
这份指南
jxc.veendev.top/guide/
角色手机号密码看得到什么
老板13800000000私下问赵爽全部,含进价、成本、毛利、参数设置、作废
店员13800000001私下问赵爽不含进价、成本、毛利;改不了参数,也不能作废
这一页在公网上,任何人都能打开,所以不写密码。 网页后台和手机 APP 都只帮你填手机号,密码每次手动输,不做自动填充。 连续输错会锁定一段时间。
店员看不到成本这件事是在服务器上做的,不是界面藏起来。用店员账号登录, 接口返回的数据里根本没有那几个字段。

网页后台和手机端用的是同一套数据。手机上开的单,刷新网页后台就能看到; 网页后台改的价格,手机同步之后就生效。

网页后台 · 电脑

七个标签页。老板管资料、看账、改参数;收银也能用,但手机更顺手

收银开单

条码框里扫码或手输后回车,商品和价格自动出来,点「确认成交」。

为什么未知码不能卡住:收银高峰期后面排着人,店员不可能停下来建档。 卡一次,他第二天就改用计算器了,这一单永远不会进系统。

进货入库

扫码后会问这次的进价,填完加入,点「确认入库」。扫整箱码就按箱入库。

店员可以录进价并确认入库(老板不在店里时进货不能卡住),但确认后再查这张单, 进价和金额都看不到了。

商品与待完善

新建商品

填名称、规格、单位、售价、进价、条码即可。如果这个货按箱卖, 再填「一箱几个」「整箱码」「整箱价」三项,系统就会自动做箱瓶换算。

待完善商品

扫到未知码先卖出去的,都会落在这里。点「补全」填名字、进价、售价, 之前那几单的成本会自动补上。

每一行右边还有个「提醒设置」,可以单独给这个商品设补货点,不影响别的商品。

初始库存

系统上线不需要停业盘点。哪个货卖到了或进到了,就在这一页填一次「现在实际还剩多少」, 填完这个货就不再问。两周左右自然就补齐了。

这么设计是因为:任何「必须先做完 X 才能开始用」的要求,都会把上线卡死。 所以把它拆散进日常流程。

退货

顾客退货走这一页。填了原销售单号,成本就按当时那一单算;不填也能退,按当前平均成本算。

为什么要分:如果中间又进了一批更贵的货,平均成本被抬高了。退回来的这一件 必须按当时卖出去的成本记,否则以前算过的毛利会自己变。

盘点

只填「实际数了多少」,差异系统自己算,边填边显示。选好原因(盘点、报损、试吃、自用), 点「生成盈亏单」。

盘点差异也必须生成单据。系统里没有任何一条路径能直接改库存数字—— 这是整个账目正确性的地基,破一次就退回黑盒子了。

作废

开错了单,在各个单据列表右边点「作废」。

两张单都留着,是因为月底扎账时你应该看到「开错一张、冲掉一张」, 而不是凭空少一张单。单据丢失正是这个项目要解决的问题本身。

今日经营与对账

营业额、成交单数、退款人人可见;今天赚了多少、进货花了多少只有老板能看到。

对账卡片会显示上次自动对账的时间和结论——每天凌晨 02:30 自动跑一次,不用你记得点。 也可以随时手动点「立即对账」。

对账校验的是「期初 + 期初调整 + 入库 − 出库 = 期末」,数量和成本两列同时对。 它只报差异、不自动改数:对不上就是事故,必须人工找原因。自动修复等于把 bug 洗白。

参数设置

所有阈值都在这一页,代码里没有写死任何一个业务数字。

改哪一层在哪改效果
全店「参数」页直接改,点保存没单独设过的商品都跟着变
单个商品「商品」页那一行点「提醒设置」只影响这个商品;留空则恢复跟随全店

「来源」那一列会告诉你当前值是全店设的商品单独设的还是系统默认。 「恢复默认」是把这一层的设置删掉、回到继承上一层,不是填一个空值。

手机 APP · 安卓

收银的主力形态。手机和 PDA 装的是同一个包,不用做两套

安装

手机浏览器打开 jxc.veendev.top/app/,页面上有下载按钮和二维码。 网页后台的登录页和右上角也都有「手机端」入口。

这是自己编的包、没上应用商店,所以系统会拦一下:

登录与同步

第一次登录必须联网,它会把商品资料下载到手机里。右上角出现绿点「已同步」就好了。

右上角意思
● 已同步都传上去了,没有积压
● 离线 · N 单待传连不上服务器,单据存在手机里,联网会自动补传
● N 单待传网络通但还在传,等几秒
● N 单被退回服务器明确拒绝了某单,需要人看一眼

旁边的同步按钮可以手动催一次。「今日」页底部还有个「立刻重新同步全部商品资料」, 在网页后台新建了商品、手机上却搜不到时点它。

收银与进货

底部三个标签:收银、进货、今日。

离线怎么工作

这个 APP 没有「离线模式」开关。所有读写本来就走手机本地, 联网只是把待传队列往上推。所以断网时一点都不卡。

「今日」页最上面那张卡是这台手机今天开的单,断网也有数看;下面那张是 整店今日,来自服务器,联网才有。两个数分开给,不含糊。

测试总览

按版本分三组。每组十来分钟,照着做就行

版本在哪测测什么状态
第一版电脑网页主链路:建档、扫码、开单、减库存、当日营业额已通过
第二版电脑网页参数配置、退货、盘点、作废、自动对账与备份待测
安卓端首版手机离线开单、自动补传、本地条码字典、摄像头扫码待测
测试数据不用管,我不会清库。真要重来我会先问你。

第一版 · 网页主链路

在电脑上打开 网页后台,用老板账号。约十分钟

1

扫码卖一瓶水

进「收银」,条码框输 6921168509256 回车,加入后点「确认成交」。

要看的:出单号、金额 2.00。这是主链路最短的一条。
2

扫整箱码,验证箱瓶换算

进「进货」,条码输 16921168509253(同一商品的整箱码),数量 1,进价填 28.80,确认入库。

要看的:「今日 → 当前库存」里矿泉水加了 24 瓶,不是 1 件。成本单价自动算成 1.20。
这是最容易埋雷的地方。不做换算,进一箱只加一件,账第一周就乱了。
3

扫一个没见过的码

回「收银」,条码随便输一串,比如 6999999999999,回车。

要看的:系统不拦你,输个成交价就能继续卖,这一单照常出单号。
这条是收银高峰期的生死线。扫到未知码就卡住的话,店员第二天就不用了。
4

事后补全那个商品

进「商品 → 待完善商品」,点「补全」,填名字、进价、售价。

要看的:补全后,刚才那一单的成本会自动回填,今日毛利跟着变。
5

补录初始库存

进「初始库存」,填一个「现在实际还剩多少」,点记下。

要看的:填完这个货就从列表里消失,不再问。
6

看今天赚了多少,然后换店员账号

进「今日」,老板能看到营业额、单数、今天赚了多少、进货花了多少。 退出,用 13800000001 登录,再看同一个页面。

要看的:进价、成本、毛利全部消失。「商品」页也没有「提醒设置」了。
7

对账

「今日 → 对账 → 立即对账」。

要看的:账实一致。数量和成本两列同时对得上。
8

看一眼参数

进「参数」页。

要看的:所有阈值都在这儿,来自配置表而不是写死在代码里。

第二版 · 参数与退货盘点作废

电脑网页,老板账号。约十五分钟。第一版验的是「能开门做生意」,这一版验的是出了岔子怎么办

开测前的账面(照着对数)

商品库存成本单价
康师傅红烧牛肉面 袋装103.20
可口可乐 330ml102.10
散装瓜子108.50
农夫山泉饮用天然水 550ml321.24
摇摇乐91.00

今日经营:营业额 6.00,成交 3 单,退款 0,今天赚了 5.00,进货花了 28.00。

1

改一个全店参数

进「参数」页,把补货点从 3 改成 8,保存。再点「恢复默认」。

要看的:「来源」列从「系统默认」变成「全店设的」,旁边多出「恢复默认」; 点了之后值回到 3,来源变回「系统默认」。
「恢复默认」是把这一层的记录删掉、回到继承上一层,不是写一个空值。
2

只给一个商品单独设

进「商品」页,找到「可口可乐」,点那一行的「提醒设置」,填 50 确定。 再点一次看它显示什么,然后回「参数」页看全店的补货点。

要看的:商品那儿显示「现在是 50(这个商品单独设的)」, 全店那儿仍然是 3。两边互不干扰。留空确定即可恢复跟随全店。
调某个商品的阈值,应该在看得见这个商品的地方改,不该让你钻多级设置菜单。
3

验证参数真的会生效

「参数」页把「库存不够时是否允许继续卖」改成,保存。 然后去「收银」扫 6928804011173,数量填 99,确认成交。

要看的:报错「可口可乐 库存不够了」,单没开成。
测完记得改回「是」,否则后面几步会被拦住。
4

店员改不动参数

退出,用店员 13800000001 登录,进「参数」页。

要看的:输入框全灰,没有保存按钮;「商品」页也没有「提醒设置」。 这个限制在服务器上,不是前端藏起来。
5

卖一单,然后带原单退一件

换回老板账号。「收银」扫 6928804011173 数量 3 成交,记下单号。 进「退货」页,原销售单号填那个单号,扫同一个码数量 1,确认退货。

要看的:提示「退款 ¥3.00(按原单成本回库)」; 可乐库存 10 − 3 + 1 = 8;「今日」页多了退款 ¥3.00。
6

盘点

进「盘点」页,可口可乐账面显示 8,在「实际数了多少」填 6,原因选「报损」,生成盈亏单。 然后再试一次,这次填 6(和账面一样)。

要看的:第一次差异列立刻显示红色 −2,生成调整单,账面修正到 6; 第二次提示「实盘数和账面一样,没有差异,不用生成单据」,不产生空单
7

作废

「收银」故意开一单错的:扫 6901028075831 数量 5 成交。 记下当前营业额和库存,然后在「最近的单」里点那单右边的作废

要看的:那张单变灰标「已作废」但没有消失; 列表里多一张负数金额的「作废单」;方便面库存还原;营业额扣回去了。 再点一次会提示「已经作废过了」;店员账号看不到作废按钮
8

对账

进「今日」页看「对账」卡片。

要看的:最上面一行显示上次自动对账的时间和结论(每天凌晨 02:30 自动跑); 点「立即对账」手动跑,经过上面一串退货、盘点、作废之后仍然账实一致
对上了,说明这些操作没有一处绕过单据直接改库存。

顺带说一句:备份

后台每天 03:30 自动导出数据库、本地保留 7 天,我做过一次恢复演练(还原进临时库,恒等式仍成立)。 整机快照也建了基线。

还差一层需要你动手:把备份每天拉回你自己的电脑。 以管理员身份打开 PowerShell 跑一次下面这条,注册每日任务即可:

schtasks /Create /TN "jxc-pull-backup" /SC DAILY /ST 04:30 /F /TR "powershell -NoProfile -ExecutionPolicy Bypass -File D:\work\vv\vv-sp\vv-03-projects\vv-12-inventory\projects\server\deploy\pull-backup.ps1"

安卓端首版

在手机上测。约十分钟。先去下载安装

1

扫码卖一瓶水

底部选「收银」,点扫码用摄像头对准条码;没有实物就在条码框手输 6921168509256 回车。

要看的:商品名、单价自动出来。+ 改数量,点「确认成交」。
摄像头扫码是我在模拟器上验不了的一条,麻烦你重点看这个。
2

扫整箱码

条码输 16921168509253

要看的:提示「按箱计,1箱 = 24 个最小单位」,单价是整箱价 42 元。
3

把手机调成飞行模式,继续开单

打开飞行模式,然后照常扫码、加入、确认成交。

要看的:照样能卖,一点都不卡;右上角变黄点 「离线 · N 单待传」;提示「连不上服务器,单据先存在手机里」。
门店在地下商场、代理商在车上,断网是常态。这条过不了,这个 APP 就没用。
4

关掉飞行模式,什么都别点

等十几二十秒。

要看的:右上角自己变回绿点「已同步」,待传数归零。 去电脑上刷新网页后台的「今日」页,刚才离线开的单都在里面。
5

扫一个没见过的码

随便输一串没见过的码,比如 6999999999888

要看的:不拦你,输个成交价继续卖。事后在网页后台 「商品 → 待完善商品」里补全。
6

初始库存就地补

如果某个商品还没记过初始库存,成交后会问一句「现在还剩多少」。

要看的:填完这个货就不再问。这一步需要联网,离线时会跳过,下次卖到还会问。
7

进货,然后换老板账号看

底部选「进货」,扫码后填进价,确认入库。然后退出,用老板账号登录同一个 APP。

要看的:店员账号下「今日」页没有成本和毛利; 换成老板就多出「今天赚了」和「进货花了」。
8

双击不会重复扣

确认成交时快速连点两下。

要看的:只出一单。

我已经在模拟器上验过的

项目结果
安装与启动装上、能开、无崩溃
登录与主数据同步成功,右上角绿点「已同步」
本地条码字典手输条码,商品名与价格自动带出,走的是手机本地库
飞行模式下开单照常成交,变黄点「离线 · 1 单待传」
恢复网络自动补传没点任何按钮,二十秒内变回「已同步」,服务端收到那一单
事后对账数量与成本两列恒等,差异 0
摄像头扫码验不了:模拟器没有真摄像头。真机上请重点看第 1 步。

出问题怎么反馈

截图就行,不用整理

演示条码

测试时直接复制

条码商品按什么卖售价
6921168509256农夫山泉饮用天然水 550ml2.00
16921168509253农夫山泉饮用天然水 550ml箱(1 箱 = 24 瓶)42.00
6901028075831康师傅红烧牛肉面 袋装4.50
16901028075838康师傅红烧牛肉面 袋装箱(1 箱 = 12 袋)46.00
6928804011173可口可乐 330ml3.00
(无条码)散装瓜子12.00

随便编一串没见过的码,就能测「未知码不阻塞收银」。

还没做的

说清边界,免得你测到一半找不到

手机 APP 里还没有

  • 退货、盘点、作废(去网页后台)
  • 新建商品(去网页后台;扫到未知码可以先卖)
  • 拍照留档

整个系统还没有

  • 报表:商品排行、进销存汇总、导出 Excel
  • 补货提醒与压货提醒
  • 商品合并的界面(服务端已支持)
  • 小票打印、会员、促销
手机端目前用的是调试签名,够内部装;正式推广前要换成正式密钥。 PDA 扫描头的接入代码已经写好,但没有设备可测。

这一页由 AI 维护,每次交付后同步更新。
设计与开发过程的完整记录在项目文档里,这一页只讲怎么用、怎么测。