Skip to content

15. 资质与排班 ​

15.0 快速上手:10 分钟完成从资质录入到排班发布 ​

你是一名运维主管,需要为电工团队录入资质证书,配置班次模板,并编排本月的值班表。以下步骤带你完成从资质管理到排班发布的全链路。

Step 1:录入人员资质证书 → 详见 §15.3.2 ​

进入「人员管理」→「资质证书」页面 → 点击「添加证书」→ 选择用户 → 填写证书名称、编号、类型(电气资质)、发证机构、发证日期与到期日期 → 上传证书扫描件 → 点击确定。

Step 2:查看即将到期的证书 → 详见 §15.3.3 ​

切换到「即将到期」Tab → 系统自动列出 90 天内到期的所有证书 → 到期 7 天内的红色标记、30 天内的橙色标记。

Step 3:创建班次模板 → 详见 §15.4.2 ​

进入「人员管理」→「班次模板」页面 → 点击「新建模板」→ 填写名称(如"早班")、起止时间(08:00-16:00)、颜色(蓝色)、所需资质(电气资质)→ 保存。

Step 4:编排排班表 → 详见 §15.5.2 ​

进入「人员管理」→「排班管理」页面 → 选择部门与月份 → 在月视图表格中逐格点击编辑或使用「批量排班」按星期模式自动填充 → 校验面板实时提示冲突/资质缺失/覆盖率不足等问题。

Step 5:发布排班 → 详见 §15.5.7 ​

确认排班无误后 → 点击「发布」按钮 → 系统锁定当月排班并生成版本号 → 相关人员收到通知。

Step 6:查看我的排班 → 详见 §15.5.11 ​

员工登录后进入「我的排班」→ 以 FullCalendar 日历形式查看个人当月班次 → 支持拖拽调整个人班次时间(需权限)。

💡 完成以上步骤后,你已完成「录入资质 → 配置模板 → 编排排班 → 发布 → 个人查看」的完整人员管理链路。


15.1 功能概述 ​

本章介绍「人员管理」菜单组下的四个子页面。资质与排班模块是设备运维系统的核心人员能力保障与调度中心,确保「合适的人、在合适的时间、具备合适的资质」上岗:

子页面定位核心功能
资质证书人员资质全生命周期管理证书 CRUD、附件上传(扫描件)、多类型分类(安全/电气/特种设备/专业/其他)、到期统计、即将到期预警
班次模板班次标准化定义模板 CRUD、起止时间与颜色配置、所需资质类型绑定、加班/节假日标记、部门授权矩阵
排班管理排班编排与发布月视图(表格+日历)/ 周视图 / 日视图、单元格点击编辑 / 右键菜单 / 拖拽换班、批量排班、批量改班、资质实时校验、冲突检测、覆盖率热力图、发布/撤回、Excel 导出、变更历史
我的排班个人排班查看与自助调整FullCalendar 日历视图、按月份查看个人班次、自助调整班次时间(需权限)、换班申请、请假申请

架构说明 ​

  • 后端:基于 FastAPI 的 REST API,排班数据按租户库级隔离
  • 前端:Vue 3 组合式模块(shift-schedule.js / certification-management.js),多个 Tab 统一在一个视图中切换
  • 日历组件:FullCalendar v6(MIT)用于「我的排班」日历视图
  • 校验引擎:前后端双重校验(资质缺失 / 时间冲突 / 最小休息间隔 / 覆盖率不足),编辑时实时防抖校验(300ms)
  • 撤销/重做:Ctrl+Z / Ctrl+Y 内存命令栈(前端,最多 50 步,刷新后清空)
  • 资质到期预警:定时任务自动扫描即将到期证书,30 天内到期标记为 expiring_soon(系统内触发通知的具体阈值与频率参见调度配置)

