# 我的预约（机构）— 功能需求

## 1. 文档说明

| 项 | 说明 |
| --- | --- |
| 模块名称 | 我的预约（机构）（牧业疫病诊疗服务） |
| 目标 | 为**已绑定诊疗机构身份**的登录用户提供「面向本机构的预约」**查询与只读查看**能力：按条件筛选预约单、查看详情，掌握牧民通过移动端提交的机构预约动态 |
| 使用端 | 业务后台（若依管理端）；登录用户须为「畜牧医疗资源管理」中为该机构**已分配账号**的机构端角色用户 |
| 修订依据 | 同目录 `我的预约(机构)功能需求-草稿.md`、界面原型（`Snipaste_2026-05-20_16-08-54.jpg`、`Snipaste_2026-05-20_16-27-24.jpg`）；并关联分析 **我的预约（兽医）**、**我的预约（专家）** 草稿与原型 |

本文档**仅描述功能需求与业务规则**，不涉及数据库表结构、接口路径、请求体字段命名、HTTP 报文、权限标识命名及技术栈选型。

---

## 2. 术语与业务对象

### 2.1 机构预约单（一条记录）

- 表示牧民/用户在**移动端「预约服务」**中选择某家**已发布诊疗机构**并提交的一条预约申请。  
- 预约单在业务上**归属该机构**（与当前登录账号所绑定的机构资源一一对应）；本模块**仅展示属于当前登录机构**的单据，**不提供**接单、改期、代取消等写操作。  
- 一条预约单在机构侧可见的核心信息包括：预约人、预约日期、预约时段、联系电话、服务地址、服务需求、状态等。

### 2.2 当前登录人（机构服务提供方视角）

- 指通过「畜牧医疗资源管理」**分配账号**（机构端角色，草稿约定角色编号 **102**）登录后台的**机构经办人**（代表该诊疗机构）。  
- 列表与详情的数据范围：**自动限定为当前账号绑定的机构资源下的预约记录**；不得查看其他机构的预约。

### 2.3 预约人（需求方）

- 在移动端填写预约信息的用户（姓名、电话、地址、需求等）；本模块**只读展示**，不在此维护预约人档案。

### 2.4 登记制与接单制的区别（本模块定位）

| 模式 | 含义 | 本模块 |
| --- | --- | --- |
| **登记制** | 用户提交后预约即生效为「已预约」，机构后台**仅查阅**状态变化 | **是** |
| **接单制** | 用户提交后进入「待确认」，服务方须确认或拒绝 | **否**（见兽医、专家模块） |

机构侧不承担「是否接诊」的审批职责；预约能否成立，在**用户提交成功时**已由移动端与资源规则判定（如机构已发布、时段可约等）。

---

## 3. 关联需求分析（机构 / 兽医 / 专家）

三模块同属「**我的预约**」产品族：均为**服务提供方**在后台查看「指向自己的预约」。差异来自**预约对象类型**、**提交后初始状态**及**后台是否需接单处置**。

### 3.1 三端定位对照

| 维度 | 我的预约（机构） | 我的预约（兽医） | 我的预约（专家） |
| --- | --- | --- | --- |
| 所属业务 | 牧业疫病诊疗服务 | 牧业疫病诊疗服务 | 牧业养殖科技服务 |
| 预约对象 | **诊疗机构**（移动端「预约服务-诊疗机构」） | **兽医人员**（「预约服务-兽医」） | **科技专家**（「预约服务-专家」） |
| 账号来源 | 医疗资源管理-机构**分配账号** | 医疗资源管理-兽医**分配账号** | 科技资源管理-专家**分配账号** |
| 移动端提交后 | 进入 **已预约**（无待确认） | 进入 **待确认**，待兽医处置 | 进入 **待确认**，待专家处置 |
| 后台处置 | **完成接诊**（已预约→已完成） | **确认/拒绝/完成接诊** | **确认/拒绝/完成接诊** |
| 拒绝理由 | 无（机构侧无拒绝流程） | 拒绝时必填（≤100 字） | 拒绝时必填（≤100 字） |
| 服务评价 | **无** | 本期不做「查看评价」 | **已完成**可「查看评价」 |

### 3.2 状态模型对照

