当前位置: 首页 > news >正文

从0到1:推拿头疗店ERP系统的需求分析与架构设计全复盘

一、项目背景

最近接到一个线下服务业SaaS系统的开发需求:为推拿、头疗、采耳等门店开发一套完整的ERP管理系统。系统需要覆盖微信小程序端(用户端)、安卓App端(技师端+客户端)、Web管理后台(店长端+总部端),以及核心的中台账目管理

团队配置:两个大学生 + AI辅助开发。我在之前的项目中做过9个微服务的架构,这次决定用“一个后端+多个前端”的单体架构来简化部署,同时内部保持清晰的模块边界。

这篇文章不是教你写代码,而是完整记录需求分析阶段遇到的坑、思考过程和技术决策。希望能给做类似项目的同学一些参考。


二、需求全景图

2.1 角色与模块矩阵

角色/模块核心需求
① 用户端注册、活动提醒、生日/节日问候、技师选择(含技师介绍、好评展示、服务时长、服务客户人数等)
② 店长端上钟记录、排班管理、店铺的房间管理
③ 技师端上钟提醒、入职表管理、实时量化工资组成(提成工资)、已发工资和待发工资显示
④ 中台账目、经营管理
⑤ 其他扫码核销、连接店铺房间硬件计时器(上钟/下钟提醒,数据同步到后台)

2.2 多端架构概览

  • 微信小程序:面向C端用户,预约、选择技师、下单。

  • 安卓App(客户端):功能同小程序,但通过App推送触达用户。

  • 安卓App(技师端):接单、上钟/下钟操作、查看工资。

  • Web ERP(电脑端):店长管理和总部管理界面,数据报表、排班、房间管理。


三、需求对齐中的模糊地带(最容易扯皮的点)

在写第一行代码之前,如果不把以下问题对齐,项目必然会延期或扯皮。

3.1 硬件计时器到底是什么?

需求里写的“连接店铺房间硬件计时器”,这五个字是整个项目最大的黑盒

  • 是Wi-Fi智能插座?

  • 是蓝牙网关设备?

  • 还是房间内摆放的一台安卓平板运行倒计时?

对齐结论:如果硬件选型未确定,第一版只做虚拟计时按钮(技师手机端点击开始/结束),硬件对接作为二期功能。否则开发会陷入无底洞。

3.2 “实时量化工资”的算法陷阱

“实时量化工资”听起来简单,实际极其复杂。几个致命问题:

  • 提成是按项目金额的比例还是固定金额

  • 点钟、轮钟、加钟的提成算法是否不同?

  • 不同职级技师提成比例是否不同?

  • 如果订单发生退款,已算好的提成怎么扣回?技师已经离职了怎么办?

对齐结论:要求甲方提供明确的书面提成规则公式,否则工资模块无法开发。开发时将提成规则设计为策略模式,方便后续调整。

3.3 中台 vs 店长端 vs 总部端的边界

这是最容易被混淆的概念。

给谁看关注什么
店长端店长/前台今天多少流水、技师忙不忙、房间脏不脏
中台财务/老板娘钱对不对、成本准不准、负债多少
总部端老板/运营各店营收达成率、哪个店长不行

举例:顾客充值1000元,店长端看到“收了1000块业绩真好”。中台必须冷酷地记:负债1000元(欠顾客的),直到顾客消费了800块,中台才确认800元是真实收入。


四、技术难点分析

4.1 硬件层交互的实时性与可靠性

Web ERP是基于浏览器的,无法直接通过串口或蓝牙连接物理硬件。需要一个中间件客户端(可以是技师端App充当网关)来轮询硬件状态并推送到云端。

坑点:网络抖动导致状态不一致——硬件显示“上钟”,系统显示“空闲”。

方案:引入本地消息表 + 最大努力通知 + 人工干预后台。不要试图用分布式事务强一致硬件状态。

4.2 工资计算的强一致性

技师随时查看“待发工资”,如果某笔订单发生退款/改价,必须触发工资的冲正重算

