> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 排程

> 有限产能引擎如何把工单工序排到真实的工作中心工时和合格操作员上，每个日期为何落在那里，以及计划员用来引导排程的看板。

排程决定每个[工单](https://docs.alforse.com/zh/docs/reference/jobs.md)工序何时、在何处以及以什么顺序运行。计划员负责引导，引擎负责安排。Alforse 采用**有限产能**：只有当某工序的[工作中心](https://docs.alforse.com/zh/docs/reference/work-centers.md)开放，并且（如果工艺要求）有合格操作员在班时，该工序才会被排入工时；由于一台机器一次只能处理一道工序，已排定的工作会把后面的工作往后推。

## 排程界面

所有引导操作都在 ERP 的**生产**区域进行。车间只读取结果。

| 界面 | 菜单 | 用途 | 是否写入排程？ |
| - | - | - | - |
| **优先级** | *排程* | 设置到期日期和派工顺序。 | 是 |
| **预测** | *排程* | 查看已排定的排程，以及每个条为何位于该处。 | 仅通过**重新生成** |
| **出库** | *排程* | 根据满足销售订单的工单计划发运。 | 否 |
| **资源规划** | *计划* | 将人员分配到工作中心，记录休假和加班。 | 是 |
| MES **排程** | 车间应用 | 向操作员显示每个工位的队列。 | 否（仅显示） |

### 优先级

默认视图是**周**，显示按到期日期放置的工单。使用左上角的切换器可切换到**月**，或切换到**工作中心**——一个看板，每个工作中心一列，显示各工序。

* **设置到期日期：**将工单卡片拖放到某一天或某一周。拖放到**未计划**会移除日期。
* **分配并排序工序：**在工作中心视图中，拖动工序卡片会同时保存其运行位置和派工优先级。
* **重新排序与移动：**在同一列内洗牌卡片只会改变领取顺序。将卡片放入另一个工作中心的列则会额外触发重新排程，因为该工序现在需要在那台机器的日历上占一个时段。

### 预测

以甘特图显示每个工作中心的已排定时间，并让您询问任何条为何位于该处。详情见[预测如何解释排程](#the-forecast-explains-the-schedule)。

### 出库

发运计划员使用出库来查看即将可以发运的内容。它汇集为[销售订单](https://docs.alforse.com/zh/docs/reference/sales-orders.md)供货的未结工单，并按完工日分组：工单已排程时使用预计完工日期，在此之前使用到期日期。各行带有收货城市和州、发运方式以及承诺日期；您可以将列表缩小到某一位置以及未来 7、14 或 30 天。

### 资源规划

在这里决定谁在哪里工作。将员工按天或按周拖入工作中心列，记录缺勤和加班，并通过产能视图查看已排工时与可用工时。由于引擎会读取人员配置，这里所做的每项更改也会触发重新排程。该看板背后的班次模型参见[人员](https://docs.alforse.com/zh/docs/reference/people.md)。

### MES 排程页面

它在外观上类似工作中心视图，但**仅用于显示**。操作员会看到按派工优先级排序的工位队列，并可从中打开某道工序开始工作。在此看板上的拖动不会被保存。

NOTE

**计划员引导，操作员只读**

只有 ERP 可以更改到期日期、派工顺序或人员配置。MES 看板上的操作员看到的正是引擎生成的记录，他们在该看板上的任何操作都不会反馈给引擎。

## 对照真实产能进行安排

### 顺排

安排沿时间**向前**进行。工序获得第一个可行的时段，该时段的开始不早于当前时间，也不早于[工艺路线](https://docs.alforse.com/zh/docs/reference/routings.md)中位于其前的工序的结束时间。没有任何东西是从到期日期往回推算的，因此得出的完成日期本身就是预测，其中显示的任何余量都是真实存在的。

### 两种限制资源

每次安排都必须符合两种有限资源：

1. **机器时间。**工作中心一次只处理一道工序，且仅在其运行时间内。
2. **操作员时间。**仅当工艺要求某项技能时才需要；参见[人员是产能的一部分](#people-are-part-of-capacity)。

### 运行时间从何而来

引擎从第一条适用的规则取得工作中心的工时：

| 顺序 | 工时来源 |
| - | - |
| 1 | **熄灯（24×7）**工作中心：始终开放。 |
| 2 | 分配给该工作中心的班次。 |
| 3 | 该工作中心所在位置的班次。 |
| 4 | 默认：周一至周五，每天 8 小时。 |

随后，会从这些工时中扣除使工作中心停机的未结[维护](https://docs.alforse.com/zh/docs/reference/maintenance.md)工单所产生的停机时间，熄灯机器也不例外。

### 在工作中心之间选择

如果某工艺可以在多个工作中心上运行，引擎会选择**最早完成该工序**的那个。因此工作会绕开积压或无人值守的机器流动。

### 已在进行中的工序

已开始的工序留在其工作中心上，仅排入剩余尚未完成的工作。人工和机器时间按仍未结的数量成比例缩放，一旦存在任何生产事件，换型就视为已完成。

### 派工顺序与截止日期类型

派工顺序是安排的副产品。在每个工作中心内，已排定的工序按预计开始时间排序并获得位置 1、2、3 等，这就是为什么每个看板列中的第一张卡片就是该工位的下一项工作。

工单的截止日期类型只影响排序，别无其他。产能按类别分配（**尽快**，然后是**硬期限**、**软期限**、**无期限**），在每一类内部再按到期日期分配。任何类型都不会阻止或推迟安排。

NOTE

**决定完成时间的是产能，而不是到期日期**

当机器已满或没有空闲操作员时，工序会等待，预测会记录它在等待什么。没有到期日期的工单同样会被排程：到期日期仅用于判断是否延误，从不用于确定工作位置。

## 人员是产能的一部分

### 技能要求

您可以将某个工艺标记为**要求技能**。其工序随后只会在至少有一名*合格*操作员空闲时运行，即满足以下条件的人：

* 具备该技能，且资质未过期，
* 在班且未缺勤，并且
* 尚未被其他工作占用。

### 引擎选择谁

1. 资源规划看板上**配属到该工位的人员**优先。他们作为团队操作该工序：人工工时由在场人员分摊，而换型和机器时间则不会缩短。
2. 如果该处没有配属人员，引擎会回退到合格的**机动人员**，即在任何地方都没有看板分配的人。

配属到某一工位的人员即被承诺给该工位，绝不会被悄悄调到别处。

### 各位置的人员配置策略

每个位置在生产设置页面上都有一项人员配置策略，其说明为："Require an assigned operator before the scheduler places work at a location. When on, unstaffed work centers get no work and an operation with no manned coverage shows as unschedulable. Lights-out (24×7) work centers are exempt."（排程前需要已分配的操作员才能在地点安排工作。启用时，无人工作中心不会分配工作，且无人工覆盖的工序显示为无法排程。熄灯（24×7）工作中心豁免。）

开启**人工配置必需**（"Staffing required"）后，就没有机动人员回退，即使没有技能要求的工序也需要有人配属的工位。工作只会去您安排了人员的地方。该设置在下一次重新生成时生效；开启或关闭它本身不会使重新生成排队。

HEADS UP

**人员配置的更改可能使工作无处可去**

如果重新分配了唯一拥有该技能的人，该工位上受技能限制的工序就无处可去。Alforse 不会重复占用该人员或在无人值守的班次上运行，而是让这些工序保持未排，预测将其标记为**无法排程**（"Can't be scheduled"），提示您修正人员配置。

## 每道工序上的两个日期

每道工序带有两个日期，回答不同的问题。把它们当作一个日期，是对排程最常见的误读。

| 日期 | 回答 | 设置方式 | 何时变化 |
| - | - | - | - |
| **预计开始和完成** | 这项工作实际上何时运行？ | 引擎的顺排。 | 每次排程运行时。 |
| **到期日期**（需求目标） | 要保持工单准时，必须在何时之前完成？ | 沿工艺路线的提前期，从工单的到期日期倒推得出。 | 仅当工单到期日期、工艺路线或提前期改变时。安排时会忽略它。 |

### 落后于目标（琥珀色）

预计结束时间晚于其需求目标的工序以**琥珀色**绘制：在工序清单和工序看板卡片上，预计日期以该颜色显示（*"Projected Sep 12"*，预计 9 月 12 日），悬停时显示*"Behind target by N day(s)"*（落后目标 N 天）。请将其视为警告而不是冲突：工单整体仍可能按期完成。

### 固定目标

若要掌控某个目标，请在工序清单的日期选择器中**固定**它；选择器的提示警告*"Pinning it overrides the calculated target."*（固定它会覆盖计算出的目标。）

* 固定所锁定的是*目标*。工艺路线中靠前的工序随后会根据被固定的目标计算各自的目标。
* 固定不改动的是安排：开始和完成在每次运行时仍会重新预计。
* 例外是被固定的委外工序，其存储的时间窗口会被保留，因为供应商的周转时间无法由您的引擎重新规划。

## 预测如何解释排程

Paid

### 图表显示什么

在**预测**页面上，每个工作中心（即使是空闲的）都有一条泳道，每个已排定的工序是一个标有其工单和零件的条。由于每个条都是存储的产能预留，而不是根据日期重新绘制的内容，因此图表准确显示了引擎所承诺的内容。维护停机在同样的泳道中以琥珀色条显示，操作员泳道则显示谁被排定。

在表头选择**天**、**周**或**班次**范围。

### 解释一个条

选择任意条可打开侧面板，说明其时间安排：

* **排程备注**用通俗的语言给出开始时间的原因。典型的备注如 *"Waited 14h for the work center — queued behind J000128 (4 ops)"*（等待工作中心 14 小时——排在 J000128 之后（4 道工序））和 *"Waited 2d 3h for a qualified operator to be available"*（等待合格操作员空闲 2 天 3 小时）。
* **工作量**和**跨度**分别显示。跨越班次边界的工序可能是 22 小时跨度内的 6 小时工作；这是预期的，不是故障。
* 每条泳道都有一个 *"How are these hours calculated?"*（这些工时是如何计算的？）弹出框，显示由哪条规则提供其工时，以及停机和人员配置扣除了什么。

### 工序批次

[工序批次](https://docs.alforse.com/zh/docs/reference/batching.md)一旦**下达**，其成员工序（共用同一个可成批的工艺）占用**一个**预留。因此预测只绘制一个以批次命名的条（例如 *"BAT000005 · 2 jobs"*），而不是为每个成员各画一个条，该条的面板和操作按钮通向的是**批次**，而不是任何单个工单。

NOTE

**工序批次不是追踪批次**

两者只是用词相同。**工序批次**（`BAT…`）是一种排程手段，在一台机器上一起运行多个工单工序。批次追踪属于库存：跟随一批相同单位的批号。

### 冲突与无法排程的工作

表头分别统计两类问题。

**冲突**是指已被安排、但结束于**工单到期日期之后**的工序。Alforse 会随之存储原因，例如 *"Finishes 2026-11-18 but the job is due 2026-11-11 — waited for a qualified operator, queued behind J000128 (4 ops)"*（于 2026-11-18 完成，但工单于 2026-11-11 到期——等待合格操作员，排在 J000128 之后（4 道工序））；当您悬停在工序看板上带红旗的卡片时，会再次显示该原因。

**"Can't be scheduled"**（无法排程）的工序完全找不到可行的时段，原因是：

* 不存在合格的操作员，
* 位置要求人员配置而没有任何工位有人配属，或
* 在计划范围内没有开放的产能。

预测仍会为每一个绘制一个带有 **"Unschedulable"**（无法排程）标签的条，以标出该工作*本应*放置的位置。侧面板指出该条*"isn't holding capacity"*（不占用产能），因此其他工单可以使用这段时间。Alforse 把占位条放在下一个**工作日**；夜间或周末运行的排程不会把它放在那里。

对于已下达的**批次**还有一个特有原因：如果成员工序都没有预计时间，引擎就无法确定运行的规模。您会看到**预计时间**显示为 **0h**，原因为 *"add setup, labor, or machine time to its operations to schedule it"*（请为其工序添加换型、人工或机器时间以进行排程）。问题不在产能；请在工序上输入时间标准。

TIP

**问题会被报告，绝不隐藏**

排程运行不会彻底失败。将会延误的工作仍会被排定并被标记；无法排定的工作会得到一个附有解释的占位条。预计的工单完成时间会同时考虑这两者，因此预测绝不会好于现实。

## 排程何时重新计算

### 触发重新规划的编辑

对任何排程输入的编辑，都会将其涉及的工单标记为**排程已过期**，并将一个**重新规划波次**放入队列。算作输入的有：

* 优先级看板上的到期日期，
* 人员配属，
* 班次，
* 工作中心的工时或启用标志，
* 操作员资质，
* 工艺的技能要求，以及
* 机器停机。

波次经过防抖处理：Alforse 会在最后一次编辑后等待大约 30 秒，因此一连串更改只会为每个受影响的位置触发一次重新生成。如果您不想等待，可在预测页面上点击**重新生成**，按需执行同样的整个位置的运行。

### 即时与夜间重新排程

有些事件会跳过波次并立即重新排程：下达工单、更改工单状态以及看板自动下达。另外，Alforse 每晚会重新计算所有计划开始日期已滑入过去的排程。

### 延误工单通知

当某次重新生成使原本准时的工单变为延误时，每个此类工单的经办人都会收到一条列出它们的 **"Jobs projected late"**（预计延误的工单）通知。如果没有人收到通知，说明该变更被吸收，没有产生新的延误。

NOTE

**每次重新生成都是可重复的**

重新生成从不对计划做局部修补。它会从头重新安排该位置所有未结工单，先按截止日期类别、再按到期日期，每个工单先于其后的工单占用产能。相同的输入总会产生相同的排程。

## 权限与套餐

| 操作 | 要求 |
| - | - |
| 查看看板 | **生产查看**权限 |
| 编辑看板 | **生产更新**权限 |
| 使用预测页面 | Business 套餐 |

## 故障排除

| 现象 | 原因 | 解决办法 |
| - | - | - |
| 工序上有红色冲突标志 | 它在工单到期日期之后才完成，或无法被安排。存储的原因会指明起因（例如 *"No qualified operator for …"*（没有合格的操作员……）或 *"No operator assigned"*（未分配操作员））。这并不表示“开始日期在过去”。 | 调整到期日期，增加产能或工时，为工位配属人员，或使某位操作员具备资质。 |
| 琥珀色的“预计”日期 | 预计完成时间晚于工序的需求目标。 | 通常无需处理；当产能腾出或目标移动时它会消失。 |
| "Can't be scheduled"（无法排程） | 没有合格的操作员、在**人工配置必需**下没有人员配属覆盖（熄灯除外），或计划范围内没有产能。 | 为工位配属人员、使某人具备资质，或放宽约束。 |
| 批次无法排程，**预计时间 0h** | 成员工序没有换型、人工或机器时间；1 小时的条只是名义上的占位。 | 为工序添加时间标准。 |
| 编辑后新日期没有立即出现 | 重新规划波次在最后一次更改后约 30 秒运行。 | 等待该波次，或选择**重新生成**。 |
| 重新排序卡片没有触发重新排程 | 在同一列内重新排序只会改变派工位置。 | 如需重新安排，请将卡片移动到不同的工作中心。 |
| 被固定工序的日期发生了移动 | 固定只锁定目标，不锁定安排。 | 属预期；只有委外工序会保留其时间窗口。 |
| 开启**人工配置必需**后没有任何变化 | 该设置在下一次重新生成时生效。 | 进行一次排程编辑、选择**重新生成**，或等待夜间处理。 |
| 您无法编辑看板 | 缺少**生产更新**权限。 | 请联系管理员。 |

## 相关内容

**工单**

每个工单的工序就是引擎排定并排序的对象。

[Open](https://docs.alforse.com/zh/docs/reference/jobs.md)

**工作中心**

定义工位、它们的开放时间及其成本费率。

[Open](https://docs.alforse.com/zh/docs/reference/work-centers.md)

**人员**

班次和技能决定谁可以运行受技能限制的工序。

[Open](https://docs.alforse.com/zh/docs/reference/people.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.