1. 项目背景与核心需求
去年参与过某大型企业年度工作规划项目,当时用Excel手工排期整整折腾了两周。今年再次接到类似需求时,我决定系统性地解决这个痛点。工作安排本质上是个多约束条件的资源优化问题,需要同时考虑:
- 人力资源的技能匹配度
- 任务间的依赖关系
- 紧急/重要程度权重
- 人员工作负荷均衡
传统手工排期最大的问题是无法实时验证调整后的影响。比如市场部突然要求提前活动档期,手工表格需要重新计算所有关联任务的时间线,这个过程至少需要半天工作量。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 解决方案设计
2.1 技术选型对比
测试了三种技术路线:
- Excel+VBA:开发快但维护难,多人协作时版本混乱
- Project专业软件:功能全面但学习成本高,移动端支持差
- 低代码平台+算法:最终选择明道云+自定义甘特图组件,原因:
- 可配置的任务属性字段
- 基于角色的权限控制
- 内置的冲突检测机制
- 支持API对接考勤系统
2.2 关键数据结构
python复制class Task:
id: str
name: str
duration: int # 单位:天
dependencies: List[str] # 前置任务ID列表
resources: List[str] # 所需人员技能标签
class Resource:
id: str
name: str
skills: List[str]
max_weekly_hours: int = 40
3. 核心算法实现
3.1 拓扑排序优化
采用Kahn算法处理任务依赖关系时,增加了紧急度权重:
python复制def topological_sort(tasks):
in_degree = {t.id:0 for t in tasks}
graph = defaultdict(list)
# 构建依赖图
for task in tasks:
for dep in task.dependencies:
graph[dep].append(task
