You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于指定条件自动均等分配任务:按预配置人员实现品类均等分派

基于指定条件的任务自动均等分配实现方案

基础数据说明

  • 待分配品类总表:记录当日所有需要分配的品类,以及每个品类对应的总任务量
  • 品类负责人配置表:预先配置每个品类允许承接任务的成员范围,分配时不可超出该范围分配任务

核心分配规则

  • 严格遵循品类和负责人的映射关系,不可将品类任务分配给无权限的成员
  • 最终所有成员的总任务量尽可能均等,最大差值不超过1
  • 同品类下分配给不同负责人的任务量差值最大不超过1

实现逻辑

  • 第一步:初始化所有可承接任务的成员的任务量计数,初始值为0
  • 第二步:遍历每个待分配的品类,拉取该品类的总任务量和可承接成员列表
  • 第三步:将当前品类的可承接成员按照已有总任务量从小到大排序,优先给负载低的成员分配更多余量
  • 第四步:计算单品类下人均基础任务量为总任务量 // 成员数,剩余未分配的零散任务(数量为总任务量 % 成员数)逐个分配给排序靠前的低负载成员,每人加1
  • 第五步:更新对应成员的总任务量计数,继续分配下一个品类即可

代码示例(Python)

# 1. 基础数据配置
# 待分配品类及对应总任务量
category_task_map = {
    "食品类": 27,
    "家电类": 19,
    "服饰类": 32,
    "数码类": 22
}
# 品类对应的可承接成员列表
category_owner_map = {
    "食品类": ["张三", "李四", "王五"],
    "家电类": ["李四", "赵六", "孙七"],
    "服饰类": ["张三", "赵六", "周八"],
    "数码类": ["王五", "孙七", "周八"]
}

# 2. 初始化成员任务量统计
all_owners = set()
for owners in category_owner_map.values():
    all_owners.update(owners)
owner_task_count = {owner: 0 for owner in all_owners}

# 3. 执行分配
for cate, total_task in category_task_map.items():
    allowed_owners = category_owner_map[cate]
    # 按当前已分配任务量升序排序,优先给负载低的成员分配
    sorted_owners = sorted(allowed_owners, key=lambda x: owner_task_count[x])
    base = total_task // len(allowed_owners)
    extra = total_task % len(allowed_owners)
    for idx, owner in enumerate(sorted_owners):
        add = base + 1 if idx < extra else base
        owner_task_count[owner] += add

# 输出分配结果
print("最终分配结果:", owner_task_count)

结果校验

直接运行上述代码即可得到符合要求的分配结果,成员间最大任务量差不会超过1,且所有任务都分配给了对应品类的允许承接成员。

内容的提问来源于stack exchange,提问作者Paras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:18:02