关键设计:使用计算字段快照。订单完成时,直接把当时的提成金额存一份到工资流水表,不要每次查工资都关联订单表重新算(否则订单改价后历史工资会变,技师会投诉)。

4.3 多端的实时消息同步

技师端App必须实时收到上钟提醒,不能依赖手动刷新。

方案:部署WebSocket长连接服务。在小体量下可以内嵌在后端服务中,不需要独立集群。

4.4 中台账目的逆向流程

退款时,账目不能直接删除或修改原记录。必须遵循财务原则:只增不改,红字冲销


五、架构决策:为什么选“一个后端+多个前端”

我之前做过9个微服务的项目,这次选择单体应用 + 内部模块拆分

5.1 架构对比

维度单体+模块拆分完整微服务
开发速度极快,改一个接口四个端全生效极慢,调一个流程改3个服务
硬件成本,一台2核4G搞定高,至少3-5台服务器
工资计算风险,代码只在一处高,A服务算提成B服务退款,数据不同步
单点故障有风险(挂了全挂)部分可用

结论:对这个项目规模和团队配置,单体是更务实的选择。

5.2 内部四大领域模块

即使部署在一起,代码边界必须清晰:

java

com.headspa ├── billing // 计费与工资 - 最复杂,变最频繁 ├── scheduling // 排班与房间 - 状态机复杂 ├── shopfloor // 硬件与工位 - IOT隔离层 └── identity // 多端鉴权 - 权限隔离

六、AI辅助开发策略:不是“一把梭”,而是“审查式生成”

我们团队是两个大学生+AI,但我和同伴在开发方法上有分歧:他想快速用AI生成功能,我坚持用软件工程方法逐步推进。

6.1 我的真实做法:AI是审查员,不是主程

核心原则

  • 人定架构,AI当审查

  • 人写接口定义,AI生成方法实现

  • 人写数据库设计,AI挑刺找漏洞

6.2 四轮AI审查机制

第一轮:架构审查(开工前)

把需求文档喂给AI,让它以资深架构师身份审查:

  • 哪个模块最容易出现并发数据错误?(工资+硬件状态同步)

  • 推拿行业有什么特殊业务坑?(技师并牌服务、跨天工资归属期)

第二轮:数据库设计审查(建表前)

把ER图给AI审查:

  • 统计“上月所有点钟提成”时能否高性能跑出来?

  • 跨天订单的工资归属期用哪个字段标识?

  • 技师离职后历史提成数据是否会丢失?

第三轮:接口定义审查(写代码前)

先生成Swagger/OpenAPI的YAML,作为多端开发的宪法。安卓、小程序、Web都严格遵循这份契约。

第四轮:AI规则文件(防坑指南)

项目中放置.cursorrules文件,约束AI代码生成:

plaintext

1. 涉及金额的变量禁用float/double,必须用BigDecimal。 2. 工资计算逻辑严禁写在Controller层。 3. 数据库状态变更必须使用乐观锁(@Version)。 4. 接口返回日期统一用"yyyy-MM-dd HH:mm:ss"格式字符串。 5. 不要未经确认引入外部依赖库。

七、工时估算

模式开发周期(3人团队)最终形态
小做(MVP)1.5-2个月能用手机代替纸质笔记本,无硬件联动,工资固定比例
大做(SaaS标准版)3.5-4.5个月成熟门店数字化系统,带物联网中控,动态工资规则引擎

两个大学生+AI的实际预估:1.2-1.5个月完成MVP,关键瓶颈在业务规则的梳理而非代码编写。


八、给同行的三点建议

8.1 需求阶段花50%的时间

这个项目最大的成本不是写代码,是把老板自己都说不清的分钱规则翻译成可执行的代码逻辑。需求阶段多花一天,开发阶段少花一周。

8.2 硬件对接是最大无底洞

第一版坚决不做硬件对接。用手机上的软计时(技师点击开始/结束)跑通流程,再考虑对接智能开关的开放API。

8.3 AI的正确用法是“审查”而不是“生成”

用AI省下来的时间,不是去打游戏,而是花在设计模式数据库规范上。这样下周老板改需求的时候,你还能打游戏。


