# 微信小程序端 — 业务流转逻辑 > 版本: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+小程序(主管审核) | 小程序端补录申请 | | 保洁抽查 | 小程序(主管标记) | — | 保洁人员完成的任务 |