15.2 页面入口 ​

  • PC端:左侧菜单「人员管理 👥」→ 四个子菜单(需要对应权限,按权限可见)
    • 「资质证书 📜」:需要 certification:view 权限
    • 「班次模板 🕘」:需要 shift_template:view 或 shift_schedule:view 权限(向后兼容)
    • 「排班管理 📅」:需要 shift_schedule:view 权限
    • 「我的排班 🗓️」:需要 shift_schedule:my_view 权限
  • 排班与点检联动:排班数据可为工单/点检模块的执行人筛选提供参考
  • 资质到期通知:系统自动向证书持有人及部门主管推送到期提醒通知

15.3 PC端 - 资质证书 ​

15.3.1 页面布局 ​

资质证书页面采用上下布局,包含两个 Tab:

  1. 「用户证书」Tab:
    • 统计概览条:总数 / 有效数(绿色)/ 即将到期数(橙色)/ 已过期数(红色)
    • 筛选控栏:用户筛选下拉(支持搜索)、「添加证书」按钮
    • 证书列表表格(8 列):
      • 列:用户、证书名称、证书编号、类型、发证机构、到期日期、状态(颜色标签)、操作
      • 操作列(按权限显示):编辑、删除;点击操作列可进入附件抽屉查看/管理证书扫描件
  2. 「即将到期」Tab:
    • 列出 90 天内到期的所有证书
    • 列:用户、证书名称、到期日期、剩余天数(颜色标签)、状态

PC端资质证书-用户证书

PC端资质证书-即将到期

15.3.2 添加/编辑证书 ​

点击「添加证书」按钮(需要 certification:manage 权限)→ 弹出证书编辑弹窗:

基本信息区:

字段说明必填
用户下拉选择用户(编辑模式下不可修改)是
证书名称证书名称,如「高压电工作业证」是
证书编号证书唯一编号否
证书类型下拉选择:安全资质 / 电气资质 / 特种设备 / 专业资质 / 其他是
发证机构证书颁发机构名称否

有效期区:

字段说明必填
发证日期证书颁发日期否
到期日期证书有效期截止日期否
备注附加说明文字否

附件区:

  • 支持上传证书扫描件(图片或 PDF)
  • 已上传附件显示缩略图 + 文件名,点击预览/下载
  • 新增模式下附件暂存,保存证书后自动上传
  • 编辑模式下附件实时上传/删除

PC端资质证书-编辑弹窗

15.3.3 查看即将到期证书 ​

切换到「即将到期」Tab → 系统自动加载 90 天内到期的所有证书:

剩余天数标签颜色说明
≤ 7 天红色紧急,需立即处理
8 ~ 30 天橙色预警,需近期安排续证
31 ~ 90 天默认色关注,可提前准备

15.3.4 附件管理 ​

在证书详情或列表中可以进行附件操作:

  • 查看附件:在操作列中点击附件入口 → 打开附件抽屉,列出该证书下所有附件
  • 预览:图片格式附件点击预览弹窗查看原图,PDF 附件通过浏览器内置查看器打开
  • 上传:编辑模式下通过拖拽或点击上传按钮添加附件
  • 删除:编辑模式下每个附件旁有删除按钮

15.3.5 删除证书 ​

点击证书列表操作列的「删除」按钮 → 弹出确认提示 → 确认后删除证书及其关联附件。需要 certification:manage 权限。


15.4 PC端 - 班次模板 ​

15.4.1 页面布局 ​

班次模板页面包含两个 Tab:

  • 「模板列表」Tab:
    • 顶部操作栏:部门树形选择器 + 搜索框 +「新建模板」按钮
    • 模板列表表格(9 列):名称(含颜色圆点)、时间(含跨夜标签)、类别、归属部门、适用部门(最多显示 2 个,超出显示"+N"可展开)、最少人数、所需资质、启用(✓/✗)、操作(编辑/删除)
    • 点击行展开可查看完整的适用部门列表
  • 「授权矩阵」Tab:部门 × 模板 的授权矩阵(§15.4.3)

PC端班次模板-模板列表

