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.

383 lines
20 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.

# 巡检管理
> 模块编码inspection
> 端侧Web + 小程序(双端)
> 关联文档01-模块划分 §3.2 / 02-功能清单-物业公司 §2 / 03-业务流转逻辑-物业公司 §2 / 05-接口规范 §9.2 / 06-项目技术要求 §4.4
## 功能概览
| 项目 | 说明 |
|------|------|
| 菜单名称 | 巡检管理 |
| 子菜单 | 巡检计划管理、巡检任务看板、巡检记录查询、异常处理跟踪、巡检区域管理、数据补录 |
| 功能编号 | PR-I-01 ~ PR-I-07 |
| 权限编码前缀 | inspection:plan:* / inspection:task:* / inspection:area:* / inspection:supplement:* |
---
## 页面1巡检计划管理页
**页面编号**PR-I-01-P01
**端侧归属**Web专属
**页面路径**/inspection/plans
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 巡检管理 > 巡检计划管理 │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区] │
│ 计划名称[____] 状态[▼] 巡检类型[▼] 负责班组[▼] [查询] [重置] │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增计划] │
├──────────────────────────────────────────────────────────────────┤
│ [列表区] │
│ 序号 | 计划名称 | 巡检类型 | 频次 | 负责班组 | 巡检人员 | 状态 | 操作│
│ 1 | 门诊楼日常| 日常 | 每日 | 巡检一班 | 张三,李四| 启用 | 编辑│
│ 2 | 空调专项 | 专项 | 每周 | 巡检二班 | 王五 | 停用 | 编辑│
├──────────────────────────────────────────────────────────────────┤
│ [分页] 共25条 每页[20▼] < 1 2 > │
└──────────────────────────────────────────────────────────────────┘
```
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 计划名称 | 文本输入 | 否 | — | 模糊匹配 |
| 状态 | 下拉单选 | 否 | 全部 | 启用/停用 |
| 巡检类型 | 下拉单选 | 否 | 全部 | 数据来源:字典管理-巡检类型 |
| 负责班组 | 下拉单选 | 否 | 全部 | 数据来源:组织架构-班组 |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | 序号 | 60px | — | 自增 |
| 2 | 计划名称 | 160px | 是 | — |
| 3 | 巡检类型 | 80px | 否 | 标签样式 |
| 4 | 频次 | 80px | 否 | 每日/每周/每月/自定义 |
| 5 | 负责班组 | 100px | 是 | — |
| 6 | 巡检人员 | 150px | 否 | 显示人员列表 |
| 7 | 巡检区域 | 150px | 否 | 简略显示区域 |
| 8 | 状态 | 80px | 是 | 启用/停用 |
| 9 | 操作 | 100px | — | 编辑/停用 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 新增计划 | inspection:plan:create | 操作栏 | 始终 | 跳转新增页 |
| 编辑 | inspection:plan:update | 行操作 | 始终 | — |
| 启用/停用 | inspection:plan:update | 行操作 | 始终 | 停用后不再生成任务 |
### 表单字段(新增/编辑页)
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|--------|----------|------|--------|----------|----------|
| 计划名称 | 文本输入 | 是 | — | 自填 | 最大50字同租户内唯一 |
| 巡检类型 | 下拉单选 | 是 | — | 字典管理-巡检类型 | — |
| 巡检区域 | 级联多选 | 是 | — | 区域五级架构 | 至少选一个 |
| 巡检设备 | 下拉多选 | 否 | — | 区域关联设备 | 可选,不选则巡检所有 |
| 频次 | 下拉单选 | 是 | — | 固定选项 | 每日/每周/每月/自定义 |
| 自定义cron | 文本输入 | 条件 | — | 自填 | 频次=自定义时必填 |
| 负责班组 | 下拉单选 | 是 | — | 组织架构-班组 | — |
| 巡检人员 | 下拉多选 | 是 | — | 班组内人员 | 至少选一个 |
| 巡检清单 | 下拉多选 | 是 | — | 巡检清单模板 | 至少选一个检查项 |
| 生效日期 | 日期选择 | 是 | — | 自填 | 不早于当前日期 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 列表查询 | /api/v1/inspection-plans | GET | 分页查询 |
| 新增 | /api/v1/inspection-plans | POST | — |
| 编辑 | /api/v1/inspection-plans/{id} | PUT | — |
| 启用/停用 | /api/v1/inspection-plans/{id}/toggle-status | PUT | — |
---
## 页面2巡检任务看板页
**页面编号**PR-I-02-P01
**端侧归属**Web专属
**页面路径**/inspection/tasks
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 巡检管理 > 巡检任务看板 │
├──────────────────────────────────────────────────────────────────┤
│ [视图切换] 📅日历视图 📋列表视图 日期:[◀ 2026-04-16 ▶] │
├──────────────────────────────────────────────────────────────────┤
│ ── 日历视图(默认)── │
│ 1 2 3 4 5 6 7 │
│ 上午 🟢 🟢 🔴 🟢 🟡 🟢 🟢 │
│ 下午 🟢 🟡 🟢 🟢 🟢 — — │
│ 🟢=正常 🔴=异常 🟡=未执行 —=无任务 │
├──────────────────────────────────────────────────────────────────┤
│ ── 列表视图 ── │
│ 日期 | 计划名称 | 巡检人员 | 打卡时间 | 状态 | 异常数 | 操作 │
│ 04-16| 门诊楼日常| 张三 | 09:15 | 正常 | 0 | 查看 │
│ 04-16| 住院楼日常| 李四 | — | 未执行| — | — │
│ 04-15| 门诊楼日常| 张三 | 09:20 | 异常 | 2 | 查看 │
├──────────────────────────────────────────────────────────────────┤
│ [分页] 共30条 每页[20▼] < 1 2 > │
└──────────────────────────────────────────────────────────────────┘
```
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 日期 | 日期选择 | 否 | 今天 | — |
| 计划名称 | 下拉单选 | 否 | 全部 | — |
| 状态 | 下拉单选 | 否 | 全部 | 正常/异常/未执行 |
| 巡检人员 | 文本输入 | 否 | — | 模糊匹配 |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | 日期 | 100px | 是 | — |
| 2 | 计划名称 | 150px | 否 | — |
| 3 | 巡检人员 | 80px | 否 | — |
| 4 | 打卡时间 | 100px | 是 | 未执行显示"—" |
| 5 | 打卡方式 | 80px | 否 | 蓝牙/手动/补录 |
| 6 | 状态 | 80px | 是 | 正常(绿)/异常(红)/未执行(黄) |
| 7 | 异常数 | 70px | 否 | 点击查看异常详情 |
| 8 | 操作 | 80px | — | 查看 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 任务列表 | /api/v1/inspection-tasks | GET | 分页查询 |
| 日历数据 | /api/v1/inspection-tasks/calendar | GET | 按月返回日历数据 |
---
## 页面3巡检记录查询页
**页面编号**PR-I-03-P01
**端侧归属**Web专属
**页面路径**/inspection/records
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 巡检人员 | 文本输入 | 否 | — | 模糊匹配 |
| 日期范围 | 日期范围 | 否 | — | — |
| 打卡方式 | 下拉单选 | 否 | 全部 | 蓝牙/手动/补录 |
| 结果状态 | 下拉单选 | 否 | 全部 | 全部正常/有异常 |
| 补录标记 | 下拉单选 | 否 | 全部 | 正常数据/补录数据 |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | 巡检人员 | 80px | 否 | — |
| 2 | 计划名称 | 150px | 否 | — |
| 3 | 巡检区域 | 150px | 否 | — |
| 4 | 打卡时间 | 140px | 是 | 默认倒序 |
| 5 | 打卡方式 | 80px | 否 | 蓝牙(蓝)/手动(灰)/补录(橙) |
| 6 | 检查项数 | 70px | 否 | — |
| 7 | 异常数 | 70px | 否 | — |
| 8 | 补录标记 | 70px | 否 | 补录显示"补录"标签+原因 |
| 9 | 操作 | 120px | — | 查看详情/查看异常 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 查看详情 | inspection:task:view | 行操作 | 始终 | 跳转记录详情 |
| 查看异常 | inspection:task:view | 行操作 | 异常数>0 | 跳转异常列表 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 记录列表 | /api/v1/inspection-records | GET | 分页查询 |
| 记录详情 | /api/v1/inspection-records/{id} | GET | 含打卡信息+检查项结果+照片 |
---
## 页面4异常处理跟踪页
**页面编号**PR-I-04-P01
**端侧归属**Web专属
**页面路径**/inspection/abnormals
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 严重等级 | 下拉单选 | 否 | 全部 | 一般/较重/严重 |
| 处理状态 | 下拉单选 | 否 | 全部 | 待处理/已生成工单/已关闭 |
| 日期范围 | 日期范围 | 否 | — | — |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | 异常编号 | 120px | 否 | — |
| 2 | 巡检记录 | 120px | 否 | 关联巡检记录 |
| 3 | 严重等级 | 80px | 是 | 一般(黄)/较重(橙)/严重(红) |
| 4 | 异常描述 | 200px | 否 | — |
| 5 | 上报人 | 80px | 否 | — |
| 6 | 上报时间 | 140px | 是 | 默认倒序 |
| 7 | 处理状态 | 100px | 否 | 待处理/已生成工单/已关闭 |
| 8 | 关联工单 | 120px | 否 | 点击跳转工单详情 |
| 9 | 操作 | 120px | — | 生成工单/查看 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 生成报修工单 | repair:list:create | 行操作 | 处理状态=待处理 | 一键生成,自动关联异常记录 |
| 查看 | inspection:task:view | 行操作 | 始终 | 查看异常详情 |
### 通知触发
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|----------|----------|----------|----------|----------|
| 异常上报 | 物业主管 | 小程序推送 | 巡检异常通知 | 01 §7.1 |
| 生成工单 | 维修人员 | 小程序推送 | 新工单通知 | 05 §5.2 (INSPECTION_ABNORMAL) |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 异常列表 | /api/v1/inspection-abnormals | GET | 分页查询 |
| 生成工单 | /api/v1/inspection-abnormals/{id}/create-order | POST | — |
---
## 页面5巡检区域管理页
**页面编号**PR-I-05-P01
**端侧归属**Web专属
**页面路径**/inspection/areas
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 巡检管理 > 巡检区域管理 │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增区域] [批量导入] │
├──────────────────────────────────────────────────────────────────┤
│ [树形结构+列表] │
│ ┌──────────────┐ ┌──────────────────────────────────────────┐ │
│ │ 主院区 │ │ 区域:主院区 > 门诊楼 > 1层 │ │
│ │ ├ 门诊楼 │ │ 蓝牙BeaconB-001 (在线) │ │
│ │ │ ├ 1层 │ │ Beacon UUIDxxxx-xxxx-xxxx │ │
│ │ │ ├ 2层 │ │ 关联设备:灯控系统、空调系统 │ │
│ │ │ └ 3层 │ │ 巡检计划:门诊楼日常巡检 │ │
│ │ └ 住院楼 │ │ [编辑] [删除]│ │
│ └──────────────┘ └──────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
```
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 新增区域 | inspection:area:create | 操作栏 | 始终 | 弹窗 |
| 编辑 | inspection:area:update | 详情区 | 始终 | — |
| 删除 | inspection:area:delete | 详情区 | 无关联计划时 | 二次确认 |
### 表单字段(新增/编辑弹窗)
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|--------|----------|------|--------|----------|----------|
| 区域名称 | 文本输入 | 是 | — | 自填 | 最大30字 |
| 上级区域 | 级联选择 | 是 | — | 区域树 | — |
| 蓝牙Beacon | 下拉单选 | 是 | — | 蓝牙设备管理(在线设备) | — |
| 关联设备 | 下拉多选 | 否 | — | 设备列表 | — |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 区域树 | /api/v1/inspection-areas/tree | GET | 树形结构 |
| 新增 | /api/v1/inspection-areas | POST | — |
| 编辑 | /api/v1/inspection-areas/{id} | PUT | — |
| 删除 | /api/v1/inspection-areas/{id} | DELETE | — |
---
## 页面6数据补录与补录审核页
**页面编号**PR-I-06-P01 / PR-I-07-P01
**端侧归属**Web专属
**页面路径**/inspection/supplement
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 审核状态 | 下拉单选 | 否 | 全部 | 待审核/已通过/已驳回 |
| 补录人 | 文本输入 | 否 | — | 模糊匹配 |
| 补录原因 | 下拉单选 | 否 | 全部 | 蓝牙故障/系统异常/定位失败/其他 |
| 日期范围 | 日期范围 | 否 | — | — |
### 补录数据标记规范
| 标记项 | 说明 |
|--------|------|
| is_supplement | true |
| supplement_reason | 蓝牙故障/系统异常/定位失败/其他 |
| supplement_remark | 补录详细说明 |
| supplement_audit_status | 待审核/通过/驳回 |
| supplement_auditor | 审核人ID |
| supplement_audit_time | 审核时间 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 审核 | inspection:supplement:approve | 行操作 | 审核状态=待审核 | 通过/驳回弹窗 |
| 查看 | inspection:supplement:view | 行操作 | 始终 | 查看补录详情 |
### 通知触发
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|----------|----------|----------|----------|----------|
| 审核通过 | 补录人 | 小程序推送 | 补录审核通过通知 | 03-物业公司 §2.2 |
| 审核驳回 | 补录人 | 小程序推送 | 补录审核驳回通知,需重新执行 | 03-物业公司 §2.2 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 补录列表 | /api/v1/inspection-records/supplements | GET | 分页查询 |
| 审核 | /api/v1/inspection-records/supplements/{id}/approve | POST | — |
---
## 需求追溯
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|------------|----------|----------|----------|----------|
| PR-I-01 | 巡检计划管理 | 02-物业公司 §2 / 03-物业公司 §2.1 | 计划创建→自动生成每日任务 | 巡检任务看板 |
| PR-I-02 | 巡检任务看板 | 02-物业公司 §2 / 03-物业公司 §2.1 | — | 小程序端今日巡检(MP-I-01) |
| PR-I-03 | 巡检记录查询 | 02-物业公司 §2 / 03-物业公司 §2.1 | — | 统计报表→巡检统计 |
| PR-I-04 | 异常处理跟踪 | 02-物业公司 §2 / 03-物业公司 §2.1 | 异常→一键生成报修工单 | 在线报修(工单创建) |
| PR-I-05 | 巡检区域管理 | 02-物业公司 §2 | 区域→蓝牙Beacon绑定 | 系统配置→蓝牙设备管理 |
| PR-I-06 | 数据补录 | 02-物业公司 §2 / 03-物业公司 §2.2 | 补录→审核→生效 | 小程序端异常数据补录(MP-I-06) |
| PR-I-07 | 补录审核 | 02-物业公司 §2 / 03-物业公司 §2.2 | 审核结果→通知补录人 | 操作日志→补录日志 |
## 业务规则
1. **任务自动生成**巡检计划创建后系统按频次自动生成每日巡检任务来源03-物业公司 §2.1
2. **蓝牙打卡**小程序端巡检必须连接蓝牙Beacon后才可打卡和拍照策略=REQUIRED时失败进入补录模式来源01 §9 / 06 §4.4
3. **蓝牙双模式**:策略=OPTIONAL时允许手动打卡(check_type=MANUAL)无需补录审核来源06 §4.4 / 03-物业公司 §10
4. **异常上报→工单**巡检发现异常可一键生成报修工单触发INSPECTION_ABNORMAL事件来源05 §5.2 / 03-物业公司 §2.1
5. **补录审核流程**补录数据需主管审核审核通过生效驳回需重新执行来源03-物业公司 §2.2
6. **补录数据标记**所有补录记录标记is_supplement=true补录原因、审核状态等完整记录来源03-物业公司 §2.3
7. **数据权限**主管仅看本班组数据员工仅看本人数据来源01 §1.3