# 静置库大屏看板数据口径规划

## 1. 数据原则

1. 当前版本全部使用前端硬编码虚拟数据。
2. 暂不接入数据库，暂不调用 MES 存储过程。
3. 业务状态可以先由前端根据虚拟数据计算。
4. 文档保留后续真实数据接入所需口径，但不写数据库 DDL。

## 2. 虚拟数据结构建议

当前建议在 Vue 文件中定义本地变量，例如：

```js
const standardRestMinutes = 30

const mockPacks = [
  {
    packCode: 'PACK202606290001',
    productModel: 'PDC',
    op410FinishTime: '2026-06-29 08:10:00',
    op505FinishTime: '',
    currentStation: 'OP460',
    stationStatus: {
      OP420: 'PASS',
      OP430: 'PASS',
      OP440: 'PASS',
      OP450: 'PASS',
      OP460: 'CURRENT',
      OP470: 'WAIT',
      OP480: 'WAIT',
      OP490: 'WAIT',
      OP500: 'WAIT'
    }
  }
]
```

虚拟数据需要覆盖：
- 未满 30 分钟的上层静置 Pack。
- 未满 30 分钟的下层静置 Pack。
- 已满 30 分钟但 OP505 未出站的 Pack。
- 已完成 OP505 出站的 Pack。
- 过站缺失或顺序异常的 Pack。

## 3. 核心口径

| 指标 | 口径 |
| --- | --- |
| 静置开始 | Pack 在 OP410 的完工时间 |
| 下层静置开始 | Pack 在 OP500 的完工时间 |
| 静置结束 | Pack 在 OP505 的完工时间 |
| 标准静置时间 | 30 分钟 |
| 达标时间 | OP410 完工时间 + 30 分钟 |
| 当前静置数 | 存在 OP410 完工时间，且不存在 OP505 完工时间的 Pack 数 |
| 未满 30 分钟数量 | 当前静置数中，当前时间 - OP410 完工时间 < 30 分钟 |
| 已满 30 分钟待出站数量 | 当前静置数中，当前时间 - OP410 完工时间 >= 30 分钟 |
| 今日开始静置数 | OP410 完工时间属于今日的 Pack 数 |
| 今日静置完成数 | OP505 完工时间属于今日的 Pack 数 |
| 达标后等待时长 | 当前时间 - 达标时间 |

## 4. 工位过站矩阵

表头短码与工位对应关系：

| 短码 | 工位 | 名称 | 是否必过 |
| --- | --- | --- | --- |
| 42 | OP420 | 极柱紧固 | 是 |
| 43 | OP430 | 密封盖装配 | 是 |
| 44 | OP440 | 密封盖紧固1 | 是 |
| 45 | OP450 | 密封盖紧固2 | 是 |
| 46 | OP460 | EOL测试 | 是 |
| 47 | OP470 | DCR测试 | 是 |
| 48 | OP480 | 警告标签粘贴 | 是 |
| 49 | OP490 | 标签打印粘贴 | 是 |
| 50 | OP500 | 密封盖安装确认 | 是 |

每个工位返回状态建议：

| 状态值 | 含义 |
| --- | --- |
| PASS | 已过站 |
| CURRENT | 当前最新过站 |
| WAIT | 未过站 |
| ERROR | 应过未过、顺序异常或数据异常 |

OP505 常温静置是静置结束出站工位，不属于 42-50 矩阵，但可以在主表中单独展示出站状态。

## 5. 线体段映射

当前建议分段如下，后续以现场设备命名为准：

| 段编码 | 段名称 | 映射规则 |
| --- | --- | --- |
| S1 | 上层静置 | 已完成 OP410，未完成 OP500 |
| S2 | 下层静置 | 已完成 OP500，未完成 OP505 |
| S3 | 已满 30 分钟待出站 | 已满 30 分钟，未完成 OP505 |
| S4 | 已出站 | 已完成 OP505 |
| S5 | 过程异常 | 工位缺失、顺序异常或数据异常 |

## 6. 本地计算字段

建议前端根据虚拟数据计算：

| 字段 | 计算方式 |
| --- | --- |
| restMinutes | 当前时间 - OP410 完工时间 |
| targetFinishTime | OP410 完工时间 + 30 分钟 |
| remainMinutes | 30 - restMinutes，最小为 0 |
| waitAfterTargetMinutes | restMinutes - 30，最小为 0 |
| isTargetReached | restMinutes >= 30 |
| isFinished | 存在 OP505 完工时间 |
| currentStage | 根据 OP500、OP505 完工情况判断上层/下层/已出站 |

## 7. 后续真实数据接入建议

当前不开发真实数据接口。后续需要接入时，再按以下能力补充存储过程：

1. 静置看板_汇总查询。
2. 静置看板_静置Pack列表查询。
3. 静置看板_待出站清单查询。
4. 静置看板_异常清单查询。
5. 静置看板_小时JPH查询。

## 8. 关联文档

- [PRD.md](./PRD.md)
- [BUSINESS_RULES.md](./BUSINESS_RULES.md)
- [UI_SPEC.md](./UI_SPEC.md)
- [TODO.md](./TODO.md)