九、写在最后

这个项目对我来说,技术栈上没有太多新东西(从9个微服务降维到1个后端),但业务复杂度远超预期。推拿头疗这种线下服务业的很多场景,是互联网出身的产品经理完全想不到的。

如果你也在做类似的线下服务业数字化项目,欢迎留言交流。特别想知道大家对技师并牌服务的工资拆分有没有好的方案——这是我目前遇到的最头疼的问题之一。


本文完整记录了项目从需求对接到技术方案的全部思考过程,包括那些“差点没想清楚”的瞬间。希望对正在做毕设、接外包、或者创业的同学有所启发。


关键词:推拿店ERP、SaaS系统、需求分析、多端架构、AI辅助开发、工资计算引擎、硬件对接

http://www.jsqmd.com/news/706950/

相关文章:

  • Qianfan-OCR快速部署:VS Code DevContainer一键开发环境配置指南
  • MusePublic后期增强链路:AI生成+Photoshop精修协同工作流
  • 新手也能搞定的F1C200S核心板焊接与调试全记录(附PCB文件)
  • 从安卓电视识图到微信禁区:一个智能家居Agent开发者的踩坑实录
  • AI爬虫合规指南:从robots.txt到ai.robots.txt的演进与实践
  • 2026年防火门国家新规解读:GB 12955‑2024五大核心变化与实施要点
  • XGBoost决策树数量与深度调优实战指南
  • 伏羲模型与Dify结合:构建零代码气象分析与预报工作流
  • 2026正规远距离接近开关:防爆双向拉绳开关、两级跑偏开关、双向拉线开关、手动复位双向拉绳开关、深海水下接近开关选择指南 - 优质品牌商家
  • Rust开发者的AI编程助手:cursor-rust-tools实现精准代码上下文感知
  • 基于深度学习yolo11的无人机visdrone数据集图识别 无人机国道图像巡检 图像数据集
  • 深度学习中批归一化技术的原理与实践
  • 北京甲状腺专家怎么选?揭秘京城内调理高手
  • Heygem数字人视频生成系统深度体验:批量处理功能太实用了
  • 基于深度学习的yolo11地下管道缺陷检测 地下排水管道缺陷检测 管道裂缝识别 智慧城市管网巡检(数据集+界面+模型)
  • 基于Workbuddy的双Agent闭环校验实践:解决AI技能装载中的信息遗漏问题
  • 终极指南:如何用网盘直链下载助手快速突破八大网盘下载限制
  • 成都地区、H型钢、900X300X16X28、Q235B、安泰、现货批发供应 - 四川盛世钢联营销中心
  • 给你的Unity游戏穿上“外衣”:Inno Setup制作专业安装包进阶指南(含图标、许可协议设置)
  • AIGC求职实战指南:从Transformer到扩散模型,系统构建面试知识体系
  • 2026环保装备数字孪生供应商选型评估
  • 通达信DLL函数避坑指南:为什么你的自定义指标加载失败?常见错误排查与修复
  • 2026年Q2辽宁婚姻家庭律师选型的核心参考维度:辽宁金融纠纷律师/辽宁交通事故律师/辽宁仲裁执行律师/辽宁企业法律顾问律师/选择指南 - 优质品牌商家
  • B站视频下载终极指南:免费获取大会员4K视频的完整教程
  • redis学习大纲
  • Phi-3.5-mini-instruct保姆级教学:无需conda环境,纯镜像开箱即用部署流程
  • Omni-Vision Sanctuary 在 Proteus 仿真中的创新应用:为电路设计生成实物效果图
  • 从逻辑回归到神经网络:为什么你的模型优化起来这么‘费劲’?聊聊凸与非凸的本质区别
  • 网络流量监测系统:为什么监控能看到异常,却还是很难定位根因?
  • 2026年3月评价高的烧烤店品牌推荐,烧烤/烧烤店/烧烤店加盟/烧烤加盟/烧烤开店/加盟烧烤店,烧烤店品牌推荐 - 品牌推荐师