农批市场档口是典型的「重线下、轻数字」场景:凌晨到货靠手工点数记账,出货靠纸单加口头交代,货损、赊账、月底对账全凭一本流水账和老板的记忆。痛点集中在三处——账实不符(纸单与库存对不上,报损没人认领)、收款无凭(口头说「先拿着」,月底谁欠多少说不清)、装卸失控(装卸工凭口头指令搬货,品类件数出错无人核对)。
本项目面向农批市场果蔬档口,覆盖「入库—开单—装卸—收款—对账」全链路:以包装条码(一物一码)替代纸单做入库核销;出库不再「点了就卖完」,而是开单后生成单据卡片,由客户在免登录链接上确认收货,确认那一刻才完成扣库存、核销编码、记客户应收三件事。让「谁拿了什么、拿了多少、欠多少」在服务端一次落库、随时可查,同时兼顾档口老板、司机装卸工、下游采购客户三方协作,并针对户外湿滑、单手持机的作业环境做了大字体、大按钮、底部拇指区的操作适配。
扫码入库:每件商品必须扫码核对,扫到未绑定条码必须选择物品并绑定(档口内唯一、全员设备共享);已绑定条码直接命中物品,一物一码、同码当天不重复计数;支持连续扫码模式与损耗报备。
开单出库分享:扫码或搜索加商品,整件计价(箱/件,不拆零),点击单价弹大数字键盘改价;「开单分享」必须先选客户,再选分享给客户还是装卸工,生成免登录单据卡片。卡片只显示物品名称、数量与总件数,不含任何价格;分享给客户的可点「确认收货」并自动记账,分享给装卸工的只可查看、不能操作。
开单记录:按待确认/已收货/全部筛选,待确认单可由档口「代客户确认收货」兜底,也可再次转发卡片。
客户欠款对账:总欠款统计、欠款客户列表(余额、逾期、年单数由后端计算)、对账单卡片流水、快速记还款,客户档案 CRUD(有余额禁删)。
档口管理:微信登录 + 四种角色(管理员/成员/司机/装卸工)成员管理、邀请卡片入档、物品目录与常用标记、实物包装编码登记、库存台账与今日已入库存档。
技术栈:
前端: uni-app (微信小程序)
后端: Go, GoFrame v2,MySQL, Redis, GORM。
分层规范:接口定义、控制器、业务逻辑、数据访问四层分离,业务规则集中在逻辑层,控制器仅做转发;数据访问对象与业务接口由框架工具按表结构自动生成,改表后重新生成,杜绝手写不一致。
实现亮点:一、出库改为两步,客户确认收货才扣库存、核销条码、记应收,未确认的单在账务上等同于不存在,卡住也没有副作用要回滚。二、客户凭一次性链接免登录确认,凭据随机生成、限时有效、只对应一张已建好的单,造不出新单也碰不到别家数据;装卸工的卡片由服务端直接拒绝操作。三、卡片不含价格由返回结构与界面组件双重保证,不依赖调用方自觉。四、客户确认与档口代确认共用同一处行锁加状态判断,重复点击不会重复扣减。五、建单时即校验库存与编码占用,不发出必然失败的链接。
主要难点:整件记账不可拆零,单位错配会按另一单位把库存扣穿,故强制校验单位与整数数量;公开分享页与登录兜底冲突,需单独豁免登录跳转,并处理小程序启动路径不带前导斜杠的隐性差异;账实口径一律以数据库为准,本地缓存不得凌驾服务端;建库须显式指定字符集,否则中文注释会双重编码成乱码。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论