mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-26 21:26:39 +08:00
18 KiB
18 KiB
云宿居 PMS 系统 - 核心功能需求 (PMS内部聚焦)
1. 引言
1.1 文档目的与范围
本文档定义了"云宿居"民宿 Property Management System (PMS) 的核心功能需求,重点聚焦于PMS租户核心业务子系统(以下简称PMS核心模块)的内部功能。它旨在明确该子系统的核心功能范围和关键业务流程。
本文档是PMS核心模块后续详细设计和开发工作的基础。
1.2 目标读者
产品经理、架构师、开发工程师、测试工程师。
1.4 术语表
术语 | 全称 | 描述 |
---|---|---|
PMS | Property Management System | 民宿/酒店属性管理系统,管理房间、预订、联系人、账务等核心业务 |
Folio | Folio | 客户账单,用于记录联系人在店期间所有费用和付款的详细清单 |
Tenant | Tenant | 租户,指使用本SaaS化PMS系统的单个民宿运营方 |
Dept | Department | 部门,在本系统中表示租户下的门店/分店 |
Contact | Contact | 联系人,指系统中统一管理的客户信息,包括预订人、实际入住人等 |
1.5 优先级定义
- [P0]: MVP 阶段必须实现的核心功能。
- [P1]: 重要功能,MVP 后第一个主要版本包含。
- [P2]: 次要或完善性功能,后续迭代实现。
- [P3]: 未来规划或可选功能。
2. 核心设计原则 (适用于PMS内部)
- 核心稳固: 保持PMS核心功能(房态、订单、账务、联系人)的极简和稳定。
- 数据为基: 确保PMS核心数据结构设计合理,易于内部功能扩展。
- 安全隐私: PMS内部数据处理需考虑数据安全和隐私保护。
- 门店为中心: 所有业务数据以门店(部门)为归属单位,支持一个租户下多个门店的业务模型。
3. 系统架构概览 (PMS视角)
PMS租户核心业务子系统是整个云宿居平台的核心,负责处理民宿日常运营的核心业务流程。
flowchart TD
subgraph PMSCore["PMS核心业务子系统"]
PMS["PMS租户<br>核心业务子系统"]:::coreSystem
end
subgraph ExternalSystems["外部关联系统"]
SaaSPlat[SaaS平台管理]:::system
WCDSMM[商城与商品管理]:::system
end
PMSAdmin[PMS核心后台]:::app
OwnerApp[民宿管理小程序]:::app
UserB([民宿主/前台]):::user
SaaSPlat -- "租户配置" --> PMS
WCDSMM -- "预订数据" --> PMS
PMS -- "房态/价格" --> WCDSMM
PMSAdmin --> PMS
OwnerApp --> PMS
UserB -.-> PMSAdmin
UserB -.-> OwnerApp
classDef system fill:#f0f8ff,stroke:#1890ff,stroke-width:1px
classDef coreSystem fill:#f6ffed,stroke:#52c41a,stroke-width:3px,color:#135200,font-weight:bold
classDef app fill:#d9f7be,stroke:#52c41a,stroke-width:1px
classDef user fill:#fff7e6,stroke:#fa8c16,stroke-width:1px,shape:person
4. PMS租户核心业务子系统 (PMSTenantCoreSubsystem)
目标: 为民宿租户提供稳定、高效的核心运营管理能力。 主要用户: 民宿主/管理员、前台员工。
4.2.1 房态管理 [P0]
- 功能:
- 网格日历视图: 直观展示房间占用情况(已预订、已入住、清洁中、维护锁定)。
- 今日状态列表: 按预抵、在住、预离分类展示当日订单/房间。
- 清洁状态管理: 手动标记房间清洁状态 (待清洁/清洁中/已干净)。
- 快捷操作: 在房态图上可快速创建预订、登记入住/退房、标记房间清洁状态、设置房间临时锁定/解锁。支持拖动修改预订的入住日期或房间。
- 关键数据:
pms_room_types
(room_type_id:BIGINT:pk, dept_id:BIGINT, name:VARCHAR(255), default_price:DECIMAL(10,2), capacity:INT, amenities:JSON, description:TEXT, images_json:JSON, status:VARCHAR(50))pms_room_rooms
(room_id:BIGINT:pk, dept_id:BIGINT, room_type_id:BIGINT, room_number:VARCHAR(50), floor:VARCHAR(50), room_status:VARCHAR(50), cleaning_status:VARCHAR(50), description:TEXT, status:VARCHAR(50))pms_room_locks
(lock_id:BIGINT:pk, dept_id:BIGINT, room_id:BIGINT, start_datetime:DATETIME, end_datetime:DATETIME, reason:TEXT, lock_type:VARCHAR(50))
4.2.2 订单管理 [P0, P1, P2]
- 目标: 高效、准确地管理所有来源的预订订单。
- [P0] 核心订单生命周期管理:
- 功能: 手动创建订单、接收外部系统订单、订单详情查看与编辑、核心状态管理(待确认、已确认、已入住、已退房、已取消、未入住)、关联联系人与房间、生成账单基础、房态联动。
- 库存策略:
pending_confirmation
状态不锁硬库存。confirmed
状态锁定库存。 - 关键数据:
pms_core_orders
(order_id:BIGINT:pk, dept_id:BIGINT, contact_id:BIGINT, primary_contact_name:VARCHAR(100), primary_contact_phone:VARCHAR(50), pms_room_id:BIGINT, room_type_id:BIGINT, channel_id:BIGINT, check_in_date:DATE, check_out_date:DATE, num_adults:INT, num_children:INT, estimated_arrival_time:TIME, total_amount:DECIMAL(10,2), paid_amount:DECIMAL(10,2), due_amount:DECIMAL(10,2), currency:VARCHAR(3), order_status:VARCHAR(50), order_source:VARCHAR(50), notes:TEXT, cancelled_at:DATETIME, cancellation_reason:TEXT)pms_core_order_items
(order_item_id:BIGINT:pk, order_id:BIGINT, dept_id:BIGINT, pms_room_id:BIGINT, product_id:BIGINT, product_type:VARCHAR(50), description:VARCHAR(255), quantity:INT, unit_price:DECIMAL(10,2), total_price:DECIMAL(10,2), service_date:DATE, notes:TEXT)pms_core_channels
(channel_id:BIGINT:pk, dept_id:BIGINT, name:VARCHAR(100), channel_type:VARCHAR(50), description:TEXT, status:VARCHAR(50))
- 状态流转图:
stateDiagram-v2 [*] --> pending_confirmation: 创建订单 pending_confirmation --> confirmed: 确认订单 pending_confirmation --> cancelled: 取消订单 confirmed --> checked_in: 办理入住 confirmed --> cancelled: 取消订单 confirmed --> no_show: 未按时入住 checked_in --> checked_out: 办理退房 checked_in --> extended: 延长入住 extended --> checked_out: 办理退房 checked_out --> [*] : 订单完成 cancelled --> [*] : 订单取消 no_show --> [*] : 订单标记为No Show
- [P1] 增强功能: 订单修改(日期、房型等)、款项管理(预付款、押金)、取消与退款细则、基础支付记录(如手动录入)、自动化通知(预订成功、入住提醒)、订单备注与标签。
- [P2] 实用订单工具: 简版团体预订、等候名单、订单报表、发票管理。
4.2.3 财务与支付 (Folio Management) [P0]
- 功能: 账单管理(Folio)、交易流水、附加消费管理、收款方式与记录、退款处理、账单生成与查询。
- 关键数据:
pms_finance_folios
(folio_id:BIGINT:pk, dept_id:BIGINT, order_id:BIGINT, total_charges:DECIMAL(10,2), total_payments:DECIMAL(10,2), total_refunds:DECIMAL(10,2), balance:DECIMAL(10,2), folio_status:VARCHAR(50), notes:TEXT, closed_at:DATETIME)pms_finance_transactions
(transaction_id:BIGINT:pk, folio_id:BIGINT, dept_id:BIGINT, transaction_type:VARCHAR(50), amount:DECIMAL(10,2), description:VARCHAR(255), payment_method_id:BIGINT, payment_gateway_txn_id:VARCHAR(255), transaction_time:DATETIME, related_order_item_id:BIGINT, notes:TEXT, is_void:BOOLEAN, voided_at:DATETIME, voided_reason:TEXT)pms_finance_payment_methods
(payment_method_id:BIGINT:pk, dept_id:BIGINT, name:VARCHAR(100), method_type:VARCHAR(50), details_json:JSON, status:VARCHAR(50))pms_finance_extra_charge_items
(item_id:BIGINT:pk, dept_id:BIGINT, name:VARCHAR(255), default_price:DECIMAL(10,2), category:VARCHAR(100), is_taxable:BOOLEAN, description:TEXT, status:VARCHAR(50))
4.2.4 联系人与会员管理 [P1] (P0阶段依赖cmn_contacts
部分字段)
- 功能 (P0涉及): 订单关联联系人时,使用/创建
cmn_contacts
记录。 - 关键数据 (P0使用部分):
cmn_contacts
(contact_id:BIGINT:pk, dept_id:BIGINT, contact_type:VARCHAR(50), full_name:VARCHAR(255), phone_number:VARCHAR(50), email:VARCHAR(255), id_type:VARCHAR(50), id_number_encrypted:VARCHAR(255), gender:VARCHAR(20), contact_status:VARCHAR(50))
- [P1] 功能: 统一联系人档案、证件管理、联系人标签[P2]、联系人偏好[P2]、会员信息管理。
4.2.5 会员营销 (储值、等级、权益) [P2]
- 功能: 储值管理、会员等级定义与升级、会员权益定义与关联。
4.2.6 租户级系统管理 [P0]
- 功能:
- 员工管理: 租户管理员管理内部员工账号。
- 角色与权限: 租户管理员定义内部角色 [MVP: 预设固定角色]。
- 基础设置: 民宿信息、Logo等;房型管理;房间管理;基础定价策略 (
pms_room_types.default_price
,pms_room_pricing_rules
表);支付方式管理 (pms_finance_payment_methods
);附加消费项目 (pms_finance_extra_charge_items
)。 - 门店管理: 在一个租户下管理多个门店,每个门店对应一个sys_dept记录。
- 租户特定配置: 管理租户全局及各门店特定的配置。
- 关键数据:
pms_tenant_settings
(setting_id:BIGINT:pk, tenant_id:VARCHAR(20), dept_id:BIGINT, setting_group:VARCHAR(100), setting_key:VARCHAR(100), setting_value:TEXT, value_type:VARCHAR(50), description:TEXT, is_sensitive:BOOLEAN)- 特殊说明: 保留tenant_id字段,当dept_id为NULL时表示租户全局配置,当dept_id有值时表示特定门店配置。主要存储PMS业务相关的配置项。
pms_mp_settings
(setting_id:BIGINT:pk, tenant_id:VARCHAR(20), dept_id:BIGINT, setting_key:VARCHAR(100), setting_value:TEXT, value_type:VARCHAR(50), description:TEXT)- 特殊说明: 保留tenant_id字段,当dept_id为NULL时表示租户级小程序配置,当dept_id有值时表示特定门店的小程序配置。主要存储民宿管理小程序的界面和功能配置。
pms_tenant_user_devices
(id:BIGINT:pk, user_id:BIGINT, device_type:VARCHAR(50), device_token:VARCHAR(512), app_version:VARCHAR(50), last_login_at:DATETIME, status:VARCHAR(50))pms_room_pricing_rules
(rule_id:BIGINT:pk, dept_id:BIGINT, name:VARCHAR(255), room_type_id:BIGINT, date_range_start:DATE, date_range_end:DATE, days_of_week_json:JSON, min_length_of_stay:INT, max_length_of_stay:INT, price_adjustment_type:VARCHAR(50), adjustment_value:DECIMAL(10,2), priority:INT, status:VARCHAR(50))
4.2.6.1 员工管理
- 功能: 民宿租户管理员管理本民宿的员工账号、分配角色。用户登录后,若关联多个租户或部门,提供切换租户和部门(门店)功能。
4.2.7 简易报表与分析 [P1]
- 功能: 核心运营报表 (总营收、入住率、ADR、RevPAR)、渠道来源分析、会员统计、消费分析。
- 特点: 支持门店级和租户级统计分析。
4.2.8 民宿管理小程序 (Owner We App) [P0]
- 技术: 前端使用 Uni-App
- 功能: 房态查看、订单提醒、日程查看(今日预抵/预离)、状态处理 (简单入住/退房操作)、数据概览(核心收支数据)。
- 特点: 支持门店切换功能。
4.2.9 PMS核心管理后台 [P0]
- 描述: 提供独立的Web管理后台界面,完成所有PMS核心业务操作。
5. 关键业务场景模型图 (PMS内部)
5.1 订单状态图 - 房间预订生命周期
stateDiagram-v2
[*] --> 待确认: 用户创建预订
待确认 --> 已确认: 预付款成功/人工确认
待确认 --> 已取消: 超时未确认/用户取消
已确认 --> 已取消: 申请取消并退款
已确认 --> 已入住: 办理入住手续
已入住 --> 已退房: 办理退房手续
已退房 --> 已完成: 完成结算
已取消 --> [*]
已完成 --> [*]
5.2 PMS核心业务状态图
stateDiagram-v2
state 房间状态 {
[*] --> 空闲
空闲 --> 已预订: 创建预订
空闲 --> 维护中: 设置维护
已预订 --> 已入住: 办理入住
已预订 --> 空闲: 取消预订
已入住 --> 待清洁: 办理退房
待清洁 --> 清洁中: 开始清洁
清洁中 --> 空闲: 完成清洁
维护中 --> 空闲: 完成维护
}
state 财务状态 {
[*] --> 未结账
未结账 --> 部分支付: 收取定金/押金
部分支付 --> 部分支付: 增加消费
部分支付 --> 已结清: 支付尾款
部分支付 --> 退款中: 申请退款
退款中 --> 已退款: 确认退款
已结清 --> [*]
已退款 --> [*]
}
5.3 PMS租户核心业务子系统组件图
flowchart TD
subgraph PMS["PMS租户核心业务子系统"]
direction TB
APILayer["API层 (内部)"]:::internal --> |请求分发| BusinessModules
subgraph BusinessModules["核心业务模块"]
direction TB
Room["房态管理"]:::internal
Booking["订单管理"]:::internal
Finance["财务与支付"]:::internal
Guest["联系人与会员 (P1核心)"]:::internal
Settings["系统管理 (含门店管理)"]:::internal
Reports["报表分析 (P1+)"]:::internal
Room <--> Booking
Booking <--> Finance
Booking --> Guest
end
end
subgraph AccessLayer["应用访问层 (PMS用户)"]
direction LR
MiniApp["民宿管理小程序"]:::external
WebAdmin["PMS Web管理后台"]:::external
end
AccessLayer --> APILayer
classDef internal fill:#f0f8ff,stroke:#1890ff,stroke-width:1px
classDef external fill:#f5f5f5,stroke:#d9d9d9,stroke-width:1px
6. 系统角色与权限概述 (PMS相关用户)
- 民宿租户管理员 (Tenant Admin):
- 用户实体: 关联到
sys_user
表。 - 关联: 通过
sys_user_role
表关联到租户及相关角色。 - 操作平台: PMS核心后台 (Web), 民宿管理小程序 (Uni-App)。
- 核心职责: 管理其名下一个或多个民宿门店的完整运营,包括房型房间、订单、财务、员工、租户级系统设置等。
- 用户实体: 关联到
- 门店管理员 (Store Manager):
- 用户实体: 关联到
sys_user
表。 - 关联: 通过
sys_user_role
表和sys_dept
表关联到特定门店与角色。 - 操作平台: PMS核心后台 (Web), 民宿管理小程序 (Uni-App)。
- 核心职责: 管理特定门店的日常运营。
- 用户实体: 关联到
- 民宿前台/员工 (Tenant Staff):
- 用户实体: 关联到
sys_user
表。 - 关联: 通过
sys_user_role
表和sys_dept
表关联到门店及相关角色。 - 操作平台: PMS核心后台 (Web), 民宿管理小程序 (Uni-App)。
- 核心职责: 根据分配的权限执行日常操作,如订单处理、房态更新、联系人入住退房、账务录入等。
- 用户实体: 关联到
7. 实施策略与演进路径 (PMS P0重点)
7.1 MVP阶段 (PMS核心功能)
- 房态管理: 基础房型、房间定义和日历视图。
- 订单管理: 手动录单、接收外部订单(简化接口)、入住、退房基本流程。
- 财务与支付: 基础账单 (Folio)、交易流水、手动收款/支付记录。
- 租户级系统管理: 员工账号、门店管理、基础设置(房型、房间、基础价格、支付方式、附加消费项目)。
- 民宿管理小程序: 房态查看和简单操作(入住/退房)。
8. 版本历史
- v2.8 (原始文档版本) - 本文档基于此裁剪和聚焦。
- v3.0 (最新版本) - 修改为"部门作为门店"的数据模型,业务表只关联sys_dept。
附录 (PMS内部核心实体)
附录A 概念性 E-R 图 (PMS核心)
graph LR
sys_tenant(sys_tenant) -->|1..N| sys_dept(Department)
sys_dept -->|1..N| pms_core_orders(Order)
sys_dept -->|1..N| pms_room_rooms(Room)
sys_dept -->|1..N| sys_user(User)
sys_dept -->|1..N| pms_tenant_settings(Settings)
pms_core_orders -->|0..1| cmn_contacts(Contact)
pms_core_orders -->|1..N| pms_core_order_items(OrderItem)
pms_core_orders -->|1..1| pms_finance_folios(Folio)
pms_room_rooms -->|1..1| pms_room_types(RoomType)
pms_finance_folios -->|1..N| pms_finance_transactions(Transaction)
附录B 实体关系图 (PMS核心及关联)
graph LR
sys_tenant("sys_tenant") -->|1..N| sys_dept("sys_dept (门店)")
sys_dept -->|1..N| pms_core_orders
sys_dept -->|1..N| pms_room_rooms
sys_dept -->|1..N| sys_user
sys_user -->|1..N| pms_tenant_user_devices
sys_user -->|1..N| sys_user_role
sys_dept -->|1..N| pms_tenant_settings
sys_dept -->|1..N| pms_mp_settings
sys_dept -->|1..N| cmn_contacts
sys_dept -->|1..N| pms_room_types
pms_core_orders -->|0..1| cmn_contacts
pms_core_orders -->|1..N| pms_core_order_items
pms_core_orders -->|1..1| pms_finance_folios
pms_room_rooms -->|1..1| pms_room_types
pms_room_types -->|1..N| pms_room_pricing_rules
pms_core_order_items -->|0..1| pms_finance_extra_charge_items
pms_core_order_items -->|0..1| pms_room_rooms
pms_finance_folios -->|1..N| pms_finance_transactions
pms_finance_transactions -->|0..1| pms_finance_payment_methods