立项背景和目标:布行等小微商贸企业长期靠手工/Excel 记账,单据易错、库存与欠款对不上、数据分散且担心上云泄密。目标是打造一套贴合自身流程、可私有化部署、断网也能用的轻量进销存记账系统,实现从开单到对账的全流程数字化。 2)软件功能与核心模块:销售开单、采购入库、客户与供应商管理、商品与颜色/尺码明细、仓库与库存台账、收付款与欠款统计、经营报表、单据打印、OCR 离线录单、卡密授权与多租户。 3)业务流程与功能路径:录单(手工或拍照 OCR 识别)→ 审核并生成单号 → 自动回写库存 → 收款与对账 → 生成报表与打印;全程支持离线暂存,联网后按增量自动同步
整体架构与设计思路:前后端分离。前端为原生 JavaScript 轻量 SPA,配合 PWA(Service Worker + IndexedDB) 实现离线;后端为零依赖 Python(仅标准库 ThreadingHTTPServer),数据以 JSON 文件落盘,便于单机部署;安全采用 PBKDF2 加盐口令 + HMAC 签名会话;同步层用版本号 + ETag + gzip 做增量合并。 2)我负责的模块与结果:一人独立完成需求、架构与全部开发。实现约 8–9 千行一手代码,交付开单—库存—对账—报表—打印完整闭环,并落地 PWA 离线运行与离线 OCR 录单能力,可在单机环境下私有部署。 3)难点、坑与解决方案:① 断网仍要能开单 → 用 PWA + IndexedDB 本地存储,联网后增量同步;② 客户要求"零依赖、一条命令部署" → 后端只用 Python 标准库自研 HTTP 与安全会话;③ 无联网 OCR 服务 → 集成 Tesseract.js 做离线识别;④ 多端并发易冲突 → 用版本号做弱合并、减少数据覆盖。