skills/skills.netease.im/roster-generator

roster-generator

SKILL.md

排班表生成技能

自动生成月度排班表,支持工作日、周末、法定节假日分别循环排班。

核心规则

排班逻辑

  • 每天安排: 1 个第一值班 + 1 个第二值班(备份)
  • 第二值班: 等于明天的第一值班
  • 循环规则: 人员排完后从头循环
  • 独立循环: 工作日、周末、法定节假日分别维护独立循环队列

输入格式

文本文件(每行一个名字):

张三
李四
王五
赵六

输出格式

Excel 表格,包含:

  • 日期、星期、第一值班、第二值班
  • 周末(周六/周日)高亮显示
  • 法定节假日高亮显示(不同颜色)

快速开始

# 安装依赖
pip install -r requirements.txt

# 生成排班表
python scripts/generate_roster.py \
    --names "staff.txt" \
    --year 2026 \
    --month 4 \
    --output "roster_2026_04.xlsx"

使用示例

示例 1: 基本用法

# 准备人员名单
echo -e "张三\n李四\n王五\n赵六" > staff.txt

# 生成 2026 年 4 月排班表
python scripts/generate_roster.py \
    --names staff.txt \
    --year 2026 \
    --month 4 \
    --output roster_2026_04.xlsx

示例 2: 指定节假日

python scripts/generate_roster.py \
    --names staff.txt \
    --year 2026 \
    --month 10 \
    --holidays "2026-10-01,2026-10-02,2026-10-03,2026-10-04,2026-10-05,2026-10-06,2026-10-07" \
    --output roster_2026_10.xlsx

示例 3: 从文件读取人员名单

python scripts/generate_roster.py \
    --names team_members.txt \
    --year 2026 \
    --month 12 \
    --output roster_2026_12.xlsx

输出示例

生成的 Excel 包含以下列:

日期 星期 类型 第一值班 第二值班
2026-04-01 星期三 工作日 张三 李四
2026-04-02 星期四 工作日 李四 王五
2026-04-03 星期五 工作日 王五 赵六
2026-04-04 星期六 周末 张三 李四
2026-04-05 星期日 周末 李四 王五
2026-04-06 星期一 工作日 赵六 张三

高亮规则

  • 周末(周六/周日):黄色背景
  • 法定节假日:红色背景

脚本说明

generate_roster.py

主脚本,生成月度排班表。

python scripts/generate_roster.py --help

holiday_checker.py

节假日判断工具,支持查询中国法定节假日。

roster_utils.py

排班逻辑核心,处理三种场景独立循环。

依赖安装

pip install -r requirements.txt

主要依赖:

  • openpyxl: Excel 文件生成
  • python-dateutil: 日期处理
  • holidays: 法定节假日查询

配置选项

命令行参数

参数 说明 必需 默认值
--names 人员名单文件路径 -
--year 排班年份 -
--month 排班月份 -
--output 输出 Excel 文件路径 -
--holidays 法定节假日(逗号分隔) 自动查询
--verbose 输出详细信息 False

注意事项

  1. 人员名单必须有序 - 按输入顺序排班
  2. 三种场景独立循环 - 工作日、周末、节假日各自维护队列
  3. 节假日配置 - 可手动指定或自动查询
  4. 第二值班规则 - 始终等于明天的第一值班
  5. 跨月处理 - 如果月底第二值班在次月,会显示次月日期

文件结构

roster-generator/
├── SKILL.md                          # 技能说明文档
├── requirements.txt                  # Python 依赖
├── scripts/
│   ├── generate_roster.py           # 主脚本
│   ├── roster_utils.py              # 排班逻辑核心
│   └── holiday_checker.py           # 节假日查询
└── examples/
    └── staff.txt                    # 示例人员名单

完整示例

1. 准备人员名单

cat > staff.txt << EOF
张三
李四
王五
赵六
钱七
孙八
EOF

2. 生成排班表

python scripts/generate_roster.py \
    --names staff.txt \
    --year 2026 \
    --month 4 \
    --output roster_2026_04.xlsx

3. 查看统计

# 脚本会自动输出统计信息
# 例如:
# 张三:工作日 6 次,周末 2 次,节假日 1 次
# 李四:工作日 6 次,周末 2 次,节假日 1 次
Installs
1
First Seen
Apr 7, 2026