15.4.2 创建/编辑模板 ​

点击「新建模板」按钮 → 弹出模板弹窗:

字段说明必填
名称模板显示名称,如「早班」「中班」「晚班」是
开始时间班次开始时间(HH:mm)是
结束时间班次结束时间(HH:mm,允许跨天,如次日 06:00)是
颜色班次在日历/排班表中的显示颜色是
归属部门模板所属部门(留空=全局模板,所有部门可用;有值=该部门为负责维护方)否
适用部门额外授权使用本模板的部门(归属部门自动可用,无需重复勾选;留空=不额外授权)否
类别白班(day) / 晚班(evening) / 夜班(night) / 加班(overtime) / 休息(rest)是
所需人数该班次最低人数要求(用于覆盖率告警)否
所需资质多选资质类型(空=无资质要求),用于排班校验否
加班模板开关,标记为加班模板,影响出勤统计否
启用开关,控制该模板是否在排班下拉中可选(默认启用)否

💡 跨天夜班:当结束时间早于开始时间(如 22:00-次日 06:00),系统自动标记为跨天班次,在周视图和日视图中跨零点显示。

PC端班次模板-编辑弹窗

15.4.3 模板授权矩阵 ​

每个模板可配置授权部门(bound departments),控制该模板在哪些部门可用:

  • 在模板编辑弹窗中设置「所属部门」列表
  • 支持批量保存:一次提交多个模板的部门授权变更
  • 选择器降级接口(/options)仅需登录即可访问,确保排班页下拉始终有数据

PC端班次模板-授权矩阵

15.4.4 删除模板 ​

点击模板列表操作列的「删除」按钮 → 弹出确认提示 → 确认后删除。需要 shift_template:manage 或 shift_schedule:manage 权限。


15.5 PC端 - 排班管理 ​

15.5.1 页面布局 ​

排班管理是本章最核心的页面,从上到下分为:

  1. 顶部工具栏:

    • 标题 + 版本状态徽标(草稿/已发布 v1)
    • 多选计数徽标(批量改班入口)
    • 部门树形选择器
    • 时间导航(月份/周/日 前后切换)
    • 撤销/重做按钮(Ctrl+Z / Ctrl+Y)
    • 批量排班 / 发布 / 撤回 / 复制到其他部门 / 导出 Excel
    • 「含下级部门」复选框(只读汇总模式)
  2. 校验提示面板(可折叠):

    • 级别筛选徽标:错误 / 警告 / 提示(点选切换过滤)
    • 搜索框:按日期/姓名/类型搜索
    • 校验规则设置按钮
    • 紧凑行列表:日期、姓名、问题类型、说明
  3. 视图切换 Tab:[ 月(表格) | 周 | 日 | 统计(需权限)| 历史 ]

⚠️ 注:我的排班(独立菜单 my-schedule)和班次模板(独立菜单 shift-template)已从排班管理页面 Tab 中拆分为独立页面入口,不再以 Tab 形式嵌套在此。

  1. 内容区域:根据当前 Tab 渲染不同视图

PC端排班管理-月视图

PC端排班管理-校验面板

15.5.2 月视图(表格式)— 编辑主界面 ​

月视图以人员×日期的网格表格展示排班情况:

  • 行:部门人员(按姓名拼音排序),显示用户名称
  • 列:当月的每一天(1~31),日期数字为表头,周六日高亮
  • 右侧汇总列:出勤班次 / 请假天数 / 加班班次
  • 单元格颜色:
    • 各色块 = 对应班次模板颜色
    • 灰色 = 请假(leave)
    • 粉色高亮 = 换班(swapped)
    • 红色边框高亮 = 存在校验错误
    • 橙色边框高亮 = 存在校验警告
    • 蓝色虚线边框 = 被选中(多选模式)
    • 蓝色框选范围 = marquee 拖拽选区

