每个收购站的经营者都熟悉这样的对话。果农在交货几周之后回来,质疑每公斤的价格。经营者记得的是另一个数字。当天报价是多少,没有一份被锁定的记录,争论最后只能靠谁更固执来收场。
这看上去是人的问题,其实是数据模型的问题。simpliDepot 的设计目标,就是让这种争论无从下手。
核心规则:收购时的价格是"复制"的,不是"引用"的
simpliDepot 按品种和等级维护带生效日期的价格目录。批次在收购时过磅、定级,当天生效的价格会被复制到批次上并永久保留,绝不重新计算。
显而易见的替代做法,是保存对价格表某一行的引用,每次需要时再去查价格。在价格表变化之前,这样可以运转。一旦某一行被编辑,或者新增了一个生效日期,所有历史批次就突然指向了另一个数字。没有人动过批次,付款记录却变了。
复制的做法避免了这个问题。批次保留的是过磅时适用的价格,无论价格表现在写的是什么。
flowchart TD
A["果农送果"] --> B["过磅员按等级记录重量"]
B --> C["按收购日期查价格"]
C -->|"未设置价格"| X["阻止收购"]
C --> D["把每公斤价格复制到批次"]
D --> E["批次入库"]
E --> F["销售订单先取最早的批次"]
F --> G["买家发票与果农付款"]
还有一道相关的保护:如果该品种和等级尚未设置价格,收购会被直接阻止。缺失的价格不会悄悄变成零,也不会变成事后再有人去补的猜测值。
精确的金额,而不是浮点数
价格和付款金额使用精确的十进制算术计算,而不是浮点数,舍入规则在生成价格快照时统一执行。这不起眼,却能让果农的付款金额和买家的发票金额在成千上万个批次之间一直对得上,精确到最后一个萨当(satang)。浮点数的微小误差,正是月底对账变成一场混乱的典型原因。
不会冲突的编号
收购旺季,多个过磅点和多位收银员同时作业。有两个性质很重要:
- 批次编号连续生成,即使多个过磅点同时提交也安全。
- 发票编号连续且不断号,即使多位收银员同时开票。
手工输入的发票号容易重复或跳号。由系统在并发控制下发放的编号则不会。
先进先出分配:最老的批次先走,缺口如实呈现
买家下订单时,simpliDepot 自动从最早入库的批次开始分配库存。有两个细节比听上去更重要:
- 部分分配逐行记录,而不是被悄悄丢掉。某一行无法完全满足,在订单上一目了然。
- 批次状态自动流转:从已定级,到部分售出,再到售罄,随库存减少而变化。
销售订单的每一行都保留完整的先进先出分配轨迹。这就是事后追溯问题的答案:哪位果农的批次最终上了哪位买家的货车。对向海外买家出口、需要提供货源追溯文件的业务来说,这一点尤其重要。
库存与报表不会漂移
库存和报表是建立在同一套收购、销售、开票记录之上的只读视图。不存在另一本需要对账的库存账,也就没有什么会失去同步。每个环节拥有自己的数据并移交给下一环节,视图只负责读取。
系统本身不做的事:离线收购
有一个影响现场规划的诚实限制。simpliDepot 是托管的 Web 平台,记录收购和销售需要网络连接。对于网络不稳定的场地,本地网络方案或离线缓冲是在需求调研阶段界定范围的内容,不是可以默认假设的内置功能。如果你的过磅点远离信号覆盖,请在第一次沟通时就提出来。
不只是榴莲
simpliDepot 最初为榴莲而建,但品种、等级和价格都是配置,而不是写死在代码里的逻辑。同一套批次、等级、先进先出模型,适用于其他按等级、按重量销售的商品,例如芒果、橡胶和棕榈果,目录按你自己的等级体系来设置。
我们之前有两篇文章沿着这条线索展开。From Durian Depot to Recycle Depot(英文)把同样的流程映射到资源回收业务,并指出了需要扩展的地方。EUDR Is Coming for Thai Rubber and Palm Oil(英文)坦率说明了平台目前做不到什么,例如在收购时采集地块的地理定位。
延伸阅读
- The Modern Durian Depot: Stop Counting Stock on Paper, Start Running a Real Business(英文)
- Idempotency in Payment APIs(英文):同样的纪律,避免付款被重复记录。
- FarmScript: Designing a Programming Language for Chanthaburi Durian Farmers(英文)
常见问题
你们到底如何防止价格纠纷?
收购日当天生效的价格在定级时被锁定到批次上,此后即使价格表改变也不会重新计算。这份快照就是任何付款争议的依据。
如果还没有人设置价格会怎样?
在该品种和等级设置价格之前,收购会被阻止。
多个过磅点和多位收银员能同时作业吗?
可以。批次编号和发票编号的生成方式保证不冲突,即使同时提交。
能对接会计软件吗?
可以,作为 Professional 和 Platform 套餐的附加项,在上线阶段根据你的会计系统所需的导出或 API 方式界定范围。
亲自试试
完整系统正在运行,带有示例果农、买家和批次。你可以用任一演示角色(过磅员、收银员、经理、管理员)登录,亲自走一遍从收购到开票的流程:simpliDepot 在线演示。包含套餐和部署流程的产品页在 simpliDepot。
想聊聊你自己的收购站,请把品类、站点数量和时间安排发到 hello@simplico.net,我们会在 48 小时内给出界定好范围的方案。
最新文章
- 五个读数,一个判定:检验台上的多点测量与脚踏采集 October 26, 2026
- 断网之后,电动车充电桩会怎么做:OCPP 1.6J 的离线行为,以及本地 CSMS 代理适合用在哪里 October 26, 2026
- 诚招创始合作伙伴:支持泰国本地支付与定制商品的白标电商平台 October 26, 2026
- 诚招创始合作伙伴:连接 ERP 工单、操作员和设备的本地部署 MES October 25, 2026
- 诚招创始合作伙伴:面向废品回收场的堆场运营平台 October 25, 2026
- 诚招创始合作伙伴:为中小型及成长中健身房打造的会员管理系统 October 25, 2026