|
|
# 系统配置
|
|
|
|
|
|
> 模块编码:system
|
|
|
> 端侧:Web专属
|
|
|
> 关联文档:01-模块划分 §3.9 / 02-功能清单-物业公司 §9 / 03-业务流转逻辑-物业公司 §9 / 05-接口规范 §9.2 / 06-项目技术要求 §4.4
|
|
|
|
|
|
## 功能概览
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 菜单名称 | 系统配置 |
|
|
|
| 子菜单 | 蓝牙设备管理、字典管理、微信配置、消息模板、数据补录审核 |
|
|
|
| 功能编号 | PR-S-01 ~ PR-S-05 |
|
|
|
| 权限编码前缀 | device:beacon:* / system:dict:* / system:wechat:* / system:template:* / system:bluetooth-policy:* |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面1:蓝牙设备管理页
|
|
|
|
|
|
**页面编号**:PR-S-01-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/system/beacons
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 系统配置 > 蓝牙设备管理 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [查询条件区] │
|
|
|
│ Beacon名称[____] 状态[▼] 绑定位置[____] [查询] [重置] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [操作栏] [新增Beacon] │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [列表区] │
|
|
|
│ 序号| 名称 | UUID | 绑定位置 | 状态 | 电量 | 最后心跳 │
|
|
|
│ 1 | B-001 | xxxx-xxxx... | 门诊1层 | 在线 | 85% | 10:30 │
|
|
|
│ 2 | B-002 | xxxx-xxxx... | 住院1层 | 离线 | 12% | 08:15 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [分页] 共30条 每页[20▼] < 1 2 > │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 查询条件
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 说明 |
|
|
|
|--------|----------|------|--------|------|
|
|
|
| Beacon名称 | 文本输入 | 否 | — | 模糊匹配 |
|
|
|
| 状态 | 下拉单选 | 否 | 全部 | 在线/离线 |
|
|
|
| 绑定位置 | 文本输入 | 否 | — | 模糊匹配 |
|
|
|
|
|
|
### 列表字段
|
|
|
|
|
|
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|
|
|
|------|--------|------|----------|------|
|
|
|
| 1 | 名称 | 100px | 否 | — |
|
|
|
| 2 | UUID | 180px | 否 | — |
|
|
|
| 3 | 绑定位置 | 150px | 否 | 巡检点位/保洁区域/打卡点 |
|
|
|
| 4 | 绑定模块 | 80px | 否 | 巡检/保洁/考勤 |
|
|
|
| 5 | 状态 | 80px | 是 | 在线(绿)/离线(红) |
|
|
|
| 6 | 电量 | 70px | 是 | <20%=红色低电量 |
|
|
|
| 7 | 最后心跳时间 | 140px | 是 | 超过15分钟=离线 |
|
|
|
| 8 | 操作 | 120px | — | 编辑/解绑/删除 |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 新增Beacon | device:beacon:create | 操作栏 | 始终 | — |
|
|
|
| 编辑 | device:beacon:update | 行操作 | 始终 | — |
|
|
|
| 解绑 | device:beacon:update | 行操作 | 已绑定 | — |
|
|
|
| 删除 | device:beacon:delete | 行操作 | 未绑定时 | 二次确认 |
|
|
|
|
|
|
### 表单字段(新增/编辑弹窗)
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|
|
|
|--------|----------|------|--------|----------|----------|
|
|
|
| Beacon名称 | 文本输入 | 是 | — | 自填 | 最大30字 |
|
|
|
| UUID | 文本输入 | 是 | — | 自填 | UUID格式 |
|
|
|
| 绑定位置 | 级联选择 | 否 | — | 区域树 | — |
|
|
|
| 绑定模块 | 下拉单选 | 否 | — | 固定选项 | 巡检/保洁/考勤 |
|
|
|
| 电量预警阈值(%) | 数字输入 | 否 | 20 | — | 0~100 |
|
|
|
|
|
|
### 通知触发
|
|
|
|
|
|
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|
|
|
|----------|----------|----------|----------|----------|
|
|
|
| Beacon离线(>15分钟) | 物业管理员 | 系统内通知 | Beacon离线预警 | 05 §5.2 (BEACON_OFFLINE) / 06 §5.4 |
|
|
|
| Beacon低电量(<20%) | 物业管理员 | 系统内通知 | Beacon低电量预警 | 05 §5.2 (BEACON_LOW_BATTERY) |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 列表查询 | /api/v1/beacons | GET | — |
|
|
|
| 新增 | /api/v1/beacons | POST | — |
|
|
|
| 编辑 | /api/v1/beacons/{id} | PUT | — |
|
|
|
| 解绑 | /api/v1/beacons/{id}/unbind | PUT | — |
|
|
|
| 删除 | /api/v1/beacons/{id} | DELETE | — |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面2:字典管理页
|
|
|
|
|
|
**页面编号**:PR-S-02-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/system/dicts
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 系统配置 > 字典管理 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [左侧-字典类型] │ [右侧-字典值] │
|
|
|
│ ┌──────────────┐ │ ┌──────────────────────────────────────┐ │
|
|
|
│ │ 报修类型 │◀── │ 序号 | 字典值 | 排序 | 状态 | 操作 │ │
|
|
|
│ │ 巡检类型 │ │ 1 | 水电 | 1 | 启用 | 编辑 停用│ │
|
|
|
│ │ 保洁类型 │ │ 2 | 木工 | 2 | 启用 | 编辑 停用│ │
|
|
|
│ │ 班组类型 │ │ 3 | 空调 | 3 | 停用 | 编辑 启用│ │
|
|
|
│ │ 班次类型 │ │ │ │
|
|
|
│ │ [新增类型] │ │ [新增字典值] │ │
|
|
|
│ └──────────────┘ │ └──────────────────────────────────────┘ │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 新增字典类型 | system:dict:create | 左侧 | 始终 | — |
|
|
|
| 新增字典值 | system:dict:create | 右侧 | 始终 | — |
|
|
|
| 编辑 | system:dict:update | 行操作 | 始终 | — |
|
|
|
| 启用/停用 | system:dict:update | 行操作 | 始终 | 被引用时不可停用 |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 字典类型列表 | /api/v1/dict-types | GET | — |
|
|
|
| 字典值列表 | /api/v1/dict-types/{typeCode}/values | GET | — |
|
|
|
| 新增类型 | /api/v1/dict-types | POST | — |
|
|
|
| 新增值 | /api/v1/dict-types/{typeCode}/values | POST | — |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面3:微信配置页
|
|
|
|
|
|
**页面编号**:PR-S-03-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/system/wechat
|
|
|
|
|
|
### 表单字段
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|
|
|
|--------|----------|------|--------|----------|----------|
|
|
|
| 小程序AppID | 文本输入 | 是 | — | 微信公众平台 | — |
|
|
|
| 小程序AppSecret | 密码输入 | 是 | — | 微信公众平台 | — |
|
|
|
| 公众号AppID | 文本输入 | 否 | — | 微信公众平台 | — |
|
|
|
| 公众号AppSecret | 密码输入 | 否 | — | 微信公众平台 | — |
|
|
|
| 服务器地址(URL) | 文本输入 | 是 | — | 自填 | URL格式 |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 保存 | system:wechat:update | 底部 | 始终 | — |
|
|
|
| 测试连接 | system:wechat:view | 底部 | 始终 | 验证配置是否正确 |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 查询配置 | /api/v1/system/wechat-config | GET | — |
|
|
|
| 保存 | /api/v1/system/wechat-config | PUT | — |
|
|
|
| 测试连接 | /api/v1/system/wechat-config/test | POST | — |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面4:消息模板管理页
|
|
|
|
|
|
**页面编号**:PR-S-04-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/system/message-templates
|
|
|
|
|
|
### 列表字段
|
|
|
|
|
|
| 序号 | 字段名 | 列宽 | 支持排序 | 说明 |
|
|
|
|------|--------|------|----------|------|
|
|
|
| 1 | 模板名称 | 150px | 否 | 如:新工单通知 |
|
|
|
| 2 | 模板ID | 150px | 否 | 微信模板消息ID |
|
|
|
| 3 | 适用场景 | 120px | 否 | 工单分配/催单/审批/超时... |
|
|
|
| 4 | 模板变量 | 200px | 否 | {{工单号}}, {{人员姓名}}... |
|
|
|
| 5 | 状态 | 80px | 否 | 启用/停用 |
|
|
|
| 6 | 操作 | 100px | — | 编辑 |
|
|
|
|
|
|
### 表单字段(编辑弹窗)
|
|
|
|
|
|
| 字段名 | 控件类型 | 必填 | 默认值 | 数据来源 | 校验规则 |
|
|
|
|--------|----------|------|--------|----------|----------|
|
|
|
| 模板名称 | 文本输入 | 是 | — | 自填 | 最大50字 |
|
|
|
| 模板ID | 文本输入 | 是 | — | 微信后台 | — |
|
|
|
| 适用场景 | 下拉单选 | 是 | — | 固定选项 | — |
|
|
|
| 模板内容 | 多行文本 | 是 | — | 微信后台复制 | 最大500字 |
|
|
|
| 模板变量说明 | 多行文本 | 否 | — | 自填 | — |
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 列表查询 | /api/v1/message-templates | GET | — |
|
|
|
| 编辑 | /api/v1/message-templates/{id} | PUT | — |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面5:蓝牙策略配置页
|
|
|
|
|
|
**页面编号**:PR-S-05-P01(含数据补录审核)
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/system/bluetooth-policy
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 系统配置 > 蓝牙策略配置 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [策略配置] │
|
|
|
│ ┌────────────────────────────────────────────────────────────┐ │
|
|
|
│ │ 场景 │ 策略 │ 说明 │ │
|
|
|
│ │ 巡检打卡 │ [▼REQUIRED]│ 必须连接Beacon打卡 │ │
|
|
|
│ │ 巡检拍照 │ [▼OPTIONAL]│ 可自由拍照 │ │
|
|
|
│ │ 保洁打卡 │ [▼REQUIRED]│ 必须连接Beacon打卡 │ │
|
|
|
│ │ 保洁拍照 │ [▼OPTIONAL]│ 可自由拍照 │ │
|
|
|
│ │ 考勤打卡 │ [▼REQUIRED]│ 必须连接Beacon打卡 │ │
|
|
|
│ └────────────────────────────────────────────────────────────┘ │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [保存] [提交审核] │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 策略配置说明
|
|
|
|
|
|
| 场景 | 配置项 | 强制蓝牙(REQUIRED) | 非强制(OPTIONAL) | 文档来源 |
|
|
|
|------|--------|-------------------|------------------|----------|
|
|
|
| 巡检打卡 | inspection_check_in | 必须连接Beacon打卡,失败进补录 | 可手动打卡 | 06 §4.4 |
|
|
|
| 巡检拍照 | inspection_photo | 必须在蓝牙连接下拍照 | 可自由拍照 | 06 §4.4 |
|
|
|
| 保洁打卡 | cleaning_check_in | 必须连接Beacon打卡,失败进补录 | 可手动打卡 | 06 §4.4 |
|
|
|
| 保洁拍照 | cleaning_photo | 必须在蓝牙连接下拍照 | 可自由拍照 | 06 §4.4 |
|
|
|
| 考勤打卡 | attendance_check | 必须连接Beacon打卡,失败提交异常申诉 | 可手动打卡 | 06 §4.4 |
|
|
|
|
|
|
### 操作按钮
|
|
|
|
|
|
| 按钮 | 权限编码 | 位置 | 显示条件 | 说明 |
|
|
|
|------|----------|------|----------|------|
|
|
|
| 保存 | system:bluetooth-policy:update | 底部 | 始终 | 保存草稿 |
|
|
|
| 提交审核 | system:bluetooth-policy:approve | 底部 | 始终 | 提交医院账号审核 |
|
|
|
|
|
|
### 通知触发
|
|
|
|
|
|
| 触发操作 | 通知对象 | 通知方式 | 消息模板 | 文档来源 |
|
|
|
|----------|----------|----------|----------|----------|
|
|
|
| 策略提交审核 | 医院账号 | Web提醒 | 蓝牙策略变更审核 | 06 §4.4 |
|
|
|
| 审核通过 | 物业管理员 | 系统内通知 | 蓝牙策略已生效 | 06 §4.4 |
|
|
|
| 审核拒绝 | 物业管理员 | 系统内通知 | 蓝牙策略审核被拒绝 | 06 §4.4 |
|
|
|
|
|
|
### 审核流程
|
|
|
|
|
|
```
|
|
|
物业公司配置策略 → 提交审核 → 医院账号审核
|
|
|
│
|
|
|
┌──审核通过──┐ ┌──审核拒绝──┐
|
|
|
策略生效 维持原配置
|
|
|
通知物业 通知物业
|
|
|
```
|
|
|
|
|
|
### API端点
|
|
|
|
|
|
| 页面操作 | API路径 | 方法 | 说明 |
|
|
|
|----------|---------|------|------|
|
|
|
| 查询策略 | /api/v1/system/bluetooth-policy | GET | — |
|
|
|
| 保存 | /api/v1/system/bluetooth-policy | PUT | — |
|
|
|
| 提交审核 | /api/v1/system/bluetooth-policy/submit | POST | — |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 需求追溯
|
|
|
|
|
|
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|
|
|
|------------|----------|----------|----------|----------|
|
|
|
| PR-S-01 | 蓝牙设备管理 | 02-物业公司 §9 / 03-物业公司 §9.1 | Beacon→绑定位置→打卡 | 巡检区域管理 / 保洁区域管理 / 考勤打卡点 |
|
|
|
| PR-S-02 | 字典管理 | 02-物业公司 §9 / 03-物业公司 §9.2 | 字典→各模块下拉选项 | 报修类型管理 / 巡检类型 / 保洁类型 |
|
|
|
| PR-S-03 | 微信配置 | 02-物业公司 §9 | 配置→小程序登录+推送 | 小程序端(登录/通知) |
|
|
|
| PR-S-04 | 消息模板 | 02-物业公司 §9 / 03-物业公司 §9.3 | 模板→微信推送消息 | 通知机制 |
|
|
|
| PR-S-05 | 数据补录审核 | 02-物业公司 §9 | 审核→补录数据生效 | 巡检/保洁/考勤补录 |
|
|
|
|
|
|
## 业务规则
|
|
|
|
|
|
1. **Beacon心跳检测**:每5分钟上报心跳,超过15分钟标记OFFLINE(来源:06 §5.4)
|
|
|
2. **Beacon电量预警**:电量<20%时系统内通知预警(来源:06 §5.4 / 05 §5.2)
|
|
|
3. **字典租户隔离**:字典数据仅对本物业公司(租户)可见(来源:03-物业公司 §9.2)
|
|
|
4. **蓝牙策略审核**:物业公司提交配置→医院账号审核通过后生效,审核拒绝则维持原配置(来源:06 §4.4)
|
|
|
5. **蓝牙打卡判定**:不判断距离,只要成功连接蓝牙设备即可打卡,RSSI > -70dBm(来源:06 §5.4)
|
|
|
6. **消息模板变量**:支持自定义模板变量(工单号、人员姓名、时间等)(来源:03-物业公司 §9.3)
|