```mermaid
flowchart LR
    subgraph 机构["机构（登记制·本文档）"]
        A2[已预约] -->|用户取消| D2[已取消]
        A2 -->|服务完成| E2[已完成]
    end
    subgraph 兽医与专家["兽医 / 专家（接单制）"]
        A1[待确认] -->|确认接诊| B1[已确认]
        A1 -->|拒绝接诊| C1[已拒绝]
        A1 -->|用户取消| D1[已取消]
        B1 -->|服务完成| E1[已完成]
        B1 -->|用户取消| D1
    end
```

| 状态 | 机构本模块 | 兽医模块 | 专家模块 | 说明 |
| --- | --- | --- | --- | --- |
| **已预约** | ✓ | — | — | 机构预约提交后即为此态；机构侧**初始态** |
| **待确认** | — | ✓ | ✓ | 仅接单制；机构列表**不出现** |
| **已确认** | — | ✓ | ✓ | 服务方已确认；机构侧**不出现** |
| **已拒绝** | — | ✓ | ✓ | 服务方拒绝；机构侧**不出现** |
| **已取消** | ✓ | ✓ | ✓ | 用户取消（规则允许时） |
| **已完成** | ✓ | ✓ | ✓ | 服务已结束 |

> **本期约定（机构）：** 状态共 **三种**：已预约、已取消、已完成。**不出现**待确认、已确认、已拒绝，避免与兽医/专家语义混淆。

### 3.3 与兽医模块的差异（本期范围）

| 能力 | 机构（本文档） | 兽医（关联文档） |
| --- | --- | --- |
| 业务定位 | **登记查看型** | **接单处置型** |
| 列表字段 | **精简**：预约人、预约日期、联系电话、状态 | **完整**：含时段、地址、需求、拒绝理由 |
| 详情字段 | **完整**：含时段、地址、需求（详情多于列表） | 同左；已拒绝须展示拒绝理由 |
| 写操作 | **完成接诊**（已预约→已完成） | 待确认可确认/拒绝 |
| 状态筛选 | **三种** | **五种** |
| 列表/详情拒绝理由 | **无** | 已拒绝必展示 |

### 3.4 与专家模块的差异（本期范围）

| 能力 | 机构（本文档） | 专家（关联文档） |
| --- | --- | --- |
| 业务域 | 疫病诊疗服务 | 养殖科技服务 |
| 接单 | **无** | 有（待确认处置） |
| 已完成-评价 | **无** | 查看评价、详情星级 |
| 列表字段 | 无时段/地址/需求/拒绝理由列 | 含时段、地址、需求、拒绝理由 |

### 3.5 与上下游模块关系

| 上游/平行模块 | 关系 |
| --- | --- |
| **畜牧医疗资源管理** | 机构须**已发布**且已**分配账号**，本模块才有菜单与数据；单日最大接诊人数等约束在**用户提交预约时**校验，本模块只展示结果 |
| **移动端预约服务** | 用户选择诊疗机构、填写预约信息并提交 → 机构侧出现 **已预约**；用户可取消 → **已取消**；履约结束 → **已完成** |
| **我的预约（兽医）** | 同一「预约服务」不同 Tab；**数据隔离**，列表互不交叉 |
| **我的预约（专家）** | 业务域与资源表不同；**数据隔离** |
| **机构现场服务/排班**（若实施） | 本模块不排班、不改约；仅反映预约台账状态，具体履约由线下或后续模块约定 |

### 3.6 统一预约数据与三端隔离（业务层约定）

- 牧民在「预约服务」中分别向**机构、兽医、专家**发起预约，在业务上为**不同预约对象**的独立记录。  
- 机构后台**仅**处理「指向本机构」的记录；**不会**因同一牧民同时预约了某兽医而出现在机构列表中。  
- 机构侧**不需要**也**不提供**将预约转派给某位兽医的操作（若需派单，属其他业务，本期不做）。

---

## 4. 预约状态与状态机（机构）

### 4.1 状态定义

| 状态 | 含义 | 本模块可执行操作 |
| --- | --- | --- |
| **已预约** | 用户已在移动端提交成功，预约指向本机构且尚未取消、未完成 | 查看、**完成接诊** |
| **已取消** | 预约已取消（通常为用户在移动端操作） | **仅查看** |
| **已完成** | 服务已结束（由整体业务规则置为完成） | **仅查看** |