方案B:同日多班次 — 每人每天允许排多个班次,单元格内垂直排列多达 3 个色条,超出部分显示"+N"徽标。

单元格操作 ​

单击编辑(普通模式):

  1. 点击目标单元格 → 弹出编辑弹窗
  2. 同日多班次时,弹窗内显示多行编辑列表,每行包含:班次模板选择器、状态、备注
  3. 编辑后点确定 → 实时校验 → 保存

多选模式(Shift+Click / Ctrl+Click):

  1. 按住 Shift 点击连续范围或 Ctrl 点击逐个选择
  2. 选中单元格出现蓝色虚线边框
  3. 顶部出现「已选 N — 批量改班」徽标
  4. 点击徽标 → 弹出批量改班弹窗 → 统一修改模板/状态

框选模式(鼠标拖拽):

  1. 在单元格上按住鼠标左键拖动 → 蓝色选区扩大
  2. 松开后自动进入多选状态
  3. 可批量改班或清空

右键菜单:

  1. 在单元格上右键 → 弹出上下文菜单
  2. 菜单项:编辑排班 / 标记请假 / 复制 / 粘贴 / 查看历史 / 清空
  3. 方案B支持chip级右键:对同日多班次中的某一条独立操作

拖拽换班 ​

  1. 鼠标按住已有排班的单元格(可拖拽标记)→ 拖到目标人员同一天的单元格
  2. 释放后系统直接执行移动:在目标位置新建排班,同时删除原位置排班
  3. 按住 Alt 键拖拽 = 替换模式(swap),覆盖目标已有班次
  4. 拖拽的班次信息随鼠标显示,目标单元格悬停高亮

PC端排班管理-单元格编辑

PC端排班管理-右键菜单

15.5.3 周视图 ​

切换到「周」Tab,以人员×日期的网格展示一周排班:

  • 行:部门人员(按姓名排序)
  • 列:周一至周日(显示日期 + 星期几),含周六日高亮
  • 每格:纵向排列该日所有班次色条,显示模板名称、起止时间,含校验提示角标
  • 跨天夜班:按实际日期显示在当天列中
  • 操作:
    • 点击单元格 → 编辑弹窗
    • 右键 → 上下文菜单
    • 拖拽换班到其他人员当天列

PC端排班管理-周视图

15.5.4 日视图 ​

切换到「日」Tab,展示某一天所有人员的排班情况:

  • 甘特图风格:按人员分行的横向时间轴(0h~24h)
  • 顶部:24 小时覆盖率柱状图(每小时的排班人数分布)
  • 班次条:按颜色渲染,起止位置对应实际时间
  • 操作:拖拽调整起止时间、右键菜单

PC端排班管理-日视图

15.5.5 实时校验 ​

排班编辑器内置前后端双重校验引擎,编辑时 300ms 防抖实时调用 /validate 端点:

校验类别级别触发条件
资质缺失🔴 错误班次模板要求的资质类型,被排班人未持有
资质即将到期🟠 警告被排班人资质在 30 天内到期
时间重叠🔴 错误同一人同一天两个班次存在时间重叠(重叠 ≤ 5 分钟降级为 🟠 警告,视为交接短重叠)
最小休息间隔🟠 警告距前一相邻班次(跨日)结束不足 10 小时(可配置开关;同日多班次之间的空档不计入检查)
覆盖率不足🔵 提示当日某班次实际人数低于模板要求的最少人数
同日多班次提示🟠 警告同一人同一天存在 2 个及以上班次(可配置开关,默认关闭)

校验规则开关:

  • 点击校验面板头的设置按钮 → 弹出规则开关面板
  • 可单独启用/禁用:重叠检测、资质缺失、资质到期、最小休息、覆盖率、同日多班次
  • 设置记忆到 localStorage,按用户保存
  • 默认状态:重叠检测/资质缺失/资质到期/覆盖率 默认开启;最小休息间隔/同日多班次 默认关闭

