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.

355 lines
17 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.

# 保洁管理
> 模块编码cleaning
> 端侧Web + 小程序(双端)
> 关联文档01-模块划分 §3.3 / 02-功能清单-物业公司 §3 / 03-业务流转逻辑-物业公司 §3 / 05-接口规范 §9.2 / 06-项目技术要求 §4.4
## 功能概览
| 项目 | 说明 |
|------|------|
| 菜单名称 | 保洁管理 |
| 子菜单 | 保洁区域管理、保洁任务看板、人员排班、蓝牙点位管理、超时预警、保洁抽查、数据补录 |
| 功能编号 | PR-C-01 ~ PR-C-08 |
| 权限编码前缀 | cleaning:area:* / cleaning:task:* / cleaning:schedule:* / cleaning:spot-check:* / cleaning:supplement:* |
---
## 页面1保洁区域管理页
**页面编号**PR-C-01-P01
**端侧归属**Web专属
**页面路径**/cleaning/areas
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 保洁管理 > 保洁区域管理 │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增区域] │
├──────────────────────────────────────────────────────────────────┤
│ [树形+列表] │
│ ┌──────────────┐ ┌──────────────────────────────────────────┐ │
│ │ 主院区(项目) │ │ 区域:主院区 > 门诊楼 > 3层 > 公共区域 │ │
│ │ ├ 门诊楼 │ │ 区域责任人:张三 │ │
│ │ │ ├ 1层 │ │ 蓝牙BeaconB-010 (在线) │ │
│ │ │ │ ├ 大厅 │ │ 当前排班:早班(06:00-14:00) │ │
│ │ │ │ └ 走廊 │ │ [编辑] [删除]│ │
│ │ │ ├ 2层 │ └──────────────────────────────────────────┘ │
│ │ │ └ 3层 │ │
│ │ └ 住院楼 │ │
│ └──────────────┘ │
└──────────────────────────────────────────────────────────────────┘
```
### 五级架构
| 层级 | 说明 | 示例 |
|------|------|------|
| 项目 | 最顶层 | 主院区 |
| 区域 | 建筑分区 | 门诊楼 |
| 楼栋 | 单独楼 | 1号楼 |
| 楼层 | 楼层 | 3层 |
| 区域责任人 | 最末级+负责人 | 公共区域(张三) |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 新增区域 | cleaning:area:create | 操作栏 | 始终 | 弹窗 |
| 编辑 | cleaning:area:update | 详情区 | 始终 | — |
| 删除 | cleaning:area:delete | 详情区 | 无排班关联时 | 二次确认 |
### 表单字段(新增/编辑弹窗)
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|--------|----------|------|--------|----------|----------|
| 区域名称 | 文本输入 | 是 | — | 自填 | 最大30字 |
| 上级区域 | 级联选择 | 是 | — | 区域树 | — |
| 区域责任人 | 下拉单选 | 是 | — | 组织架构-人员 | — |
| 蓝牙Beacon | 下拉单选 | 是 | — | 蓝牙设备管理 | — |
| 保洁清单 | 下拉多选 | 是 | — | 保洁清单模板 | 至少选一个 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 区域树 | /api/v1/cleaning-areas/tree | GET | 五级树形结构 |
| 新增 | /api/v1/cleaning-areas | POST | — |
| 编辑 | /api/v1/cleaning-areas/{id} | PUT | — |
| 删除 | /api/v1/cleaning-areas/{id} | DELETE | — |
---
## 页面2保洁任务看板页
**页面编号**PR-C-02-P01
**端侧归属**Web专属
**页面路径**/cleaning/tasks
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 保洁管理 > 保洁任务看板 │
├──────────────────────────────────────────────────────────────────┤
│ [看板视图] │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 待执行(5) │ │ 执行中(3) │ │ 已完成(12)│ │
│ │ ┌──────┐ │ │ ┌──────┐ │ │ ┌──────┐ │ │
│ │ │门诊1层│ │ │ │门诊3层│ │ │ │门诊2层│ │ │
│ │ │张三 │ │ │ │李四 │ │ │ │王五 │ │ │
│ │ │06:00 │ │ │ │06:15 │ │ │ │07:00 │ │ │
│ │ └──────┘ │ │ └──────┘ │ │ └──────┘ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区] │
│ 日期[____] 班组[▼] 人员[____] 状态[▼] [查询] [重置] │
└──────────────────────────────────────────────────────────────────┘
```
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 日期 | 日期选择 | 否 | 今天 | — |
| 班组 | 下拉单选 | 否 | 全部 | — |
| 人员 | 文本输入 | 否 | — | 模糊匹配 |
| 状态 | 下拉单选 | 否 | 全部 | 待执行/执行中/已完成/超时 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 查看详情 | cleaning:task:view | 卡片/行操作 | 始终 | 跳转任务详情 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 任务列表 | /api/v1/cleaning-tasks | GET | 分页查询+看板数据 |
---
## 页面3人员排班页
**页面编号**PR-C-03-P01
**端侧归属**Web专属
**页面路径**/cleaning/schedules
### 界面布局
```
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 保洁管理 > 人员排班 │
├──────────────────────────────────────────────────────────────────┤
│ [视图切换] 📅周视图 📆月视图 [◀ 本周 ▶] [复制上周排班] │
├──────────────────────────────────────────────────────────────────┤
│ [周视图] │
│ 区域/人员 | 周一 | 周二 | 周三 | ... | 周日 │
│ 门诊1层大厅 | 张三早班| 张三早班| 李四早班| ... | 张三早班 │
│ 门诊2层走廊 | 王五早班| 王五早班| 王五早班| ... | — │
│ 住院1层 | 李四晚班| 李四晚班| — | ... | 李四晚班 │
├──────────────────────────────────────────────────────────────────┤
│ [操作] [保存排班] [清空本周] [导出排班表] │
└──────────────────────────────────────────────────────────────────┘
```
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 复制上周排班 | cleaning:schedule:create | 操作栏 | 始终 | 一键复制上周排班到本周 |
| 保存排班 | cleaning:schedule:update | 操作栏 | 始终 | — |
| 清空本周 | cleaning:schedule:delete | 操作栏 | 始终 | 二次确认 |
| 导出排班表 | cleaning:schedule:export | 操作栏 | 始终 | 导出Excel |
### 表单字段(排班编辑弹窗)
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|--------|----------|------|--------|----------|----------|
| 保洁人员 | 下拉单选 | 是 | — | 组织架构-保洁人员 | — |
| 班次 | 下拉单选 | 是 | — | 字典管理-班次 | 早班/晚班/全天 |
| 时间范围 | 时间范围 | 是 | — | 自填 | — |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 排班查询 | /api/v1/cleaning-schedules | GET | 按周/月查询 |
| 保存排班 | /api/v1/cleaning-schedules/batch | POST | 批量保存 |
| 复制排班 | /api/v1/cleaning-schedules/copy | POST | 从指定周复制 |
| 导出 | /api/v1/cleaning-schedules/export | GET | 导出Excel |
---
## 页面4蓝牙点位管理页
**页面编号**PR-C-04-P01
**端侧归属**Web专属
**页面路径**/cleaning/beacon-points
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 区域 | 级联选择 | 否 | 全部 | — |
| Beacon状态 | 下拉单选 | 否 | 全部 | 在线/离线 |
| 电量 | 下拉单选 | 否 | 全部 | 正常/低电量 |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | Beacon名称 | 120px | 否 | — |
| 2 | UUID | 180px | 否 | — |
| 3 | 绑定区域 | 150px | 否 | — |
| 4 | 状态 | 80px | 是 | 在线(绿)/离线(红) |
| 5 | 电量 | 80px | 是 | <20%=红色低电量 |
| 6 | 最后心跳 | 140px | | 超过15分钟=离线 |
| 7 | 操作 | 100px | | 编辑绑定/解绑 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 编辑绑定 | cleaning:area:update | 行操作 | 始终 | 绑定/更换区域 |
| 解绑 | cleaning:area:update | 行操作 | 已绑定 | 二次确认 |
### 通知触发
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|----------|----------|----------|----------|----------|
| Beacon离线 | 物业管理员 | 系统内通知 | Beacon离线预警 | 05 §5.2 (BEACON_OFFLINE) |
| Beacon低电量 | 物业管理员 | 系统内通知 | Beacon低电量预警 | 05 §5.2 (BEACON_LOW_BATTERY) |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 列表查询 | /api/v1/cleaning-beacon-points | GET | |
| 绑定 | /api/v1/cleaning-beacon-points/{id}/bind | PUT | 绑定区域 |
| 解绑 | /api/v1/cleaning-beacon-points/{id}/unbind | PUT | |
---
## 页面5超时预警页
**页面编号**PR-C-05-P01
**端侧归属**Web专属
**页面路径**/cleaning/timeouts
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | 任务区域 | 150px | | |
| 2 | 保洁人员 | 80px | | |
| 3 | 计划完成时间 | 140px | | |
| 4 | 超时时长 | 80px | | 红色标记 |
| 5 | 当前状态 | 100px | | 超时未开始/超时未完成 |
| 6 | 操作 | 100px | | 催办/查看 |
### 通知触发
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|----------|----------|----------|----------|----------|
| 任务超时 | 物业主管 | 小程序推送 | 保洁超时预警 | 01 §7.1 / 05 §5.2 (CLEANING_TIMEOUT) |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 超时列表 | /api/v1/cleaning-tasks/timeouts | GET | 仅显示超时任务 |
---
## 页面6保洁抽查页
**页面编号**PR-C-06-P01
**端侧归属**Web专属
**页面路径**/cleaning/spot-checks
### 查询条件
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|--------|----------|------|--------|------|
| 抽查结果 | 下拉单选 | | 全部 | 合格/不合格 |
| 抽查人 | 文本输入 | | | 模糊匹配 |
| 日期范围 | 日期范围 | | | |
### 列表字段
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|------|--------|------|----------|------|
| 1 | 任务区域 | 150px | | |
| 2 | 保洁人员 | 80px | | |
| 3 | 抽查人 | 80px | | 主管名称 |
| 4 | 抽查时间 | 140px | | 默认倒序 |
| 5 | 抽查结果 | 80px | | 合格(绿)/不合格(红) |
| 6 | 不合格原因 | 150px | | |
| 7 | 操作 | 100px | | 标记抽查 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 标记抽查 | cleaning:spot-check:approve | 操作栏 | 始终 | 弹窗选择合格/不合格 |
| 不合格→重新生成 | cleaning:spot-check:approve | 行操作 | 结果=不合格 | 重新生成该区域保洁任务 |
### API端点
| 页面操作 | API路径 | 方法 | 说明 |
|----------|---------|------|------|
| 抽查列表 | /api/v1/cleaning-spot-checks | GET | |
| 标记抽查 | /api/v1/cleaning-spot-checks | POST | |
---
## 页面7数据补录与补录审核页
**页面编号**PR-C-07-P01 / PR-C-08-P01
**端侧归属**Web专属
**页面路径**/cleaning/supplement
### 补录数据标记规范
| 标记项 | 说明 |
|--------|------|
| is_supplement | true |
| supplement_reason | 蓝牙故障/系统异常/定位失败/其他 |
| supplement_audit_status | 待审核/通过/驳回 |
| 统计排除 | 补录数据在统计中单独标记 |
### 操作按钮
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|------|----------|------|----------|------|
| 审核 | cleaning:supplement:approve | 行操作 | 审核状态=待审核 | 通过/驳回 |
---
## 需求追溯
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|------------|----------|----------|----------|----------|
| PR-C-01 | 保洁区域管理 | 02-物业公司 §3 / 03-物业公司 §3 | 五级架构→排班→任务生成 | 巡检区域管理(复用架构) |
| PR-C-02 | 保洁任务看板 | 02-物业公司 §3 / 03-物业公司 §3 | | 小程序端今日保洁(MP-CL-01) |
| PR-C-03 | 人员排班 | 02-物业公司 §3 / 03-物业公司 §3 | 排班→自动生成每日任务 | 组织架构→人员管理 |
| PR-C-04 | 蓝牙点位管理 | 02-物业公司 §3 | 区域→Beacon绑定 | 系统配置→蓝牙设备管理 |
| PR-C-05 | 超时预警 | 02-物业公司 §3 / 03-物业公司 §3 | 超时→推送主管 | 通知机制 |
| PR-C-06 | 保洁抽查 | 02-物业公司 §3 / 03-物业公司 §3 | 不合格→重新生成任务 | 小程序端抽查标记(MP-CL-05) |
| PR-C-07 | 数据补录 | 02-物业公司 §3 / 03-物业公司 §2.2 | 补录→审核 | 小程序端异常数据补录(MP-CL-07) |
| PR-C-08 | 补录审核 | 02-物业公司 §3 / 03-物业公司 §2.2 | 审核→通知补录人 | 操作日志→补录日志 |
## 业务规则
1. **五级架构**:项目→区域→楼栋→楼层→区域责任人,最末级必须指定责任人(来源:02-物业公司 PR-C-01
2. **排班自动生成任务**:根据排班数据自动生成每日保洁任务(来源:03-物业公司 §3
3. **蓝牙打卡确认**:策略=REQUIRED时必须连接Beacon后才可确认完成,失败进入补录模式(来源:06 §4.4
4. **蓝牙双模式**:策略=OPTIONAL时允许手动打卡(check_type=MANUAL)来源06 §4.4
5. **超时预警**:任务超过计划完成时间未完成,系统自动预警推送主管(来源:02-物业公司 PR-C-05 / 03-物业公司 §3
6. **抽查不合格**:主管标记不合格后,系统自动重新生成该区域保洁任务(来源:03-物业公司 §3
7. **补录流程**:与巡检一致,补录需主管审核(来源:03-物业公司 §2.2