# 产量

> 产量数字所依据的滚动周期，以及产出被归入的那些命名产量项，声明在模型上，按单元跟随或覆盖，还有每个单元呈现的那张产量卡片。

**产量**就是这个模型的一张试验台把什么算作产出。一个[流程](process-procedures)声明它的完成是否产生产出、用哪个物理单位、参考速率是多少；而这个屏幕（Process > 模型 > 定义 > 产量）声明那些产出怎么被读出来：那些数字所依据的**滚动周期**，以及产出被归入的那些**命名产量项**。两者都在模型上回答一次，由每一个单元继承，而确实不一样的单元就脱开，保留它自己的。标题栏写着“产量数字按哪个周期来读，以及产出归并成哪些命名的产量项。”，并数出单元数和其中有多少个自成一体。

读取需要查看模型；每一次编辑都需要管理 Process 和一台没有被锁住的工作站。这个屏幕穿着每个定义屏幕共用的那一副样子（见[定义](process-definition#the-one-shape-of-the-five-screens)）。

## 模型定义：周期和那些产量项 {#model-definition-the-period-and-the-quantities}

标题栏写着“模型自己的答案。它对每一个仍然跟随它的单元都有效，因此一整排相同的工位只配置一次。”，并带着**产量项**。

表格上方立着周期的两个字段：

| 字段 | 是什么 | 取值 / 默认 | 效果 |
| --- | --- | --- | --- |
| **滚动窗口** | 滚动周期的长度。 | 一个不小于 1 的整数；默认 24。 | 连同它旁边的单位，就是每一个跟随模型的单元所报的第二个周期。另一个周期永远是今天，从本地时间的午夜起算。 |
| **窗口单位** | 这个长度按什么计。 | **小时**、**天**；默认小时。 | |

表格列出这个模型的那些命名产量项；空着时它写“没有命名的产量项。每个计入产出的流程各自成为一项产出。”

| 列 | 显示什么 |
| --- | --- |
| **产量项** | 这个产量项的名称。 |
| **计量单位** | 它的来源一致同意的那个物理单位，或者“没有来源”“单位不兼容”。 |
| **合计** | 它选中的那些流程，按名称写出，或者用警示色写“还没有”。 |
| **删除产量项**（行上，危险色） | 确认“要删除‘X’吗？这会把这个产量项从模型里删掉。 此操作无法撤销。”一份草稿（见下）则直接丢掉。 |

| 命令 | 做什么 | 什么时候变灰 |
| --- | --- | --- |
| **产量项** | 在设置栏里打开一份名为“Quantity N”的草稿。一个产量项至少要有一个来源才算数，因此这份草稿是在它第一个来源触发的那次写入里加入表格的；在那之前，它只存在于这个屏幕上。 | 工作站被锁住时；已经有一份草稿开着时。 |

## 一个产量项的设置栏 {#the-settings-column-for-a-quantity}

点中一个产量项就打开“这个产量项统计什么”：“每一个仍然跟随模型的单元都会报它。自成一体的单元不受影响。”

| 字段 | 是什么 | 效果 |
| --- | --- | --- |
| 名称 | 就地编辑；一份草稿把它的名称带进它的第一次保存。 | 空名称会被忽略；同一个所有者下的两个产量项不能同名（保存会拒绝）。 |
| 单位小药丸 | 所选来源的物理单位，或者“没有来源”“单位不兼容”。 | |
| 那些来源 | “选一个来源做明细，或者选若干可合并的来源做合计。”每一个候选流程一个复选框，标着“流程 · 单位”（或者“· 未配置单位”）：每一个启用了产量产出的流程，加上这个产量项已经选中的任何流程。 | 同一个产量项的每一个来源都必须是同一个物理单位，比较时不分大小写、忽略首尾空格；不做任何换算。一个流程可以出现在不止一个产量项里（一个明细和一个合计）。 |

那些复选框会说明它们为什么拒绝：在最后一个来源上写“一个产量项至少要有一个来源。请改为删除这个产量项。”，还有“这个流程不再计入产出。”“请先配置这个流程的产出单位。”“这个产出单位与已经选中的来源不兼容。”一个有产出的流程都没有时，这个列表写着“请先在某个流程上启用产出，再选择来源。”

从模型里删掉一个流程，会把它从选中它的每一个产量项里去掉，而因此一个来源都不剩的产量项也跟着走。

## 按单元：单元列表 {#per-unit-the-units-list}

| 列 | 显示什么 |
| --- | --- |
| **单元** | 单元的名称。 |
| **配置** | **模型默认设置**或者**自己的**。 |
| **周期** | 当时生效的周期：“24 小时”“7 天”。 |
| **产量项** | “按流程”（没有生效的命名产量项）或者“命名了 2 项”。 |

标题栏最末端的**管理单元**打开模型的页面。

## 一个单元的设置栏 {#the-settings-column-for-a-unit}

点中一个单元会打开两张卡片。**这个单元的数字从哪里来**提供**跟随模型的默认设置**（“改上面模型的默认设置，这个单元会和整排工位一起变。”）或者**有自己的配置**（“这个单元自成一体。模型的默认设置不再影响它，改它也不会改变这里的任何东西。”）。脱开时从当时生效的东西起算：没有自己产量项的单元取模型的周期和它那些产量项的一份副本，因此接下来只改不一样的地方；重新跟随不抹掉任何东西，所以第二次脱开时，这个单元原来有什么就原样拿回什么。

第二张卡片是当时生效的配置。单元跟随期间它的标题是**当前生效：模型的默认设置**（“从模型读取。给这个单元一份自己的配置，才能在这里更改。”），每一个控件都被禁用：显示的是模型自己存下来的值，不是一份副本。一旦脱开，它的标题变成**这个单元自己的**（“只有这个单元报这些数字。它的同类单元不受影响。”），并且完全按模型那套规则来编辑这个单元的周期和产量项：**添加产量项**（有草稿开着时变灰，写“请至少选一个来源，或者先把打开的草稿删掉。”）、那两个周期字段，以及每个产量项一个编辑器，带着它的名称、单位小药丸、来源和**删除产量项**（确认“这会把这个产量项从这个单元上删掉。”）。一个产量项都没有时，卡片写着“自动明细：每一个有产出的流程各自算一项产出。只有在需要一个合计、一份挑好的明细，或者两者都要时，才添加命名产量项。”

## 保存会拒绝什么 {#what-the-save-refuses}

无论一行存在哪一级上，只要它没写好，模型就拒绝保存，理由落在操作记录条上：没有名称的产量项，或者名称和同一所有者下另一个产量项重名的；一个来源都没有的产量项；把同一个流程选了两次的；选了模型之外的流程、或者选了产出被关掉的流程的；把不兼容的单位合到一起的（“产量项‘Total’无法把不兼容的单位‘pcs’和‘kg’合计到一起。”）；以及不是正数的周期。

## 这些数字在哪里读 {#where-the-figures-are-read}

每一个单元都在它各张操作面板的**产量**卡片上呈现结果（见 [View 上的单元面板](view-unit-panels)），并把同样这些数字作为只读点位发布在 `Process.<Model>.<Unit>.Productivity.Today` 和 `.Rolling` 下面（见[单元地址空间](process-addresses)）。

卡片的标题栏切换周期：**今天**（“从本地时间的午夜起算。”）或者**最近 24 小时** / **最近 7 天**，也就是那个单元当时生效的滚动周期。统计准备好之前它写着“正在准备产量统计……”；一个有产出的流程都没有时写“还没有流程计入产出。请在某个流程上启用‘生产产出’，这些指标才会开始。”；这个周期里什么都没完成时写“今天没有产出记录。”或者“在最近 24 小时内没有产出记录。”

| 读数 | 含义 | 什么时候不显示 |
| --- | --- | --- |
| **产量** | 按时长加权的产出对着那些流程的参考速率，写成百分比；它超过 100% 是正常的。 | “没有参考值”：这个周期里没有一次完成带参考速率。 |
| **合格率** | 合格数除以合格数加不合格数；无法判定、未分类、已中止和已失败的完成从不进入分母。 | “未分类”。 |
| **典型历时** | 那些有产出的完成所占用时长的中位数，从头到尾按墙上的钟算，因此暂停和重启仍然看得见。 | “未测量”。 |
| **产出台账** | 当时生效的每一个产量项一行（一个命名产量项都没有时，则是每一个有产出的流程一行）：产量项连同它的单位，以及每历时小时的速率。 | 速率那里写“没有历时”。 |
| **完成结果** | 已了结、合格、不合格、无定论、未判定、已中止、失败。 | |
| **按流程** | 一张可折叠的表：每个流程的产量项、速率、产量、合格率和典型历时。 | |

一次完成属于哪个周期，看的是它的完成时刻。记录在封存时把名称、单位和结果冻结下来，因此后来的重命名或换单元绝不会把不同类的证据并到一起，而从另一台工作站导入进来的运行记录也从不计入。

## 这个屏幕不做的事 {#what-this-screen-does-not-do}

- 它不声明产出：一个流程是否产出、按哪种方式产出（每完成一次运行、每完成一个循环、每次完成产出一个固定数量）、用哪个单位、参考速率是多少，都在流程自己那一页上。
- 它自己什么也不数：那些数字是建立在运行记录文件封存下来的产量记录之上的读模型，绝不是第二个计数器。
- 它不换算单位：两个用不同单位产出的流程，无法合计进同一个产量项。