校验响应:

  • 错误级别 → 弹确认框问「仍要提交?」
  • 警告级别 → Toast 提示,允许继续
  • 提示级别 → 角标显示,不打断操作

15.5.6 批量排班 ​

点击「批量排班」按钮(需要 shift_schedule:manage 权限)→ 弹出批量排班弹窗:

字段说明
部门固定为当前页面所选部门(不可更改)
年月排班月份
模式按星期配置:周一至周日,每天可选择多个班次模板
覆盖已有排班复选框,开启后将覆盖当月已有排班

按「星期 → 模板」模式,系统自动为部门成员按星期分配班次。例如:

  • 周一、二、三:部门全员默认排「早班」模板
  • 周四、五:部门全员默认排「中班」模板
  • 周六、日:自动排「休息」

PC端排班管理-批量排班

15.5.7 发布排班 ​

确认排班无误后,点击「发布」按钮(需要 shift_schedule:manage 权限)→ 系统执行以下操作:

  1. 锁定排班:当前月份所有状态为 scheduled 的排班记录变为 published
  2. 生成版本:创建或更新 ShiftScheduleVersion 记录(revision 递增)
  3. 通知推送:通过通知中心向部门所有成员发送排班发布通知

发布后:

  • 月视图顶部版本徽标变为绿色「已发布 vN」
  • 普通编辑操作被禁用(已锁定)
  • 撤回按钮可用(需 shift_schedule:unpublish 权限)

15.5.8 撤回发布 ​

已发布的排班可以撤回(需要 shift_schedule:unpublish 权限):

  1. 点击「撤回」按钮 → 确认弹窗
  2. 当月排班记录状态恢复为 scheduled
  3. 版本记录标记为 draft
  4. 编辑权限恢复

15.5.9 复制到其他部门 ​

将当前部门的排班模式复制到目标部门(需要 shift_schedule:manage 权限):

  1. 点击「复制到其他部门」按钮
  2. 选择目标部门
  3. 选择是否覆盖目标部门已有排班
  4. 系统按「星期 → 模板」模式(不复制用户级绑定)为目标的部门成员批量生成排班

⚠️ 注意:若目标部门当月排班已发布,复制操作将被拒绝(返回 400),需先撤回目标部门排班。

15.5.10 导出排班表 ​

点击「导出」按钮 → 系统生成当月排班 Excel 文件并下载:

  • 文件名:shift_schedule_{部门ID}_{年-月}.xlsx
  • 内容:人员×日期的排班表,含班次名称、时间、部门

15.5.11 我的排班 ​

"我的排班"功能在 PC 端和移动端分别独立实现:PC 端为独立菜单页面(FullCalendar 月历),移动端融合在现有"日历"页中通过子 Tab 切换。

PC 端我的排班 ​

从菜单「人员管理」→「我的排班」进入独立页面:

  • FullCalendar 日历视图:以月历形式展示个人当月所有班次
  • 班次色块:不同颜色代表不同班次,颜色与模板设置一致
  • 交互操作:
    • 拖拽调整班次时间(需要 shift_schedule:self_adjust_time 权限)
    • 点击班次查看详情
    • 右上角月份前后切换
  • 数据来源:/api/v1/shift-schedules/my?year_month=...(页面入口由 shift_schedule:my_view 权限控制菜单可见性)

PC端排班管理-我的排班

移动端我的排班 ​

移动端不单独建页,而是融合在现有底部导航「日历」页面中,通过顶部子 Tab 切换。

入口与结构:

  1. 底部导航 →「日历」页 → 顶部出现子 Tab 切换条 [工单] [我的排班]
  2. 「我的排班」子 Tab 仅对拥有 shift_schedule:my_view 权限的用户可见
  3. 两种模式(工单 / 排班)共用同一套月网格组件、月份切换、底部抽屉

