组织架构
模块编码:org
端侧:Web + 小程序(双端)
关联文档:01-模块划分 §3.4 / 02-功能清单-物业公司 §4 / 03-业务流转逻辑-物业公司 §4 / 05-接口规范 §9.2
功能概览
| 项目 |
说明 |
| 菜单名称 |
组织架构 |
| 子菜单 |
班组管理、人员管理、人员分配、排班管理、技能管理、打卡点分配、下属账号管理 |
| 功能编号 |
PR-O-01 ~ PR-O-11 |
| 权限编码前缀 |
org:team:* / org:staff:* |
页面1:班组管理页
页面编号:PR-O-01-P01
端侧归属:Web专属
页面路径:/org/teams
界面布局
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 组织架构 > 班组管理 │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区] │
│ 班组名称[____] 班组类型[▼] 状态[▼] [查询] [重置] │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增班组] │
├──────────────────────────────────────────────────────────────────┤
│ [列表区] │
│ 序号| 班组名称 | 类型 | 班组长 | 人数 | 负责区域 | 状态 | 操作 │
│ 1 | 水电维修班| 维修 | 张三 | 8 | 门诊楼 | 启用 | 编辑 停用│
│ 2 | 巡检一班 | 巡检 | 李四 | 5 | 全院 | 启用 | 编辑 停用│
│ 3 | 保洁早班 | 保洁 | 王五 | 12 | 门诊+住院| 启用 | 编辑 停用│
├──────────────────────────────────────────────────────────────────┤
│ [分页] 共10条 │
└──────────────────────────────────────────────────────────────────┘
表单字段(新增/编辑弹窗)
| 字段名 |
控件类型 |
必填 |
默认值 |
数据来源 |
校验规则 |
| 班组名称 |
文本输入 |
是 |
— |
自填 |
最大30字,同租户唯一 |
| 班组类型 |
下拉单选 |
是 |
— |
字典管理-班组类型 |
维修/巡检/保洁/综合 |
| 班组长 |
下拉单选 |
是 |
— |
人员列表 |
— |
| 负责区域 |
级联多选 |
否 |
— |
区域五级架构 |
— |
| 描述 |
多行文本 |
否 |
— |
自填 |
最大200字 |
操作按钮
| 按钮 |
权限编码 |
位置 |
显示条件 |
说明 |
| 新增班组 |
org:team:create |
操作栏 |
始终 |
— |
| 编辑 |
org:team:update |
行操作 |
始终 |
— |
| 停用 |
org:team:update |
行操作 |
始终 |
有未完成任务时不可停用 |
API端点
| 页面操作 |
API路径 |
方法 |
说明 |
| 列表查询 |
/api/v1/teams |
GET |
— |
| 新增 |
/api/v1/teams |
POST |
— |
| 编辑 |
/api/v1/teams/{id} |
PUT |
— |
页面2:人员管理页
页面编号:PR-O-02-P01
端侧归属:Web专属
页面路径:/org/staffs
查询条件
| 字段名 |
控件类型 |
必填 |
默认值 |
说明 |
| 姓名 |
文本输入 |
否 |
— |
模糊匹配 |
| 所属班组 |
下拉单选 |
否 |
全部 |
— |
| 技能标签 |
下拉多选 |
否 |
全部 |
— |
| 状态 |
下拉单选 |
否 |
全部 |
在职/离职 |
列表字段
| 序号 |
字段名 |
列宽 |
支持排序 |
说明 |
| 1 |
姓名 |
80px |
否 |
— |
| 2 |
手机号 |
120px |
否 |
脱敏显示 |
| 3 |
所属班组 |
120px |
是 |
支持一人多班组,逗号分隔 |
| 4 |
技能标签 |
150px |
否 |
标签样式 |
| 5 |
角色 |
100px |
否 |
下属账号角色 |
| 6 |
状态 |
80px |
是 |
在职/离职 |
| 7 |
操作 |
160px |
— |
编辑/分配/查看排班 |
表单字段(新增/编辑弹窗)
| 字段名 |
控件类型 |
必填 |
默认值 |
数据来源 |
校验规则 |
| 姓名 |
文本输入 |
是 |
— |
自填 |
最大20字 |
| 手机号 |
文本输入 |
是 |
— |
自填 |
手机号格式 |
| 所属班组 |
下拉多选 |
是 |
— |
班组列表 |
支持一人多班组 |
| 技能标签 |
下拉多选 |
否 |
— |
技能管理 |
— |
| 入职日期 |
日期选择 |
否 |
— |
自填 |
— |
操作按钮
| 按钮 |
权限编码 |
位置 |
显示条件 |
说明 |
| 新增人员 |
org:staff:create |
操作栏 |
始终 |
— |
| 编辑 |
org:staff:update |
行操作 |
始终 |
— |
| 分配 |
org:staff:update |
行操作 |
始终 |
分配到班组/区域 |
API端点
| 页面操作 |
API路径 |
方法 |
说明 |
| 列表查询 |
/api/v1/staffs |
GET |
— |
| 新增 |
/api/v1/staffs |
POST |
— |
| 编辑 |
/api/v1/staffs/{id} |
PUT |
— |
页面3:排班管理页
页面编号:PR-O-04-P01
端侧归属:Web专属
页面路径:/org/schedules
界面布局
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 组织架构 > 排班管理 │
├──────────────────────────────────────────────────────────────────┤
│ [视图切换] 📅周视图 📆月视图 班组:[▼] [◀ 本周 ▶] │
├──────────────────────────────────────────────────────────────────┤
│ [周视图] │
│ 人员 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周日│
│ 张三 | 早班 | 早班 | 晚班 | 早班 | 早班 | 休息 | 休息│
│ 李四 | 晚班 | 晚班 | 早班 | 晚班 | 晚班 | 休息 | 休息│
├──────────────────────────────────────────────────────────────────┤
│ [操作] [保存] [批量排班] [模板排班] [导出] │
└──────────────────────────────────────────────────────────────────┘
操作按钮
| 按钮 |
权限编码 |
位置 |
显示条件 |
说明 |
| 批量排班 |
org:team:create |
操作栏 |
始终 |
选择多人同一班次 |
| 模板排班 |
org:team:create |
操作栏 |
始终 |
从已有模板加载 |
| 保存 |
org:team:update |
操作栏 |
始终 |
— |
| 导出 |
org:team:export |
操作栏 |
始终 |
导出排班表 |
API端点
| 页面操作 |
API路径 |
方法 |
说明 |
| 排班查询 |
/api/v1/team-schedules |
GET |
— |
| 保存 |
/api/v1/team-schedules/batch |
POST |
— |
页面4:技能管理页
页面编号:PR-O-05-P01
端侧归属:Web专属
页面路径:/org/skills
列表字段
| 序号 |
字段名 |
列宽 |
支持排序 |
说明 |
| 1 |
技能名称 |
150px |
否 |
如:水电维修、空调维修 |
| 2 |
关联班组 |
150px |
否 |
使用该技能的班组 |
| 3 |
持有人员数 |
100px |
是 |
— |
| 4 |
操作 |
100px |
— |
编辑/删除 |
表单字段(新增/编辑弹窗)
| 字段名 |
控件类型 |
必填 |
默认值 |
数据来源 |
校验规则 |
| 技能名称 |
文本输入 |
是 |
— |
自填 |
最大30字,同租户唯一 |
| 关联班组 |
下拉多选 |
否 |
— |
班组列表 |
— |
| 描述 |
多行文本 |
否 |
— |
自填 |
最大200字 |
页面5:打卡点分配页
页面编号:PR-O-06-P01
端侧归属:Web专属
页面路径:/org/check-in-points
列表字段
| 序号 |
字段名 |
列宽 |
支持排序 |
说明 |
| 1 |
班组 |
120px |
否 |
— |
| 2 |
打卡点名称 |
150px |
否 |
— |
| 3 |
位置 |
150px |
否 |
— |
| 4 |
蓝牙Beacon |
120px |
否 |
— |
| 5 |
适用角色 |
100px |
否 |
全部/主管/员工 |
| 6 |
操作 |
100px |
— |
编辑/删除 |
表单字段(新增/编辑弹窗)
| 字段名 |
控件类型 |
必填 |
默认值 |
数据来源 |
校验规则 |
| 打卡点名称 |
文本输入 |
是 |
— |
自填 |
最大30字 |
| 适用班组 |
下拉单选 |
是 |
— |
班组列表 |
— |
| 位置描述 |
文本输入 |
是 |
— |
自填 |
— |
| 蓝牙Beacon |
下拉单选 |
是 |
— |
蓝牙设备管理 |
— |
| 适用角色 |
下拉多选 |
是 |
全部 |
固定选项 |
— |
页面6:下属账号管理页
页面编号:PR-O-07-P01
端侧归属:Web专属
页面路径:/org/subordinates
界面布局
┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 组织架构 > 下属账号管理 │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区] │
│ 姓名[____] 班组[▼] 角色[▼] 状态[▼] [查询] [重置] │
├──────────────────────────────────────────────────────────────────┤
│ [操作栏] [新增下属] [批量分配角色] [批量启停] │
├──────────────────────────────────────────────────────────────────┤
│ [列表区] │
│ ☐| 姓名 | 手机号 | 班组 | 角色 | 状态 | 操作 │
│ ☐| 张三 | 138****12| 水电班 | 主管 | 启用 | 编辑 角色 权限 启停│
│ ☐| 李四 | 139****34| 水电班 | 维修员 | 启用 | 编辑 角色 权限 启停│
├──────────────────────────────────────────────────────────────────┤
│ [分页] 共50条 每页[20▼] < 1 2 3 > │
└──────────────────────────────────────────────────────────────────┘
查询条件
| 字段名 |
控件类型 |
必填 |
默认值 |
说明 |
| 姓名 |
文本输入 |
否 |
— |
模糊匹配 |
| 班组 |
下拉单选 |
否 |
全部 |
— |
| 角色 |
下拉单选 |
否 |
全部 |
数据来源:超管定义的角色 |
| 状态 |
下拉单选 |
否 |
全部 |
启用/禁用 |
列表字段
| 序号 |
字段名 |
列宽 |
支持排序 |
说明 |
| 1 |
☐勾选 |
40px |
— |
批量操作用 |
| 2 |
姓名 |
80px |
否 |
— |
| 3 |
手机号 |
120px |
否 |
脱敏 |
| 4 |
所属班组 |
120px |
是 |
— |
| 5 |
角色 |
120px |
否 |
— |
| 6 |
数据权限 |
100px |
否 |
本班组/指定区域 |
| 7 |
状态 |
80px |
是 |
— |
| 8 |
操作 |
220px |
— |
编辑/分配角色/权限覆盖/启停 |
操作按钮
| 按钮 |
权限编码 |
位置 |
显示条件 |
说明 |
| 新增下属 |
org:staff:create |
操作栏 |
始终 |
弹窗 |
| 批量分配角色 |
permission:user:update |
操作栏 |
勾选≥1条 |
弹窗选择角色 |
| 批量启停 |
org:staff:update |
操作栏 |
勾选≥1条 |
二次确认 |
| 编辑 |
org:staff:update |
行操作 |
始终 |
— |
| 分配角色 |
permission:user:update |
行操作 |
始终 |
选择角色 |
| 权限覆盖 |
permission:user:update |
行操作 |
始终 |
在角色基础上自定义权限(四级树形) |
| 启停 |
org:staff:update |
行操作 |
始终 |
二次确认 |
新增下属弹窗
| 字段名 |
控件类型 |
必填 |
默认值 |
数据来源 |
校验规则 |
| 姓名 |
文本输入 |
是 |
— |
自填 |
最大20字 |
| 手机号 |
文本输入 |
是 |
— |
自填 |
手机号格式 |
| 所属班组 |
下拉多选 |
是 |
— |
班组列表 |
— |
| 分配角色 |
下拉单选 |
是 |
— |
超管定义的角色列表 |
— |
| 是否自定义权限 |
开关 |
否 |
否 |
— |
开启后显示四级权限树 |
| 数据权限范围 |
下拉单选 |
是 |
本班组 |
固定选项 |
本班组/指定区域 |
通知触发
| 触发操作 |
通知对象 |
通知方式 |
消息模板 |
文档来源 |
| 下属账号创建 |
下属人员 |
小程序推送 |
账号开通通知 |
03-物业公司 §4 |
| 角色变更 |
下属人员 |
Redis Pub/Sub |
权限实时生效 |
03-物业公司 §4 |
| 账号禁用 |
下属人员 |
— |
session失效+小程序下线 |
03-物业公司 §4 |
API端点
| 页面操作 |
API路径 |
方法 |
说明 |
| 列表查询 |
/api/v1/subordinates |
GET |
— |
| 新增 |
/api/v1/subordinates |
POST |
— |
| 分配角色 |
/api/v1/subordinates/{id}/assign-role |
PUT |
— |
| 权限覆盖 |
/api/v1/subordinates/{id}/override-permissions |
PUT |
四级树形权限 |
| 批量操作 |
/api/v1/subordinates/batch |
POST |
批量启停/分配角色 |
需求追溯
| 功能点编号 |
功能名称 |
文档来源 |
后续服务 |
关联功能 |
| PR-O-01 |
班组管理 |
02-物业公司 §4 |
班组→人员分配→排班 |
巡检管理(巡检班组) / 保洁管理(保洁班组) |
| PR-O-02 |
人员管理 |
02-物业公司 §4 |
人员→技能标签→工单分配 |
在线报修(维修人员) |
| PR-O-03 |
人员分配 |
02-物业公司 §4 |
分配→班组关联 |
班组管理 / 技能管理 |
| PR-O-04 |
排班管理 |
02-物业公司 §4 |
排班→保洁任务生成 |
保洁管理(排班) / 小程序端我的排班(MP-OR-02) |
| PR-O-05 |
技能管理 |
02-物业公司 §4 |
技能→工单自动分配依据 |
在线报修(自动分配) |
| PR-O-06 |
打卡点分配 |
02-物业公司 §4 |
打卡点→考勤蓝牙绑定 |
考勤打卡(打卡点管理) / 系统配置(蓝牙设备) |
| PR-O-07 |
下属账号管理 |
02-物业公司 §4 / 03-物业公司 §4 |
创建下属→分配角色→权限覆盖 |
超管权限管理(角色定义) |
| PR-O-08 |
下属角色分配 |
02-物业公司 §4 |
选择超管定义的角色→分配 |
超管权限管理(角色管理) |
| PR-O-09 |
下属权限覆盖 |
02-物业公司 §4 / 03-物业公司 §4 |
在角色基础上调整权限(四级树形) |
超管权限管理(权限分配) |
| PR-O-10 |
下属批量操作 |
02-物业公司 §4 |
批量启停/分配角色 |
— |
| PR-O-11 |
下属数据权限 |
02-物业公司 §4 / 01 §1.3 |
设置数据可见范围 |
数据权限校验 |
业务规则
- 一人多班组:支持一个人员属于多个班组(来源:02-物业公司 PR-O-02)
- 下属角色来源于超管:物业公司管理员从超管定义的角色中选择,分配给下属(来源:03-物业公司 §4 / 01 §8.4)
- 权限覆盖:可在角色权限基础上自定义调整,使用四级树形勾选(来源:03-物业公司 §4)
- 下属不单独设有效期:随物业公司管理员账号到期而自动失效(来源:01 §1.4)
- 数据权限:主管仅看本班组数据,员工仅看本人数据(来源:01 §1.3)
- 权限实时生效:角色/权限变更后毫秒级生效,无需重新登录(来源:01 §8.3)
- 操作日志:下属创建、角色分配、权限覆盖均记录审计日志(来源:06 §4.5)