### 4.2 状态迁移（机构视角：只读观察）

机构后台**不驱动**状态变更；以下为机构人员理解牧民侧与业务闭环的**可见迁移**：

```mermaid
stateDiagram-v2
    [*] --> 已预约: 用户在移动端提交机构预约
    已预约 --> 已取消: 用户取消预约
    已预约 --> 已完成: 服务完成(业务闭环)
    已取消 --> [*]
    已完成 --> [*]
```

**说明：**

- 机构侧**从未**出现「待确认→已确认」路径；用户提交成功即**已预约**。  
- **已取消**、**已完成**均由移动端或整体预约服务规则更新，机构后台刷新列表即可见。  
- 不存在「已拒绝」：机构预约无服务方拒绝环节（与兽医/专家不同）。

### 4.3 机构侧不应出现的状态

若列表或详情中出现 **待确认、已确认、已拒绝**，视为**数据错误或类型串单**，应按异常数据处理（不展示或提示联系管理员），**不应**提供确认/拒绝按钮。

---

## 5. 功能范围

### 5.1 本期实现

| 能力 | 说明 |
| --- | --- |
| 分页列表 | 筛选 + 默认仅当前机构预约；**§6.1** |
| 查看详情 | 全字段只读；**§6.2** |
| 工具栏 | **搜索**、**重置**（列表页） |

### 5.2 本期不实现

| 项 | 说明 |
| --- | --- |
| 确认接诊 / 拒绝接诊 | 属兽医、专家模块；机构**无**接单动作 |
| 填写或展示拒绝理由 | 机构流程无拒绝态 |
| 查看评价 / 星级 | 专家模块能力；机构**无** |
| 机构代取消、改期、改地址、改时段 | 须由用户在移动端或另立运营流程 |
| 导出、批量操作、消息推送配置 | 原型与草稿未要求 |
| 兽医/专家预约的跨类型查询 | 严格数据隔离 |
| 预约派单、分配兽医 | 非本模块范围 |

---

## 6. 详细功能需求

### 6.1 预约记录列表

| 项 | 规则 |
| --- | --- |
| 数据范围 | **仅**当前登录账号绑定机构的预约记录 |
| 分页 | 默认每页 **20** 条 |
| 排序 | 默认 **预约日期倒序**，同日按 **创建时间倒序**（或预约时段开始时间倒序，以实现为准，须稳定） |
| 工具栏 | **搜索**、**重置** |

**筛选条件**

| 筛选项 | 规则 |
| --- | --- |
| 预约人 | 选填；对**预约人姓名** **模糊**匹配 |
| 预约日期 | 选填；**起止日期**（`yyyy-MM-dd`）；含起止日当天；开始日期不得晚于结束日期 |
| 状态 | 选填；**精确**匹配 **已预约 / 已取消 / 已完成** 之一；空则不过滤 |

**列表列（展示，与原型一致）**

| 列名 | 说明 |
| --- | --- |
| 预约人 | — |
| 预约日期 | `yyyy-MM-dd` |
| 联系电话 | — |
| 状态 | 标签展示，三种枚举；颜色宜区分（如已预约/已取消/已完成） |
| 操作 | **查看**（见 **§7**） |

**列表不展示、详情展示的字段**

以下字段**不在列表列出现**，须在详情中完整展示（与原型「预约详情」弹窗一致）：

- 预约时段（`HH:mm~HH:mm`）  
- 服务地址  
- 服务需求  

### 6.2 查看预约详情

| 项 | 规则 |
| --- | --- |
| 入口 | 列表行「查看」；任意状态均可进入 |
| 形式 | 弹窗或详情页，**只读**（字段禁用或纯文本，不可编辑） |
| 字段 | 预约人、预约日期（`yyyy-MM-dd`）、预约时段（`HH:mm~HH:mm`）、联系电话、服务地址、服务需求、**状态** |
| 拒绝理由 | **不展示**（机构无拒绝流程） |
| 评价相关 | **不展示**（与专家模块区分） |
| 关闭 | 「确定」或「关闭」仅关闭弹窗，**不**改变预约状态 |