月视图网格(排班模式):

  • 沿用日历页的 7×6 月网格布局,每个格子显示:
    • 日期数字
    • 班次首字:当日第一个班次名称的首字(如"早""晚""夜""加""休"),底色 = 模板颜色(白班蓝 / 晚间班绿 / 夜班紫 / 加班橙 / 休息灰 / 请假橙 / 换班粉)
    • 多班次红点:若同日有多个班次,右上角显示红色圆点 + 数量(>9 显示"9+")
  • 月份前后切换:◀ 上月 / 下月 ▶ 按钮(与工单模式共用)
  • 今日按钮:跳回当月今天
  • 选中日期后,底部抽屉自动展开

移动端我的排班-月视图

底部抽屉(选中日期展开):

每条排班以卡片形式展示:

卡片元素说明
颜色圆点 + 班次名模板名称,左侧 3px 彩色边框
时间段HH:mm - HH:mm,跨天夜班显示"次日 HH:mm"
加班徽标橙色 is_overtime 标签
节假日徽标红色 is_holiday 标签
资质缺失徽标红色 🛡️ 标签,显示缺失资质种类数(Phase 1.5)
资质即将到期徽标橙色 ⚠️ 标签,显示即将到期种类数(Phase 1.5)
状态标签已排班(灰) / 已发布(绿) / 已换班(粉) / 请假(橙)
备注灰色文字省略显示
操作按钮[调整时间] [换班] [请假](见下方)

移动端我的排班-抽屉详情

操作按钮:

按钮权限要求当前状态
调整时间shift_schedule:self_adjust_time✅ 可用(已发布排班禁用,需 shift_schedule:manage 解锁)
换班shift_schedule:swap🔒 置灰「PC 端操作」(Phase 2 开放)
请假shift_schedule:leave🔒 置灰「PC 端操作」(并入 G-20 全局请假)

调整时间功能:

  1. 点击 [调整时间] → 弹出编辑弹窗
  2. 弹窗内容:日期(只读)+ 开始时间 HH:mm + 结束时间 HH:mm(小时/分钟下拉选择器,5 分钟步进)
  3. 若结束时间 ≤ 开始时间,显示"跨天"提示(结束时间自动视为次日)
  4. 提交 → PUT /api/v1/shift-schedules/{id} 更新 start_datetime / end_datetime
  5. 提交成功后自动刷新排班数据

移动端我的排班-调整时间

变更历史查看(Phase 1.5):

  • 每条排班卡片右侧有 🕒 按钮 → 点击弹出变更历史对话框
  • 列表展示每次变更的操作类型(颜色标签:创建/更新/删除/换班/请假/发布/撤回)、时间、变更摘要
  • 无权限时弹出提示

离线缓存回退:

  • 每次成功加载排班数据写入 localStorage(key=shift_schedule:my:YYYY-MM)
  • 缓存有效期 7 天
  • 断网 / 5xx 错误时自动回退显示缓存数据,Toast 提示"网络异常,显示 N 小时前的离线数据"

数据来源:GET /api/v1/shift-schedules/my?year_month=YYYY-MM(页面入口由 shift_schedule:my_view 权限控制菜单可见性)

15.5.12 统计面板 ​

切换到「统计」Tab(需要 shift_schedule:stats 权限)→ 展示当月排班统计:

概览指标卡片:

  • 总排班次数 / 总工时 / 加班工时 / 请假天数 / 出勤率 / 部门人数

按人员统计表:

  • 列:用户名、出勤班次、加班工时、请假天数、周末值班次数、夜班次数

按模板统计表:

  • 各模板的使用频次和涉及人数

公平性分析:

  • 周末值班标准差(越小越公平)
  • 夜班次数标准差
  • 加班工时标准差

覆盖率热力图:

  • 按日期×模板的颜色热力,直观展示各日期各模板的排班密度

PC端排班管理-统计面板

15.5.13 变更历史 ​

