# 组织架构 > 模块编码: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 | 设置数据可见范围 | 数据权限校验 | ## 业务规则 1. **一人多班组**:支持一个人员属于多个班组(来源:02-物业公司 PR-O-02) 2. **下属角色来源于超管**:物业公司管理员从超管定义的角色中选择,分配给下属(来源:03-物业公司 §4 / 01 §8.4) 3. **权限覆盖**:可在角色权限基础上自定义调整,使用四级树形勾选(来源:03-物业公司 §4) 4. **下属不单独设有效期**:随物业公司管理员账号到期而自动失效(来源:01 §1.4) 5. **数据权限**:主管仅看本班组数据,员工仅看本人数据(来源:01 §1.3) 6. **权限实时生效**:角色/权限变更后毫秒级生效,无需重新登录(来源:01 §8.3) 7. **操作日志**:下属创建、角色分配、权限覆盖均记录审计日志(来源:06 §4.5)