进销存与批发开单 ERP(Node.js/TypeScript,扫码开单+授信审批+账龄对账)产品系统

我要开发同款
JiaMinh2026年11月14日
11阅读

技术信息

语言技术
TypeScript、Node.js
系统类型
Web
行业分类
企业服务

作品详情

行业场景

批发商贸企业的日常:业务员在客户档口开单,仓库按单拣货出库,财务月底按客户对账、催欠款。多数企业还在用 Excel 加纸质单据,同一笔订单在业务、仓库、财务三边各记一次,库存对不上、欠款算不清是常态,月底对账往往要三到五天。本项目把「开单—出库—对账」变成一条线上流水线:一次录入,三边同一份数据;库存每次变动都留痕可回溯;超授信自动转审批而不是先发货;应收按收款先进先出算出账龄,逾期结构一眼看清。行业背景是中小商贸批发的进销存数字化,特点是单据量大、客户与商品多、每家对账口径都不一样,所以系统既要能跑标准流程,也要能按客户配置。

功能介绍

系统分五个模块。一、开单:扫码枪扫条码或按名称搜索加行,数量可改可删,合计即时计算,提交即出库;单号按日期自动编号。二、授信与审批:客户有授信额度,超授信单据不直接出库,转待审批,审批通过才扣库存,避免先发货后收款。三、库存与流水:每次出入库写一条流水并记录结存,出库为负、回补为正,低于安全库存高亮预警,支持按名称、SKU、条码搜索。四、往来对账:按客户汇总累计销售、已收、未收,收款按先进先出分摊到最早单据,输出 0–30、31–60、61–90、90 天以上账龄,超授信客户标红,可在页面直接登记收款。五、经营报表:每日销售额、毛利与毛利率、畅销商品 TOP 8、业务员业绩,支持近 7/30/60 天切换。

项目实现

我独立完成需求抽象、数据模型设计、后端接口与前端五个页面。技术选型压到零依赖:Node.js(≥22.6)直接执行 TypeScript(原生类型擦除,无需编译链),数据层用 Node 内置 node:sqlite,服务与静态资源用原生 node:http,前端原生 HTML/CSS/JS,不引入任何 npm 包,clone 下来一条命令即可运行;生产环境另附 MySQL 8 建表脚本与行锁写法(SELECT ... FOR UPDATE 加条件式更新双保险)。四个实现重点:一、金额一律以「分」存整数,显示时再除 100,杜绝浮点累加误差,对账不会差一分。二、开单是一个完整事务:BEGIN IMMEDIATE 取写锁、授信校验、库存校验、扣减、写单、写流水,全部成功才提交,避免两个业务员同时开同一商品造成超卖。三、幂等键防重复提交:Idempotency-Key 走唯一索引,移动端网络抖动重试时返回原单,不会重复扣库存。四、作废可回补:已出库的单写反向流水回补,待审批的直接作废,库存账与流水账始终一致。难点在账龄口径:直接拿总额相减算不出逾期结构,做法是按客户把每笔收款先进先出分摊到最早的未付单据,再按单据日期分桶,得到 0–30/31–60/61–90/90+ 的分布,这个口径与财务实际对账一致。示例数据(24 商品、12 客户、约 180 天单据与收款)由固定种子生成,可一键重建。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论