切换到「历史」Tab → 展示当月所有排班变更记录:

  • 列:变更时间、操作人、操作类型(创建/更新/删除/批量/发布/撤回)、涉及用户、变更日期、变更摘要
  • 支持按部门筛选(含下级部门只读模式)
  • 单条排班历史:右键菜单 → 查看历史 → 侧边栏展示该排班从创建至今的完整变更链

PC端排班管理-变更历史

15.5.14 撤销/重做 ​

排班编辑器支持 Ctrl+Z / Ctrl+Y 操作:

  • 每个编辑动作封装为 Command(do / undo / describe)
  • 内存栈最多 50 步(不持久化,刷新页面后清空)
  • 批量操作(框选改班、批量排班)合并为一个 Command
  • 工具栏提供撤销/重做按钮(含快捷键提示)

15.6 换班与请假 ​

15.6.1 换班流程 ​

发起换班:

  1. 在「我的排班」页面,点击目标班次的「换班」按钮(需要 shift_schedule:swap 权限)
  2. 或在「排班管理」页面,通过编辑弹窗修改 swap_with_user_id 字段
  3. 选择目标同事(同部门下拉)和对方的班次
  4. 填写备注 → 提交申请

审批流程:

  1. 同事收到换班确认通知 → 确认/拒绝
  2. 主管收到换班审批通知 → 通过/驳回
  3. 审批通过后 → 双方排班自动互换,记录换班状态(swapped)
  4. 通知双方换班结果

15.6.2 请假流程 ​

发起请假:

  1. 在「排班管理」页面右键目标班次 → 选择「标记请假」
  2. 或通过审批模块提交请假申请(统一走全局请假流程)

审批流程:

  1. 主管收到请假审批通知 → 审批
  2. 审批通过 → 该日班次状态变更为 leave
  3. 系统推荐补班人(基于当天休息的可补班同事)

15.6.3 发布通知 ​

排班发布后:

  • 系统向当月排班涉及的部门所有成员推送通知
  • 标题:「YYYY-MM 排班已发布」
  • 正文:「您所在部门的 YYYY-MM 排班表已发布,请查看。」

15.7 与工单/点检的联动 ​

15.7.1 工单派单联动(当班人员筛选) ​

当系统参数 SHIFT_DISPATCH_ON_DUTY_ENABLED 开启时(→ Ch17 §17.3.10.7),工单分配弹窗的负责人候选列表默认仅显示当前部门 + 时间的当班人员(已发布排班中该时段在岗的人员)。开关关闭时,工单分配不受排班影响。

开关控制

开关位于「系统管理 → ⚙️ 系统参数 → 业务流程」分类下,配置键 SHIFT_DISPATCH_ON_DUTY_ENABLED,默认关闭。各租户独立设定,修改后立即生效。

PC端工单分配

新建 / 编辑工单弹窗中的负责人下拉:

交互状态说明
开关开启 → 默认筛选当班人员下拉列表仅展示当前部门 + 计划时间的当班人员,每个 Option 标注「· 当班」
筛选提示下拉上方显示状态提示:"已按当前当班人员筛选"
☑ 显示全部勾选后下拉显示所有可见人员(不限当班),提示变为"正在显示全部可见人员"
选择非当班人员弹出黄色警告提示:"所选负责人当前不在该部门/时间的已发布排班中,系统允许保存,请确认现场安排"

排班当班-分配弹窗

PC端批量分派

组合工单批量分派弹窗中,按首个子工单的部门归属 + 计划开始时间筛选当班人员,交互逻辑与单工单分配一致。

排班当班-批量分派

移动端快捷分配

首页「👷 快捷分配」中负责人下拉同样默认当班人员筛选,Option 标注「· 当班」;支持「☑ 显示全部」切换;选择非当班人员时橙色警告提示(→ 详见 Ch18 §18.13.4)。

部门兜底逻辑

当工单 department_id 为空但有关联设备时,系统通过 equipment_id 反查设备归属部门,按该部门筛选当班人员。

无当班人员处理