---

## 7. 操作与权限矩阵

| 操作 | 已预约 | 已取消 | 已完成 |
| --- | --- | --- | --- |
| 查看 | ✓ | ✓ | ✓ |
| 完成接诊 | ✓ | — | — |
| 确认接诊 | — | — | — |
| 拒绝接诊 | — | — | — |
| 查看评价 | — | — | — |

- 模块级：**列表查询**、**详情查看**、**完成接诊** 须按按钮粒度授权。  
- **无**确认、拒绝、编辑、删除类按钮。  
- 无「机构」绑定关系的账号：不应看到本菜单，或进入后列表为空并可有友好提示（见 **§9**）。

---

## 8. 业务流程

### 8.1 模块总览（机构后台）

```mermaid
flowchart TD
    A[机构账号登录后台] --> B[进入我的预约机构]
    B --> C[设置筛选条件]
    C --> D[搜索列表]
    D --> E{选择记录}
    E --> F[查看详情只读]
    F --> G[关闭详情]
    G --> D
    C --> H[重置筛选]
    H --> D
```

机构人员在后台**不参与**确认、拒绝；可对 **已预约** 记录执行 **完成接诊**；其余为查阅台账。

### 8.2 与移动端协同（牧民侧摘要）

以下流程帮助机构人员理解列表数据的来源与变化（机构后台无对应按钮）：

```mermaid
sequenceDiagram
    participant 牧民
    participant 移动端
    participant 机构后台

    牧民->>移动端: 预约服务-诊疗机构 Tab
    牧民->>移动端: 选择机构、日期时段、填写信息
    移动端->>移动端: 校验机构可约等
    移动端-->>机构后台: 生成预约 状态=已预约
    机构后台->>机构后台: 列表可见 已预约

    alt 用户取消
        牧民->>移动端: 取消预约(二次确认)
        移动端-->>机构后台: 状态=已取消
    end

    alt 服务完成
        Note over 移动端,机构后台: 由整体业务置 已完成
        移动端-->>机构后台: 状态=已完成
    end
```

1. 用户在「预约服务」**诊疗机构** Tab 选择机构、日期时段并提交 → 机构侧列表出现 **已预约**（移动端同显「已预约」，可「取消预约」）。  
2. 用户 **取消**（须二次确认，规则由移动端约定）→ 机构侧 **已取消**。  
3. 服务完成后由业务规则置 **已完成** → 机构侧仅可查看历史记录。  
4. 机构侧**全程无**「待确认」等待办事项。

### 8.3 与兽医/专家流程的并行关系（产品层）

| 牧民一次会话可能行为 | 机构后台 | 兽医后台 | 专家后台 |
| --- | --- | --- | --- |
| 只预约某机构 | 有记录 | 无 | 无 |
| 只预约某兽医 | 无 | 有记录 | 无 |
| 只预约某专家 | 无 | 无 | 有记录 |
| 分别预约机构+兽医 | 各看各的 | 各看各的 | — |

三端列表**互不影响**；机构人员**无需**在机构模块处理兽医预约。

---

## 9. 提示约定（示例）

| 场景 | 示例文案 |
| --- | --- |
| 日期筛选 | 「结束日期不能早于开始日期」 |
| 数据范围 | 「未绑定机构资源，无法查询预约」 |
| 空列表 | 「暂无预约记录」 |
| 详情关闭 | 无提交类成功提示（只读） |

机构模块**不涉及**确认/拒绝/拒绝理由类提示。

---

## 10. 非功能建议（业务侧）

- 列表查询须限定**当前机构**，防止越权查看他机构预约。  
- 查看详情记**操作审计**（可选，与平台统一要求一致）。  
- 日期、时段、状态展示格式与移动端、兽医/专家模块**保持一致**，便于运营对照。  
- 界面支持 **i18n**（汉语 + 藏文）；状态标签颜色与原型一致。  
- 列表字段较少、详情较全的设计，宜在交互上明确「详情查看更多字段」，避免误以为地址、时段未采集。

---

## 11. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 依据机构草稿与原型整理；补充与兽医、专家关联分析；明确登记制三态状态机；列表精简/详情完整；剔除技术栈与接口表述 |
