# 03-推进台账

## 第1轮：新增产品合格率(工位)页面

### 用户反馈

- 查看 `doc/新增产品合格率.docx`。
- 根据文档新增页面“产品合格率(工位)”。

### 执行过程

1. 解包 `doc/新增产品合格率.docx`，读取文字和截图。
2. 确认页面放在生产管理下面。
3. 确认 SAP 关闭日期来源为 `SBO_YL.dbo.UBT_OWOR.实际结算日期`。
4. 查询 `YL_质量检验_质检记录` 字段，确认生产订单号为 `计划号`，订单行号为 `行号`，工位字段为 `工位名称`。
5. 新增查询过程脚本 `db_backups/create_product_pass_rate_workstation_20260630.sql`。
6. 初版跨库四段名查询较慢，改为 `OPENQUERY([SAP], ...)` 先取 SAP 已关闭订单到本地临时表。
7. 新增菜单脚本 `db_backups/add_product_pass_rate_workstation_menu_20260630.sql`。
8. 新增前端页面 `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`。
9. 发布查询过程和菜单脚本。
10. 执行数据库样例验证和 `npm run build`。

### 修改文件

- `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`
- `db_backups/create_product_pass_rate_workstation_20260630.sql`
- `db_backups/add_product_pass_rate_workstation_menu_20260630.sql`
- `work/ProductionManagement/ProductPassRateWorkstation/README.md`
- `work/ProductionManagement/ProductPassRateWorkstation/01-项目功能内容.md`
- `work/ProductionManagement/ProductPassRateWorkstation/02-项目程序开发详细步骤.md`
- `work/ProductionManagement/ProductPassRateWorkstation/03-推进台账.md`
- `work/ProductionManagement/ProductPassRateWorkstation/04-任务矩阵.md`
- `work/ProductionManagement/ProductPassRateWorkstation/05-验收证据.md`
- `work/ProductionManagement/ProductPassRateWorkstation/06-决策记录.md`
- `gptlog-process/gpdlog.md`
- `C:\gptlog-process\gpdlog.md`

### 验证结果

- 查询过程发布成功。
- 菜单脚本发布成功，生产管理下新增 `产品合格率(工位)`。
- 样例 `7649` 返回一级汇总和二级明细。
- `npm run build` 通过。

### 下一步

- 登录页面确认菜单可见，并检查展开行明细展示是否符合现场习惯。

## 第2轮：默认不查询并新增合格状态筛选

### 用户反馈

- 默认进来不查询数据。
- 增加“合格”和“不合格”筛选。
- 主数据合格率小于 `100` 的为不合格。
- 默认不合格。

### 执行过程

1. 修改 `db_backups/create_product_pass_rate_workstation_20260630.sql`，新增参数 `@合格状态`，默认 `不合格`。
2. 查询过程最终输出前按主数据合格率筛选：
   - `合格`：合格率大于等于 `100`。
   - `不合格`：合格率小于 `100`。
   - `全部`：不过滤。
3. 修改 `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`：
   - 删除页面 `created()` 自动查询。
   - 查询区新增“合格状态”下拉。
   - 默认值设为 `不合格`。
   - 查询时传入 `合格状态` 参数。
4. 发布查询过程成功。
5. 验证近 30 天 `不合格`、`合格`、`全部` 三种筛选。
6. 执行 `npm run build`，构建通过。

### 修改文件

- `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`
- `db_backups/create_product_pass_rate_workstation_20260630.sql`
- `work/ProductionManagement/ProductPassRateWorkstation/README.md`
- `work/ProductionManagement/ProductPassRateWorkstation/01-项目功能内容.md`
- `work/ProductionManagement/ProductPassRateWorkstation/02-项目程序开发详细步骤.md`
- `work/ProductionManagement/ProductPassRateWorkstation/03-推进台账.md`
- `work/ProductionManagement/ProductPassRateWorkstation/04-任务矩阵.md`
- `work/ProductionManagement/ProductPassRateWorkstation/05-验收证据.md`
- `work/ProductionManagement/ProductPassRateWorkstation/06-决策记录.md`
- `gptlog-process/gpdlog.md`
- `C:\gptlog-process\gpdlog.md`

### 验证结果