当所选部门 / 时间无已发布排班覆盖时,候选列表为空,提示"当前部门/时间无当班人员,可勾选显示全部"。

排班当班-无当班

注意事项

  • 仅 status=published 的排班计入当班筛选,草稿/未发布排班不影响
  • 当班筛选与作业资质校验(→ Ch14 §14.11)是两个独立开关,可同时启用
  • 选择非当班人员仅提示不阻断,最终由主管确认现场安排

15.7.2 点检任务联动 ​

点检任务分发时可参考排班在岗信息选择执行人:

  • 排班模块 API 支持按部门/日期查询当日在岗人员
  • 若当班所有人均无对应资质 → 可触发告警提示

15.7.3 交接班联动 ​

排班记录可作为交接班模块的数据参考,交接班模块独立管理自身记录。


15.8 常见问题 ​

Q: 为什么排班表是空的? A: 请确保选择了正确的部门和月份,且该部门下有成员。若部门空,检查部门档案配置。

Q: 校验提示"资质缺失"怎么办? A: 该人员缺少模板要求的资质类型。可以先为人员添加对应资质证书(§15.3.2),或修改模板的所需资质(§15.4.2),或在校验设置中关闭该规则(不推荐)。

Q: 已发布的排班是否可以修改? A: 已发布的排班被锁定,需要先点击「撤回」按钮恢复到草稿状态,修改后重新发布(revision 递增)。

Q: 批量排班后部分人员没排上? A: 批量排班按部门成员生成。如果某成员在特定星期没有对应的模板可应用,该日会保持为空。

Q: 我的排班页面看不到班次? A: 需要 shift_schedule:my_view 权限。联系管理员确认角色权限配置。同时确认月份选择正确。

Q: 拖拽换班和手动换班有什么区别? A: 拖拽换班通过鼠标拖拽快速完成换班操作(直接 upsert 修改数据库),手动换班则通过编辑弹窗逐项修改。拖拽换班无需额外审批流程。(注意:此处的拖拽换班指排班管理页面的管理员操作,与「我的排班」中的员工自行拖拽调整时间不是同一场景。)

Q: 资质证书到期后会自动删除吗? A: 不会自动删除,但会标记为 expired 状态并在即将到期列表中变红。需要手动续期或删除。


15.9 相关权限 ​

资质与排班模块涉及的权限列表:

权限编码中文名称说明
certification:view查看资质证书查看人员资质证书列表和详情
certification:manage管理资质证书创建/编辑/删除人员资质证书
shift_template:view查看班次模板查看班次模板列表
shift_template:manage管理班次模板创建/编辑/删除班次模板
shift_schedule:view查看排班查看排班表和全部排班数据
shift_schedule:manage管理排班创建/编辑/删除排班、批量排班和发布
shift_schedule:my_view查看本人排班查看本人的排班(我的排班页面)
shift_schedule:unpublish撤回发布撤回已发布的排班版本
shift_schedule:stats查看排班统计查看排班统计/覆盖率/公平性分析
shift_schedule:swap发起换班发起换班申请
shift_schedule:leave发起请假发起请假申请
shift_schedule:approve审批换班/请假审批换班和请假申请
shift_schedule:self_adjust_time自助调整班次时间允许个人在「我的排班」中拖拽调整班次起止时间

角色默认权限分配:

角色资质/排班相关权限
超级管理员全部权限
租户管理员全部权限
设备主管查看/管理资质证书、查看/管理班次模板、查看/管理排班、撤回发布、查看统计、发起换班/请假、审批换班/请假、自助调整班次时间
技术员查看资质证书、查看排班、查看本人排班、发起换班、发起请假、自助调整班次时间、查看班次模板
操作员查看排班、查看本人排班、查看班次模板
仓库管理员无排班/资质权限
只读用户查看资质证书、查看排班、查看本人排班、查看班次模板

ACube 设备运维管理系统 - 操作手册 v1.2

内容与产品内嵌操作手册同源同步,不做双向编辑