后端 (Laravel 10 + Sanctum): - RBAC 四层权限系统 (users→roles→permissions→menus) - 门店隔离中间件 (BelongsToStore Trait + StoreIsolation Middleware) - 操作日志中间件 (自动记录写操作) - 权限检查中间件 (CheckPermission) - 16张数据库表迁移 (系统基础+RBAC+字典+配置) - 11个 Eloquent Model - Auth API (登录/登出/用户信息) - 系统设置模块 CRUD (门店/部门/职务/用户/角色/菜单/权限/字典/日志) - 45条 RESTful API 路由 - InitSeeder 初始数据 (超管/角色/76权限/31菜单) 前端 (Vue 3 + Element Plus + Vite): - Axios 请求封装 + Token 注入 - Pinia 状态管理 (user + permission store) - 动态路由 (服务端菜单→前端路由自动生成) - 后台布局 (侧边栏+顶栏+主内容区) - 登录页 + 仪表盘首页 - 系统设置 7 个 CRUD 页面 技术方案文档 (7卷): - 技术总览/数据库设计/API规范/RBAC设计/模块详设/小程序设计/部署方案
15 KiB
15 KiB
宫中有喜 — 模块详细设计
一、模块总览
| 编号 | 模块 | 核心实体 | 关键流程 |
|---|---|---|---|
| 5.1 | CRM | 线索、客户、合同 | 线索→跟进→签约→入住 |
| 5.2 | 房务 | 房间、预定、入住 | 预定→入住→在住→离店 |
| 5.3 | 护理 | 档案、计划、记录 | 建档→制定计划→执行→异常处理 |
| 5.4 | 月子餐 | 菜品、排餐、送餐 | 排餐→备餐→送餐→反馈 |
| 5.5 | 服务产康 | 项目、套餐、订单 | 预约→排班→服务→评价 |
| 5.6 | 月嫂 | 月嫂、订单、评价 | 选嫂→派嫂→服务→评价 |
| 5.7 | 进销存 | 物资、库存、采购 | 采购→入库→领用→盘点 |
| 5.8 | 财务 | 账户、收支、发票 | 收款→记账→对账→报表 |
| 5.9 | 人事薪资 | 员工、排班、工资 | 入职→排班→考勤→算薪 |
| 5.10 | 办公协同 | 审批、公告、交接 | 发起→审批→通知→归档 |
| 5.11 | 统计报表 | 报表、图表 | 采集→聚合→可视化→导出 |
| 5.12 | 知识库 | 文章、分类 | 创建→审核→发布→检索 |
| 5.13 | 系统设置 | 门店、用户、角色 | 配置→分配→生效 |
二、5.1 CRM 客户关系管理
2.1 业务流程
线索来源(微信/电话/转介/活动/小程序)
↓
[线索池] → 自动/手动分配 → [跟进中]
↓ ↓
无效关闭 多次跟进记录
↓
[意向确认] → 签约
↓
[合同] → 审批 → 生效
↓
[客户] → 关联入住/服务
2.2 线索状态机
| 状态 | 值 | 可流转至 |
|---|---|---|
| 新线索 | new | following, invalid |
| 跟进中 | following | intended, invalid |
| 有意向 | intended | contracted, invalid |
| 已签约 | contracted | — |
| 无效 | invalid | new(可回收) |
2.3 核心业务规则
- 线索分配规则:轮询分配 / 按区域分配 / 手动指定
- 线索回收:超过 N 天未跟进自动回收至公海池
- 跟进提醒:距上次跟进 3/7 天自动提醒
- 签约流程:需主管审批 → 财务确认 → 合同生效
- 客户标签:VIP / 重点关注 / 转介绍来源 等自定义标签
- 问卷评分:入住中期 + 离店时各一次满意度问卷
2.4 关键 Service 方法
// LeadService
assignLead(leadId, userId) // 分配线索
recycleLead(leadId) // 回收至公海
convertToCustomer(leadId, data) // 线索转客户+建合同
batchImport(file) // Excel批量导入
// ContractService
createContract(data) // 创建合同
approveContract(contractId, action) // 审批
calculateAmount(items) // 计算合同金额
generatePdf(contractId) // 生成PDF
三、5.2 房务管理
3.1 房态状态机
空闲(available) ←→ 已预定(reserved)
↓ ↓
已入住(occupied) ←── 办理入住
↓
待清洁(cleaning) ← 办理离店
↓
维修中(maintenance)
↓
空闲(available)
3.2 核心业务规则
- 房间编号规则:楼层号 + 序号(如 301、302)
- 房型定价:基础日价 × 天数,支持季节浮动系数
- 预定冲突检测:同一房间日期区间不可重叠
- 入住办理:预定 → 验证身份 → 分配房间 → 入住登记
- 换房规则:在住期间可换房,自动调整账单
- 延住规则:检查目标日期房间是否可用 → 调整账单
- 房态看板:日历视图,支持按周/月切换,颜色区分状态
3.3 关键 Service 方法
// RoomService
checkAvailability(roomId, startDate, endDate) // 检查可用性
getRoomBoard(date, range) // 房态看板数据
// ReservationService
createReservation(data) // 新建预定
cancelReservation(id, reason) // 取消预定
checkIn(reservationId, data) // 办理入住
// CheckInService
changeRoom(checkInId, newRoomId) // 换房
extend(checkInId, newEndDate) // 延住
checkOut(checkInId) // 离店
四、5.3 护理管理
4.1 护理流程
入住 → 建立护理档案(产妇+新生儿)
↓
评估体质/需求 → 制定个性化护理计划
↓
每日执行护理任务(按计划模板)
↓
记录护理项目 + 健康指标
↓
异常登记 → 处理 → 闭环
↓
离店总结 → 护理报告
4.2 护理档案内容
产妇档案:基本信息、分娩信息(日期/方式/胎次)、过敏史、饮食禁忌、体质评估
新生儿档案:出生信息、体重、身长、Apgar 评分、特殊情况
4.3 健康指标追踪
| 对象 | 指标 | 频率 |
|---|---|---|
| 产妇 | 体温、血压、恶露、伤口 | 日/2次 |
| 产妇 | 体重、情绪评估 | 周/1次 |
| 新生儿 | 体温、体重、身长 | 日/1次 |
| 新生儿 | 喂奶量、排便次数、黄疸 | 日/多次 |
4.4 核心业务规则
- 护理计划模板:按阶段(第1周、第2周...)预设任务
- 任务打卡:护理人员执行后打卡确认,支持拍照
- 异常三级:一般(记录即可)/ 注意(通知主管)/ 紧急(立即通知家属+医生)
- 交接班:上一班护理记录自动同步至下一班
4.5 关键 Service 方法
// CareProfileService
createProfile(checkInId) // 入住时自动建档
generateReport(profileId) // 生成护理报告
// CarePlanService
createFromTemplate(profileId, templateId) // 从模板创建计划
activatePlan(planId) // 激活计划
getTasksForDate(profileId, date) // 获取当日任务
// CareRecordService
createRecord(data) // 记录护理项目
recordHealthMetric(data) // 录入健康指标
getMetricChart(profileId, metric, range) // 指标趋势
// CareAlertService
createAlert(data) // 创建异常
resolveAlert(alertId, resolution) // 处理异常
五、5.4 月子餐管理
5.1 排餐流程
菜品库维护 → 餐单模板制定
↓
每日排餐(可从模板复制)
↓
按时段送餐(早/早点/午/午点/晚/晚点)
↓
送达确认 → 客户反馈
5.2 核心业务规则
- 六餐制:早餐、早点心、午餐、午点心、晚餐、晚点心
- 体质匹配:根据产妇体质推荐菜品,标记禁忌
- 过敏预警:菜品含过敏原时自动告警
- 换餐:入住客户可在规定时间前申请换餐
- 评价统计:菜品好评率影响后续推荐
5.3 关键 Service 方法
// MealPlanService
generateDailyPlan(date, templateId) // 生成日排餐
batchGenerate(startDate, endDate, templateId) // 批量生成
customizePlan(planId, customerId, items) // 个性化调整
// MealDeliveryService
createDeliveryTasks(date) // 生成送餐任务
confirmDelivery(deliveryId) // 确认送达
recordFeedback(deliveryId, data) // 记录反馈
六、5.5 服务与产康
6.1 业务流程
服务项目配置(产后瑜伽/盆底修复/催乳/满月汗蒸...)
↓
套餐组合(单项/套餐/卡次)
↓
客户预约 → 技师排班匹配
↓
服务执行 → 服务记录
↓
客户评价
6.2 核心业务规则
- 服务分类:产康项目 / 母婴护理 / 增值服务
- 计费模式:单次 / 套餐 / 次卡 / 月卡
- 排班冲突:同一技师同时段不可安排两个服务
- 服务时长:每个项目有标准时长,影响排班
- 次卡消费:每次服务自动扣减次数
七、5.6 月嫂管理
7.1 业务流程
月嫂入驻 → 建档(证书/经验/等级/日薪)
↓
客户选嫂(列表展示/筛选)
↓
下单 → 会所审核 → 确认指派
↓
月嫂上户 → 服务期间
↓
服务结束 → 客户评价 → 更新档案评分
7.2 月嫂等级
| 等级 | 条件 | 日薪参考 |
|---|---|---|
| 初级 | 持证 + <1年经验 | 300-500 |
| 中级 | 持证 + 1-3年 | 500-800 |
| 高级 | 持证 + 3-5年 + 好评率>90% | 800-1200 |
| 金牌 | 持证 + >5年 + 好评率>95% | 1200+ |
7.3 核心业务规则
- 月嫂状态:待岗 / 服务中 / 休息 / 离职
- 排班冲突:同一月嫂同时段只能服务一个客户
- 会所抽佣:订单金额 × 佣金比例
- 评价影响:综合评分影响等级和排序
八、5.7 进销存
8.1 业务流程
物资分类维护 → 供应商管理
↓
采购申请 → 审批 → 采购执行
↓
到货验收 → 入库
↓
领用申请 → 出库
↓
定期盘点 → 差异处理
↓
库存预警 → 自动触发采购
8.2 核心业务规则
- 库存预警:低于安全库存自动提醒
- 先进先出:按批次管理,临期品优先出库
- 采购审批:金额 > N 元需主管审批
- 出库关联:与护理/月子餐模块联动(如消耗护理用品)
- 盘点:支持全盘、抽盘,生成盘盈亏报表
九、5.8 财务管理
9.1 业务流程
收入类:签约收款 / 服务消费 / 充值 / 月嫂佣金
↓
支出类:采购付款 / 工资 / 运营费用
↓
记账 → 审核 → 入账
↓
日/月结算 → 报表
↓
发票管理
9.2 客户账户体系
客户账户
├── 现金余额(充值/退款)
├── 储值卡余额(卡种 × N)
├── 积分
└── 消费明细流水
9.3 核心业务规则
- 收支分类:预设分类树(一级→二级→三级)
- 审核流程:金额 > N 元需财务主管审核
- 客户充值:支持微信支付 / 线下转账
- 储值卡:预设面额、折扣率、有效期
- 退款:原路退回 / 退回余额,需审批
- 发票:电子发票 / 纸质发票,关联订单
十、5.9 人事薪资
10.1 业务流程
员工入职 → 建档 → 分配角色/部门
↓
排班管理(固定班/轮班)
↓
每日考勤(打卡/补卡/请假)
↓
月度汇总 → 工资计算
↓
工资确认 → 发放
10.2 工资计算公式
实发 = 基本工资 + 岗位工资 + 绩效
+ 加班费 + 补贴
- 社保 - 公积金 - 个税
- 缺勤扣款 - 其他扣款
10.3 核心业务规则
- 排班类型:早班/中班/晚班/夜班,支持跨天
- 考勤规则:迟到(≤30min) / 早退 / 旷工 / 加班
- 请假类型:年假/事假/病假/调休/产假/婚假
- 加班费:工作日1.5倍 / 周末2倍 / 节假日3倍
- 绩效:月度考核分数 × 绩效基数
十一、5.10 办公协同
11.1 审批引擎
审批模板定义(表单字段 + 流程节点)
↓
发起审批(填写表单)
↓
按流程流转(串行/并行/条件分支)
↓
审批人 通过/驳回
↓
结果通知 + 归档
11.2 审批流程类型
| 流程 | 触发 | 审批链 |
|---|---|---|
| 请假申请 | 人事模块 | 主管→人事 |
| 采购申请 | 进销存模块 | 部门主管→财务 |
| 合同审批 | CRM模块 | 销售主管→总经理 |
| 退款申请 | 财务模块 | 客服→财务→总经理 |
| 换房申请 | 房务模块 | 客服→房务主管 |
11.3 核心功能
- 公告管理:发布、置顶、已读统计
- 交接班:上一班记录 → 下一班确认,确保信息连续
- 消息通知:站内消息 + 微信模板消息推送
- 待办汇总:首页展示所有待处理事项
十二、5.11 统计报表
12.1 预设报表
| 报表 | 维度 | 指标 |
|---|---|---|
| 经营概览 | 门店/日期 | 营收、入住率、客户数、满意度 |
| 营收分析 | 门店/月/类别 | 签约额、实收额、退款额、应收 |
| 入住统计 | 门店/月/房型 | 入住率、平均入住天数、房型分布 |
| CRM转化 | 来源/月/员工 | 线索数、转化率、签约率 |
| 护理质量 | 门店/月 | 异常率、满意度、任务完成率 |
| 餐品评价 | 菜品/月 | 好评率、投诉率 |
| 库存报表 | 仓库/月 | 采购额、消耗额、盘亏率 |
| 人力成本 | 部门/月 | 人工成本、人效比 |
12.2 核心功能
- 数据钻取:点击指标可下钻到明细
- 对比分析:同环比、多门店对比
- 导出功能:Excel / PDF
- 自定义报表:拖拽选择维度和指标
- 数据权限:按门店/部门过滤
十三、5.12 知识库
13.1 功能设计
- 分类管理:树形分类(如:产妇护理/新生儿护理/营养学/政策法规)
- 文章管理:富文本编辑器,支持图片/视频/附件
- 发布流程:草稿→审核→发布
- 全文检索:标题+内容全文搜索
- 权限控制:内部文章(员工可见)/ 公开文章(小程序可见)
- 阅读统计:浏览量、点赞量、收藏量
- 版本管理:文章修改历史
十四、5.13 系统设置
14.1 功能清单
| 功能 | 说明 |
|---|---|
| 门店管理 | 新建/编辑/启停门店 |
| 组织架构 | 区域 → 门店 → 部门 → 职务 |
| 用户管理 | 员工账号创建、角色分配 |
| 角色管理 | 角色定义、权限分配 |
| 菜单管理 | 动态菜单配置 |
| 字典管理 | 通用数据字典(下拉选项等) |
| 系统参数 | 全局配置项(如回收天数、审批金额阈值) |
| 操作日志 | 全局操作审计 |
14.2 多门店体系
总部(超级管理员)
├── 区域A
│ ├── 门店1(独立数据)
│ └── 门店2(独立数据)
└── 区域B
└── 门店3(独立数据)
- 总部可查看所有门店数据
- 门店只能看到本店数据
- 部分配置(如字典、模板)可总部统一下发
十五、跨模块联动
| 触发 | 联动模块 | 动作 |
|---|---|---|
| CRM签约 | 房务 | 自动创建预定 |
| 房务入住 | 护理 | 自动建立护理档案 |
| 房务入住 | 月子餐 | 自动生成排餐任务 |
| 护理异常(紧急) | 办公协同 | 推送通知 |
| 服务消费 | 财务 | 自动生成收支记录 |
| 月嫂订单 | 财务 | 佣金记录 |
| 采购入库 | 财务 | 付款记录 |
| 请假审批通过 | 人事 | 更新考勤 |
| 各模块 | 统计报表 | 数据采集 |
联动实现方式
使用 Laravel Event/Listener 解耦:
// 事件定义
ContractSigned::class → CreateReservationListener
CheckedIn::class → CreateCareProfileListener
→ GenerateMealPlanListener
CareAlertCreated::class → NotifyStaffListener
ServiceCompleted::class → CreateFinanceRecordListener
PurchaseReceived::class → CreateFinanceRecordListener
LeaveApproved::class → UpdateAttendanceListener
十六、通用功能
16.1 导入导出
- 导入:Excel 上传 → 校验 → 预览 → 确认导入
- 导出:异步队列生成 → 下载链接(大数据量)
- 模板下载:每个可导入功能提供 Excel 模板
16.2 操作日志
// 自动记录
[时间] [用户] [模块] [操作] [对象] [变更内容]
// 示例
2024-03-15 10:30 张护士 护理模块 新建 护理记录#1001 { ... }
16.3 消息通知
| 渠道 | 场景 |
|---|---|
| 站内消息 | 审批、任务提醒、异常告警 |
| 微信模板消息 | 客户:入住通知、餐单推送、服务提醒 |
| 短信 | 重要通知备选渠道 |