屿见灯塔管理系统是一套面向景区多门店(咖啡馆/灯塔/小木屋/小天涯/泡泡屋等)的经营运营中台,从“月度排班”起步,逐步演化为以供应链(SCM)采购与库存出入库为主体的业务系统,已上线部署于阿里云。立项背景:景区多门店此前分散管理,排班、采购、库存、点单、权限各自为政,缺乏统一台账与数据对账能力。软件功能与核心模块:1)排班管理,多门店统一的排班与工时统计,提供周/月/日期范围视图、岗位级编辑与浏览模式,移动端支持双指缩放;2)工时统计,按员工/岗位自动统计总工时并支持 Excel 导出;3)供应链管理,含菜品库、成本卡档案/设置、实时库存、采购、供应商、出入库明细;4)旅拍台账,像素/摄影师/选片/化妆等字段,支持查看/编辑/作废/月度汇总;5)出入库工作台,领料申请、库位调拨、退库,是受限销售账号的主战场;6)点单系统,菜品卡片点单、购物车、现金结算,并联动供应链出库;7)用户/权限管理,用户、员工、岗位、细粒度权限与门店可见性;8)设备/系统,设备授权、登录日志、备份恢复、微信账号绑定。业务流程与功能路径:采购全链路为请购→审核→采购订单→收货→退货→入库;菜品/成本卡/物品主数据及美团管家数据每日自动同步与对账;5 个共享销售账号按库位级可见性与出入库权限隔离。
整体采用前后端分离的 B/S 架构:前端为 Vue 3(script setup)+ Vite + Element Plus 单页应用(SPA),表格与 Excel 导出使用 ExcelJS/xlsx;后端为 Express 5 单文件服务 server.cjs(约 1.9 万行,单体服务),提供 JWT/会话鉴权与 SSE 实时推送;数据层使用 SQLite(better-sqlite3 / sql.js),生产库 schedule.db 约 178MB,并含 mssql 外部对接依赖;部署于阿里云 ECS,采用 nginx 反向代理(HTTPS→:3001)+ nssm 守护进程(ScheduleServer),域名 schedule.jslinezone.com,本地通过 incremental-deploy.ps1 增量部署。本人负责:前端 SPA 与后端 Express 服务的整体设计实现、SQLite 数据建模、多门店 RBAC 权限与库位可见性、美团同步链与设备授权模块。成果量化:系统已在阿里云生产环境稳定运行并接入微信小程序;后端单文件约 1.9 万行;生产库约 178MB;管理 5 个共享销售账号的库位级权限隔离;美团同步链每日 06:00 自动运行 5 步并落库采购模块三表与出入库明细。遇到的难点与解决方案:1)美团同步字段语义坑(receiveDate 具双语义、发货真源应为 listRow.supplierDelivered),通过指纹基线 purchase_baseline_<库位>.json 做增量同步并逐单核对,避免重复与错账;2)大单体与数据一致性,采用 saveDB 防抖落盘 + 物品名称跨模块同步,减少脏数据;3)部署与排障,建立“改后端须连带部署并活体实证、数据问题一律查远程生产库”的工程纪律,并配套 incremental-deploy.ps1 增量部署与 rollback.bat 回滚脚本,显著降低上线风险。