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.
houqin-java/docs/03-业务流转逻辑-小程序端.md

418 lines
16 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.

# 微信小程序端 — 业务流转逻辑
> 版本v4.0
> 微信小程序仅供物业人员使用,**医院账号无小程序端**。
> 不同角色登录后看到不同功能入口。
> 关联文档:`01-模块划分.md`v4.0)、`02-功能清单-小程序端.md`
---
## 1. 登录与权限加载流程
### 1.1 首次登录
```
用户打开小程序
微信授权获取openid
绑定手机号(微信获取手机号组件)
系统匹配物业公司+人员信息
**数据来源物业公司Web端创建的下属账号sys_user表**
┌─── 匹配成功 ──┐ ┌─── 匹配失败 ──┐
│ │ │ │
创建账号 提示"未找到关联信息,请联系管理员"
进入工作台 无法使用
```
### 1.2 再次登录
```
打开小程序
读取本地token
┌─── token有效 ──┐ ┌─── token无效 ──┐
│ │ │ │
直接进入工作台 openid静默登录
**数据来源:系统用户表自动匹配**
刷新token
进入工作台
```
### 1.3 权限加载与界面渲染
```
用户登录成功
获取角色及权限集(四级粒度)
**数据来源:超级管理员定义的角色+物业公司管理员分配的角色**
根据权限动态渲染:
├── 可见菜单项
├── 页面内可见功能点
├── 功能点可用动作(按钮显示/隐藏/禁用)
└── 数据范围(行级隔离)
```
---
## 2. 报修流程
### 2.1 报修人视角
```
首页工作台 → 一键报修
选择报修类型数据来源物业公司Web端配置的报修类型字典
填写描述
拍照上传≤9张含水印时间定位
提交 → 生成工单 → 等待分配
接收处理通知
接收完工通知 → 评价(五分制+留言)
```
### 2.2 维修人员视角
```
接收工单通知(小程序推送)
查看待处理工单列表
**数据来源物业公司Web端分配的工单或自动分配**
接单
处理维修
┌─── 正常完工 ────────────────────┐
│ 上传维修后照片 → 填写说明 → 提交 │
│ → 工单状态变为"待验收" │
└────────────────────────────────────┘
┌─── 需要延期 ────────────────────┐
│ 填写延期原因和预计完成时间 │
│ → 工单状态变为"延期中" │
│ → 等待主管审批 │
│ **审批数据来源主管在Web或小程序端审批** │
└────────────────────────────────────┘
┌─── 需要协助 ────────────────────┐
│ 请求其他班组协助 │
│ → 生成协助子工单 │
│ → 等待协助完成 │
└────────────────────────────────────┘
等待验收
**验收数据来源主管或报修人在Web/小程序端验收**
```
### 2.3 主管视角(工单管理)
```
查看待分配工单列表
**数据来源:报修人提交的工单(小程序端)+ Web端录入的工单**
工单分配(手动分配到班组/人员)
延期审批(审批维修人员延期申请)
**数据来源:维修人员在小程序端提交的延期申请**
工单验收
```
---
## 3. 巡检流程(巡检人员视角)
```
查看今日巡检任务
**数据来源物业管理员在Web端创建的巡检计划自动生成**
到达巡检点位
查询蓝牙策略配置
**数据来源系统配置的蓝牙策略GET /system/bluetooth-policy → inspection_check_in**
┌─── 策略=REQUIRED强制蓝牙───────────────────────────┐
│ │
│ 小程序自动扫描蓝牙Beacon │
│ │ │
│ ┌─── 检测到目标Beacon ───┐ ┌─── 未检测到 ────────────┐ │
│ │ │ │ │ │
│ │ 读取UUID │ 提示"未检测到蓝牙信号" │ │
│ │ 连接蓝牙设备 │ │ │ │
│ │ 连接成功即打卡 │ ┌─重试──▶ 重新扫描 │ │
│ │ check_type=BLUETOOTH │ └─补录──▶ 进入补录模式 │ │
│ │ **无需距离校验** │ │ │ │
│ └─────────────────────────┘ 选择补录原因 │ │
│ 手动填写巡检记录 │ │
│ 提交补录申请 │ │
│ **需主管审核Web/小程序)**│ │
└──────────────────────────────────────────────────────────┘
┌─── 策略=OPTIONAL非强制蓝牙──────────────────────────┐
│ │
│ 用户选择打卡方式 │
│ ┌───蓝牙打卡──┐───手动打卡──┐ │
│ 扫描蓝牙 直接打卡 │
│ check_type= check_type=MANUAL │
│ BLUETOOTH │
└──────────────────────────────────────────────────────────┘
打卡成功后 → 逐项检查巡检清单 → 记录正常/异常
┌─── 发现异常 ────────────────────────────────────┐
│ 拍照上传 + 标记严重等级 │
│ 可一键生成报修工单(数据写入报修模块) │
└──────────────────────────────────────────────────┘
┌─── 拍照(蓝牙策略=REQUIRED时────────────────────┐
│ 拍照也须在蓝牙连接状态下进行 │
│ **拍照策略数据来源GET /system/bluetooth-policy │
│ → inspection_photo** │
└──────────────────────────────────────────────────┘
```
---
## 4. 保洁流程(保洁人员视角)
```
查看今日保洁任务
**数据来源物业管理员在Web端配置的排班自动生成**
到达保洁区域
查询蓝牙策略配置
**数据来源系统配置的蓝牙策略GET /system/bluetooth-policy → cleaning_check_in**
┌─── 策略=REQUIRED强制蓝牙──────────────────────┐
│ 蓝牙强制打卡确认流程同巡检3.1
│ check_type=BLUETOOTH │
│ 未检测到蓝牙 → 进入补录模式(需主管审核) │
└──────────────────────────────────────────────────────┘
┌─── 策略=OPTIONAL非强制蓝牙─────────────────────┐
│ 可选蓝牙打卡或手动打卡 │
│ 手动打卡check_type=MANUAL │
└──────────────────────────────────────────────────────┘
逐项完成保洁清单 → 上传完成后照片
┌─── 发现异常 ─────────────────────────────┐
│ 异常反馈 → 拍照上报 │
└────────────────────────────────────────────┘
任务完成
主管抽查(数据来源:主管在小程序端标记)
┌─合格─┐ ┌─不合格─┐
确认完成 重新生成任务
```
---
## 5. 考勤打卡流程(员工视角)
```
到达班组打卡点
查询蓝牙策略配置
**数据来源系统配置的蓝牙策略GET /system/bluetooth-policy → attendance_check**
┌─── 策略=REQUIRED强制蓝牙──────────────────────┐
│ │
│ 小程序自动扫描蓝牙Beacon │
│ │ │
│ ┌─── 检测到指定打卡点Beacon ───┐ │
│ │ 验证Beacon属于本人班组打卡点 │ │
│ │ 连接蓝牙成功 │ │
│ │ 记录打卡时间+Beacon标识 │ │
│ │ **打卡点数据来源Web端配置的打卡点+蓝牙绑定** │
│ │ 打卡成功 check_method=BLUETOOTH │
│ └──────────────────────────────┘ │
│ │ │
│ ┌─── 未检测到打卡点蓝牙 ──────────┐ │
│ │ 提示"未检测到打卡点蓝牙信号" │ │
│ │ ┌─重试──▶ 重新扫描 │ │
│ │ └─异常申诉──▶ 提交打卡异常申诉 │ │
│ │ 选择异常原因(蓝牙故障/手机异常/系统异常/ │
│ │ 忘记打卡/其他) │
│ │ 补充说明(可上传照片) │
│ │ 提交申诉 → 等待主管审核 │
│ │ **审核数据来源主管在Web/小程序端审核** │
│ └──────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
┌─── 策略=OPTIONAL非强制蓝牙─────────────────────┐
│ 可选蓝牙打卡或手动打卡 │
│ 手动打卡check_method=MANUAL │
└──────────────────────────────────────────────────────┘
打卡成功 → 记录操作日志
```
### 5.1 打卡异常申诉审核流程
```
员工提交打卡异常申诉(小程序端)
主管审核Web+小程序均可)
**申诉数据来源:小程序端提交的异常申诉**
┌─审核通过─┐ ┌─审核驳回─┐
系统自动补录 通知员工
打卡记录 申诉未通过
标注"补录" 记录审核日志
记录审核日志
```
---
## 6. 组织架构相关流程
```
查看我的班组
**数据来源物业管理员在Web端配置的班组信息**
班组信息 + 班组成员列表
查看我的排班
**数据来源物业管理员在Web端配置的排班数据**
个人排班日历
```
---
## 7. 服务评价流程(报修人视角)
```
工单完工后收到评价通知
**触发数据来源物业公司在Web/小程序端验收通过**
打开待评价列表
五分制评分 + 文字留言 + 图片上传
提交评价
物业公司可查看和回复(数据写入评价模块)
**评价数据来源小程序端提交物业公司Web端可查看回复**
```
---
## 8. 统计概览流程
### 8.1 管理员/主管视角
```
进入工作台 → 简版统计概览
按角色权限显示今日/本周关键指标:
├── 报修:今日工单数/待处理/已完成
├── 巡检:今日任务数/已完成/异常
├── 保洁:今日任务数/已完成/超时
└── 考勤:今日出勤率
**数据来源:物业公司各业务模块实时数据**
```
### 8.2 员工视角
```
进入工作台 → 个人绩效统计
个人工单量、评分、考勤
**数据来源:报修模块工单数据 + 评价模块评分 + 考勤模块打卡数据**
```
---
## 9. 物业公司管理员小程序功能
```
物业管理员登录小程序
功能入口与Web端对应但功能简化
├── 报修管理:工单列表/分配/流转
├── 巡检管理:计划/看板/记录
├── 保洁管理:任务/排班/抽查
├── 考勤管理:记录/统计
├── 评价管理:查看/回复
└── 组织架构查看:查看班组/人员
**所有数据来源与Web端同一数据源操作实时同步**
```
---
## 10. 小程序更新流程
```
小程序启动
调用后台接口获取最新版本号 + 最低兼容版本
**数据来源超级管理员在Web端配置的版本信息**
与本地版本号比较
┌── 版本一致 ──▶ 正常使用
┌── 小版本更新(兼容) ──▶ 提示"发现新版本,是否更新?"
│ │
│ 用户确认 → 触发热更新/重启
│ 用户取消 → 继续使用旧版
└── 大版本更新(不兼容) ──▶ 强制更新
提示"版本过低,必须更新"
引导前往微信更新小程序
```
**SDK依赖校验**
- 启动时校验蓝牙SDK、微信SDK等关键依赖版本
- 低于最低兼容版本时提示更新
- 记录SDK版本信息到操作日志便于排查问题
---
## 11. 审批流程(主管视角)
```
收到审批推送(小程序推送通知)
**推送数据来源:系统根据业务规则自动触发**
打开审批中心
查看待审批列表
查看详情 → 通过/驳回
通知申请人
记录审批操作日志
```
**审批场景汇总:**
| 审批场景 | 发起端 | 审批端 | 数据来源 |
|----------|--------|--------|----------|
| 工单延期审批 | 小程序(维修人员申请) | Web+小程序(主管审批) | 小程序端延期申请 |
| 工单分配 | Web+小程序(主管分配) | — | 报修人提交的工单 |
| 工单验收 | Web+小程序(主管/报修人) | — | 维修人员提交的完工 |
| 打卡异常审核 | 小程序(员工申诉) | Web+小程序(主管审核) | 小程序端异常申诉 |
| 数据补录审核 | 小程序(员工补录) | Web+小程序(主管审核) | 小程序端补录申请 |
| 保洁抽查 | 小程序(主管标记) | — | 保洁人员完成的任务 |