- 近 30 天 `不合格` 返回 `50` 行，合格率范围 `66.67` 到 `99.99`。
- 近 30 天 `合格` 返回 `1370` 行，合格率均为 `100.00`。
- 近 30 天 `全部` 返回 `1420` 行。
- `npm run build` 通过，仅有项目既有 warning。

### 下一步

- 登录页面确认初始为空表，点击查询后按默认不合格返回数据。

## 第3轮：关闭日期筛选拆分

### 用户反馈

- 关闭日期筛选拆成两个筛选。
- 客户不习惯一次选两个日期。

### 执行过程

1. 修改 `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`。
2. 将原 `daterange` 日期范围控件拆成两个 `date` 日期控件。
3. 新增 `searchForm.closeDateStart` 和 `searchForm.closeDateEnd`。
4. 查询时仍传入原有参数 `关闭日期_Start` 和 `关闭日期_End`，数据库过程无需修改。
5. 执行 `npm run build`，构建通过。

### 修改文件

- `src/views/ProductionManagement/ProductPassRateWorkstation/index.vue`
- `work/ProductionManagement/ProductPassRateWorkstation/01-项目功能内容.md`
- `work/ProductionManagement/ProductPassRateWorkstation/02-项目程序开发详细步骤.md`
- `work/ProductionManagement/ProductPassRateWorkstation/03-推进台账.md`
- `work/ProductionManagement/ProductPassRateWorkstation/04-任务矩阵.md`
- `work/ProductionManagement/ProductPassRateWorkstation/05-验收证据.md`
- `gptlog-process/gpdlog.md`
- `C:\gptlog-process\gpdlog.md`

### 验证结果

- `npm run build` 通过，仅有项目既有 warning。
- 前端继续使用 `关闭日期_Start` 和 `关闭日期_End` 参数，数据库过程无需重新发布。

### 下一步

- 登录页面确认两个日期框更符合客户操作习惯。

## 第4轮：修正二级工序号来源

### 用户反馈

- 工序号为什么都是空。
- 工序号应取表 `dbo.MES_接口_生产计划_生产任务.订单行号`。
- 该表中订单行号肯定不会为空。

### 执行过程

1. 查询 `dbo.MES_接口_生产计划_生产任务` 字段，确认存在 `AID`、`订单编号`、`订单行号`、`工序名称`、`指派对象`。
2. 查询样例 `7649`、`7002`、`7280`、`7410`，确认 `MES_接口_生产计划_生产任务.订单行号` 有值。
3. 定位原脚本中工序号来源为 `COALESCE(View_生产订单_MES.订单行号, 质检记录.行号)`。
4. 确认质检记录的 `TaskAID` 对应生产任务表的 `AID`。
5. 修改 `db_backups/create_product_pass_rate_workstation_20260630.sql`：
   - 将明细补充表从 `View_生产订单_MES` 改为 `MES_接口_生产计划_生产任务`。
   - 关联条件改为 `q.TaskAID = t.AID`。
   - 工序号改为 `COALESCE(t.订单行号, q.行号)`。
6. 发布查询过程成功。
7. 验证 `7649` 二级工序号为 `1`、`2`、`3`。
8. 验证近 30 天 `3281` 条二级明细中空工序号为 `0`。

### 修改文件

- `db_backups/create_product_pass_rate_workstation_20260630.sql`
- `work/ProductionManagement/ProductPassRateWorkstation/01-项目功能内容.md`
- `work/ProductionManagement/ProductPassRateWorkstation/02-项目程序开发详细步骤.md`
- `work/ProductionManagement/ProductPassRateWorkstation/03-推进台账.md`
- `work/ProductionManagement/ProductPassRateWorkstation/04-任务矩阵.md`
- `work/ProductionManagement/ProductPassRateWorkstation/05-验收证据.md`
- `work/ProductionManagement/ProductPassRateWorkstation/06-决策记录.md`
- `gptlog-process/gpdlog.md`
- `C:\gptlog-process\gpdlog.md`

### 验证结果

- 过程 `dbo.生产管理_产品合格率工位_查询` 发布成功，修改时间 `2026-06-30 15:12:24.840`。
- 样例 `7649` 返回：领料 1、数车 2、打磨 3。
- 近 30 天二级明细空工序号行数为 `0`。

### 下一步

- 页面展开二级明细确认工序号列不再为空。
