You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

393 lines
23 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 在线报修
> 模块编码repair
> 端侧Web + 小程序(双端)
> 关联文档01-模块划分 §3.1 / 02-功能清单-物业公司 §1 / 03-业务流转逻辑-物业公司 §1 / 05-接口规范 §9.2 / 06-项目技术要求 §4.4
## 功能概览
| 项目 | 说明 |
|------|------|
| 菜单名称 | 在线报修 |
| 子菜单 | 工单列表、工单详情、报修类型管理、数据补录 |
| 功能编号 | PR-R-01 ~ PR-R-11 |
| 权限编码前缀 | repair:list:* / repair:detail:* / repair:type:* / repair:supplement:* |
---
## 页面1工单列表页
**页面编号**PR-R-01-P01
**端侧归属**Web专属小程序端对应"我的工单",见 MP-R-03
**页面路径**/repair/orders
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 在线报修 > 工单列表 │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区] │
│ 工单号[____] 状态[▼多选] 报修类型[▼] 紧急程度[▼] │
│ 提交日期[起始]~[结束] 所属班组[▼] 所属区域[▼] │
│ [查询] [重置] │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增工单] [批量分配] [批量关闭] [导出Excel] │
├──────────────────────────────────────────────────────────────────┤
│ [列表区] │
│ ☐ | 工单号 | 报修类型 | 紧急程度 | 状态 | 报修人 | 班组 | ... │
│ ☐ | WX001 | 水电 | 紧急 | 待分配| 张三 | 水电班| ... │
│ ☐ | WX002 | 木工 | 普通 | 处理中| 李四 | 木工班| ... │
├──────────────────────────────────────────────────────────────────┤
│ [分页] 共156条 每页[20▼] < 1 2 3 ... 8 > │
└──────────────────────────────────────────────────────────────────┘
```
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 工单号 | 文本输入 | 否 | — | 模糊匹配 |
| 状态 | 下拉多选 | 否 | 全部 | 待分配/处理中/延期中/待验收/已完成/已关闭 |
| 报修类型 | 下拉单选 | 否 | 全部 | 数据来源:字典管理-报修类型 |
| 紧急程度 | 下拉单选 | 否 | 全部 | 紧急/普通/低优先 |
| 提交日期 | 日期范围 | 否 | — | 起始~结束 |
| 所属班组 | 下拉单选 | 否 | 全部 | 数据来源:组织架构-班组 |
| 所属区域 | 级联选择 | 否 | 全部 | 项目→区域→楼栋→楼层 |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | ☐勾选 | 40px | — | 批量操作用 |
| 2 | 工单号 | 140px | 是 | 点击跳转详情页 |
| 3 | 报修类型 | 80px | 是 | 标签样式 |
| 4 | 紧急程度 | 80px | 是 | 紧急=红色/普通=蓝色/低=灰色 |
| 5 | 状态 | 90px | 是 | 彩色标签区分状态 |
| 6 | 报修人 | 80px | 否 | — |
| 7 | 负责班组 | 90px | 是 | — |
| 8 | 维修人员 | 80px | 否 | 未分配时显示"—" |
| 9 | 提交时间 | 150px | 是 | 默认倒序 |
| 10 | 预约时间 | 150px | 否 | — |
| 11 | 补录标记 | 70px | 否 | 补录数据显示"补录"橙色标签 |
| 12 | 操作 | 160px | — | 查看/分配/关闭 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 新增工单 | repair:list:create | 操作栏 | 始终 | 弹窗/跳转新增页 |
| 批量分配 | repair:list:assign | 操作栏 | 勾选≥1条且状态=待分配 | 批量分配弹窗 |
| 批量关闭 | repair:list:update | 操作栏 | 勾选≥1条且状态=待分配 | 二次确认弹窗 |
| 导出Excel | repair:list:export | 操作栏 | 始终 | 导出当前筛选结果 |
| 行内-分配 | repair:list:assign | 操作列 | 状态=待分配 | — |
| 行内-关闭 | repair:list:update | 操作列 | 状态=待分配 | 二次确认 |
| 行内-查看 | repair:list:view | 操作列 | 始终 | 跳转详情页 |
### 角色差异化视图
| 角色 | 可见按钮 | 数据范围 | 备注 |
|------|----------|----------|------|
| 物业管理员 | 全部按钮 | 本公司绑定医院全部数据 | — |
| 主管 | 查看、分配、导出 | 本班组数据 | 无新增按钮 |
| 维修人员 | 仅查看 | 仅本人负责的工单 | 操作列仅"查看" |
### 通知触发
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|----------|----------|----------|----------|----------|
| 工单分配 | 被分配的维修人员 | 小程序推送 | 新工单通知 | 01 §7.1 |
| 工单关闭 | 报修人 | 小程序推送 | 工单关闭通知 | 01 §7.1 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 列表查询 | /api/v1/repair-orders | GET | 分页查询,支持筛选参数 |
| 批量分配 | /api/v1/repair-orders/batch-assign | POST | 批量分配到班组/人员 |
| 批量关闭 | /api/v1/repair-orders/batch-close | POST | 需填关闭原因 |
| 导出 | /api/v1/repair-orders/export | GET | 导出Excel |
---
## 页面2工单详情页
**页面编号**PR-R-02-P01
**端侧归属**Web专属
**页面路径**/repair/orders/:id
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 在线报修 > 工单列表 > 工单详情 │
├──────────────────────────────────────────────────────────────────┤
│ [状态栏] 工单号WX20260416001 当前状态:待分配 │
├──────────────────────────────────────────────────────────────────┤
│ [标签页] 基本信息 | 流转记录 | 照片附件 | 评价信息 │
├──────────────────────────────────────────────────────────────────┤
│ ── 基本信息(默认展示)── │
│ 报修类型:水电 紧急程度:紧急 │
│ 报修人:张三 联系电话138****1234 │
│ 报修区域:主院区/门诊楼/3层 │
│ 报修描述3楼走廊灯管不亮影响夜间通行 │
│ 预约时间2026-04-16 14:00 │
│ 补录标记:否 │
├──────────────────────────────────────────────────────────────────┤
│ [底部操作栏] │
│ [分配工单] [关闭工单] 状态=待分配时显示 │
│ [验收通过] [验收不通过(退回)] 状态=待验收时显示 │
└──────────────────────────────────────────────────────────────────┘
```
### 标签页内容
| 标签页 | 内容 | 说明 |
|--------|------|------|
| 基本信息 | 报修类型、紧急程度、报修人、区域、描述、预约时间、补录标记 | 补录数据额外显示补录原因和审核状态 |
| 流转记录 | 时间轴展示工单状态变更历史 | 每条记录含:操作人、时间、操作类型、备注 |
| 照片附件 | 报修照片(缩略图+点击预览) | 照片含水印信息:时间+位置+蓝牙连接标记 |
| 评价信息 | 工单完成后的评价内容 | 评分+留言+图片,未评价时显示"暂无评价" |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 分配工单 | repair:list:assign | 底部操作栏 | 状态=待分配 | 弹窗选择班组/人员 |
| 关闭工单 | repair:list:update | 底部操作栏 | 状态=待分配 | 填写关闭原因 |
| 审批延期 | repair:detail:approve | 底部操作栏 | 状态=延期中 | 通过/驳回 |
| 验收通过 | repair:detail:approve | 底部操作栏 | 状态=待验收 | — |
| 验收不通过 | repair:detail:approve | 底部操作栏 | 状态=待验收 | 填写不通过原因,退回返修 |
### 角色差异化视图
| 角色 | 可见操作 | 数据范围 | 备注 |
|------|----------|----------|------|
| 物业管理员 | 全部操作 | 全部工单 | — |
| 主管 | 分配、审批、验收 | 本班组工单 | — |
| 维修人员 | 仅查看 | 仅本人负责的工单 | 底部操作栏隐藏 |
### 通知触发
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|----------|----------|----------|----------|----------|
| 分配工单 | 维修人员 | 小程序推送 | 新工单通知 | 01 §7.1 |
| 延期审批结果 | 维修人员 | 小程序推送 | 延期审批结果通知 | 01 §7.1 |
| 验收不通过 | 维修人员 | 小程序推送 | 验收退回通知 | 01 §7.1 |
| 验收通过 | 报修人 | 小程序推送 | 工单完成通知,触发评价 | 01 §7.1 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 详情查询 | /api/v1/repair-orders/{id} | GET | 含基本信息+流转记录+照片 |
| 分配工单 | /api/v1/repair-orders/{id}/assign | POST | 分配到班组/人员 |
| 关闭工单 | /api/v1/repair-orders/{id}/close | POST | 填写关闭原因 |
| 延期审批 | /api/v1/repair-orders/{id}/delay-approve | POST | 通过/驳回 |
| 验收 | /api/v1/repair-orders/{id}/accept | POST | 通过/不通过 |
---
## 页面3新增工单弹窗
**页面编号**PR-R-01-P02
**端侧归属**Web专属
**页面路径**:弹窗形式
### 界面布局
```
┌──────────────────────────────────────┐
│ 新增工单 [×] │
├──────────────────────────────────────┤
│ 报修类型:[▼必选] 紧急程度:[▼] │
│ 报修区域:[级联选择▼] │
│ 报修人: [____] 联系电话:[____] │
│ 预约时间:[日期时间选择] │
│ 报修描述: │
│ ┌────────────────────────────────┐ │
│ │ │ │
│ └────────────────────────────────┘ │
│ 照片上传:[+点击上传] (≤9张) │
│ 📷1 📷2 📷3 │
├──────────────────────────────────────┤
│ [取消] [提交] │
└──────────────────────────────────────┘
```
### 表单字段
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|--------|----------|------|--------|----------|----------|
| 报修类型 | 下拉单选 | 是 | — | 字典管理-报修类型 | — |
| 紧急程度 | 下拉单选 | 是 | 普通 | 固定选项 | 紧急/普通/低优先 |
| 报修区域 | 级联选择 | 是 | — | 区域五级架构 | 至少选到楼层 |
| 报修人 | 文本输入 | 是 | — | 自填 | 最大20字 |
| 联系电话 | 文本输入 | 是 | — | 自填 | 手机号格式校验 |
| 预约时间 | 日期时间 | 否 | — | 自填 | 不早于当前时间 |
| 报修描述 | 多行文本 | 是 | — | 自填 | 最大500字 |
| 照片 | 图片上传 | 否 | — | 拍照/相册 | ≤9张单张≤20MB自动加水印 |
---
## 页面4报修类型管理页
**页面编号**PR-R-07-P01
**端侧归属**Web专属
**页面路径**/repair/types
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 在线报修 > 报修类型管理 │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增类型] │
├──────────────────────────────────────────────────────────────────┤
│ [列表区] │
│ 序号 | 类型名称 | 关联班组 | 工单数量 | 状态 | 操作 │
│ 1 | 水电 | 水电班 | 23 | 启用 | 编辑 停用 │
│ 2 | 木工 | 木工班 | 8 | 启用 | 编辑 停用 │
│ 3 | 空调 | 暖通班 | 15 | 停用 | 编辑 启用 │
└──────────────────────────────────────────────────────────────────┘
```
### 表单字段(新增/编辑弹窗)
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|--------|----------|------|--------|----------|----------|
| 类型名称 | 文本输入 | 是 | — | 自填 | 最大20字同租户内唯一 |
| 关联班组 | 下拉多选 | 是 | — | 组织架构-班组 | 至少选一个 |
| 描述 | 多行文本 | 否 | — | 自填 | 最大200字 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 新增类型 | repair:type:create | 操作栏 | 始终 | 弹窗 |
| 编辑 | repair:type:update | 行操作 | 始终 | 弹窗 |
| 启用/停用 | repair:type:update | 行操作 | 始终 | 有工单关联时不可停用,提示先迁移 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 列表查询 | /api/v1/repair-types | GET | — |
| 新增 | /api/v1/repair-types | POST | — |
| 编辑 | /api/v1/repair-types/{id} | PUT | — |
| 启用/停用 | /api/v1/repair-types/{id}/toggle-status | PUT | — |
---
## 页面5数据补录页
**页面编号**PR-R-10-P01
**端侧归属**Web专属
**页面路径**/repair/supplement
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 在线报修 > 数据补录 │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区] │
│ 补录状态[▼] 补录人[____] 补录时间[起始]~[结束] [查询] [重置] │
├──────────────────────────────────────────────────────────────────┤
│ [列表区] │
│ 序号 | 工单号 | 补录人 | 补录原因 | 补录时间 | 审核状态 | 操作 │
│ 1 | WX001 | 张三 | 系统异常 | 10:30 | 待审核 | 审核 详情│
│ 2 | WX002 | 李四 | 蓝牙故障 | 09:15 | 已通过 | 详情 │
└──────────────────────────────────────────────────────────────────┘
```
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 补录状态 | 下拉单选 | 否 | 全部 | 待审核/已通过/已驳回 |
| 补录人 | 文本输入 | 否 | — | 模糊匹配 |
| 补录时间 | 日期范围 | 否 | — | — |
### 补录数据标记规范
| 标记项 | 说明 |
|--------|------|
| 列表标签 | 补录行在工单列表中显示"补录"橙色标签 |
| 补录原因 | 蓝牙故障/系统异常/定位失败/其他(枚举) |
| 审核状态列 | 待审核(黄色)/已通过(绿色)/已驳回(红色) |
| 详情展示 | 补录原因+详细说明+审核人+审核时间 |
| 统计排除 | 补录数据在统计报表中单独标记,默认包含,可筛选排除 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 审核 | repair:supplement:approve | 行操作 | 审核状态=待审核 | 通过/驳回弹窗 |
| 详情 | repair:supplement:view | 行操作 | 始终 | 查看补录详情 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 列表查询 | /api/v1/repair-orders/supplements | GET | 分页查询 |
| 审核 | /api/v1/repair-orders/supplements/{id}/approve | POST | 通过/驳回 |
---
## 需求追溯
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|------------|----------|----------|----------|----------|
| PR-R-01 | 工单列表 | 02-物业公司 §1 / 03-物业公司 §1.2 | — | 巡检异常上报→自动生成工单 |
| PR-R-02 | 工单详情 | 02-物业公司 §1 / 03-物业公司 §1.2 | 流转记录、照片查看 | 评价管理→工单评价展示 |
| PR-R-03 | 工单分配 | 02-物业公司 §1 / 03-物业公司 §1.2 | 触发通知服务→推送维修人员 | 组织架构→班组/人员选择 |
| PR-R-04 | 工单流转 | 02-物业公司 §1 / 03-物业公司 §1.2 | 状态变更→触发通知 | — |
| PR-R-05 | 延期审批 | 02-物业公司 §1 / 03-物业公司 §1.2 | 审批结果→通知维修人员 | 小程序端延期申请(MP-R-07) |
| PR-R-06 | 协助维修管理 | 02-物业公司 §1 / 03-物业公司 §1.2 | 生成协助子工单→通知协助班组 | 小程序端协助申请(MP-R-09) |
| PR-R-07 | 报修类型管理 | 02-物业公司 §1 | 类型变更→刷新字典缓存 | 字典管理→报修类型字典 |
| PR-R-08 | 工单验收 | 02-物业公司 §1 / 03-物业公司 §1.2 | 验收通过→触发评价 | 小程序端验收(MP-R-11) / 评价管理 |
| PR-R-09 | 退单/返修处理 | 02-物业公司 §1 / 03-物业公司 §1.2 | 退回→通知维修人员 | — |
| PR-R-10 | 数据补录 | 02-物业公司 §1 / 03-物业公司 §2.2 | 补录审核→通知补录人 | 操作日志→补录日志 |
| PR-R-11 | 工单导出 | 02-物业公司 §1 | 记录导出操作日志 | — |
## 业务规则
1. **工单号规则**WX + 年月日 + 3位序号如 WX20260416001来源03-物业公司 §1
2. **状态流转规则**:待分配→处理中→待验收→已完成/已关闭详见状态流转图来源03-物业公司 §1.2
3. **分配规则**支持手动分配和自动分配按报修类型→关联班组→班组内轮询来源02-物业公司 PR-R-03
4. **照片水印**:上传照片自动添加水印(时间+位置+蓝牙连接标记来源05-接口规范 §3.2
5. **补录审核**补录数据需主管审核审核通过后生效审核驳回需通知补录人来源03-物业公司 §2.2
6. **验收触发评价**工单验收通过后自动触发评价流程来源03-物业公司 §1.2事件ORDER_COMPLETED
7. **退单返修**验收不通过时工单退回处理中状态维修人员需重新处理来源03-物业公司 §1.2
8. **数据权限**主管仅看本班组数据员工仅看本人数据来源01 §1.3
9. **操作日志**所有工单操作自动记录审计日志来源06 §4.5
## 状态流转
```
┌─── 关闭工单 ──▶ 已关闭
报修提交 ──▶ 待分配 ──▶ 分配工单 ──▶ 处理中 ──▶ 提交完工 ──▶ 待验收 ──▶ 验收通过 ──▶ 已完成
│ │
申请延期▶ 延期中 验收不通过
申请协助▶ 生成子工单 │
│ ▼
延期审批 退回处理中
通过/驳回 (返修)
```
| 当前状态 | 操作 | 目标状态 | 执行角色 | 端侧 |
|----------|------|----------|----------|------|
| — | 提交报修 | 待分配 | 报修人 | 小程序 |
| 待分配 | 分配工单 | 处理中 | 主管/系统 | Web+小程序 |
| 待分配 | 关闭工单 | 已关闭 | 主管 | Web+小程序 |
| 处理中 | 提交完工 | 待验收 | 维修人员 | 小程序 |
| 处理中 | 申请延期 | 延期中 | 维修人员 | 小程序 |
| 处理中 | 申请协助 | 处理中 | 维修人员 | 小程序 |
| 延期中 | 审批通过 | 处理中 | 主管 | Web+小程序 |
| 延期中 | 审批驳回 | 处理中 | 主管 | Web+小程序 |
| 待验收 | 验收通过 | 已完成 | 主管/报修人 | Web+小程序 |
| 待验收 | 验收不通过 | 处理中 | 主管/报修人 | Web+小程序 |
| 已完成 | 评价 | 已完成 | 报修人 | 小程序 |